Merge branch 'Minority-Community-Branch'
This commit is contained in:
commit
a51a548e46
111 changed files with 194170 additions and 1017 deletions
887
common/activities/activity_types/camp_party.txt
Normal file
887
common/activities/activity_types/camp_party.txt
Normal file
|
|
@ -0,0 +1,887 @@
|
|||
activity_camp_party = {
|
||||
is_shown = {
|
||||
has_ep3_dlc_trigger = yes
|
||||
has_government = landless_adventurer_government
|
||||
is_adult = yes
|
||||
#Every other activity must be blocked until an uncrowned AI crowns themselves
|
||||
trigger_if = {
|
||||
limit = {
|
||||
is_ai = yes
|
||||
}
|
||||
NOT = {
|
||||
has_realm_law = uncrowned
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_start_showing_failures_only = {
|
||||
NOT = { is_activity_type_on_cooldown = activity_camp_party }
|
||||
is_available = yes
|
||||
age >= 16
|
||||
}
|
||||
|
||||
is_valid = {
|
||||
scope:host = {
|
||||
is_alive = yes
|
||||
is_imprisoned = no
|
||||
has_government = landless_adventurer_government
|
||||
NOT = { is_incapable = yes }
|
||||
}
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
# Host becomes incapable
|
||||
if = {
|
||||
limit = {
|
||||
scope:host = { is_incapable = yes }
|
||||
}
|
||||
scope:activity = {
|
||||
activity_type = { save_scope_as = activity_type }
|
||||
}
|
||||
scope:host = {
|
||||
trigger_event = activity_system.0330
|
||||
}
|
||||
every_attending_character = {
|
||||
limit = { this != scope:host }
|
||||
trigger_event = activity_system.0331
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
province_filter = domicile_domain
|
||||
ai_province_filter = domicile_domain
|
||||
|
||||
max_province_icons = 1
|
||||
allow_zero_guest_invites = no
|
||||
open_invite = no
|
||||
|
||||
province_description = {
|
||||
desc = activity_camp_party_province_desc
|
||||
}
|
||||
|
||||
province_score = {
|
||||
add = camp_party_province_reference_value
|
||||
}
|
||||
|
||||
cost = {
|
||||
gold = {
|
||||
add = {
|
||||
add = {
|
||||
value = standard_camp_party_activity_cost
|
||||
desc = hunt_base_cost
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
has_character_modifier = journey_communal_modifier
|
||||
}
|
||||
multiply = {
|
||||
value = 0.8
|
||||
desc = journey_communal_modifier
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ui_predicted_cost = {
|
||||
gold = {
|
||||
# Base Cost
|
||||
value = standard_camp_party_activity_cost
|
||||
# Make it a multiple of 5 (rounded up)
|
||||
divide = 5
|
||||
ceiling = yes
|
||||
multiply = 5
|
||||
}
|
||||
}
|
||||
|
||||
cooldown = { years = standard_camp_party_cooldown_time }
|
||||
|
||||
###################
|
||||
# PHASES AND OPTIONS
|
||||
###################
|
||||
|
||||
phases = {
|
||||
phase_camp_party = {
|
||||
is_predefined = yes
|
||||
location_source = pickable
|
||||
|
||||
ai_will_do = {
|
||||
value = 0
|
||||
add = {
|
||||
value = 30
|
||||
desc = "Base test value"
|
||||
}
|
||||
}
|
||||
|
||||
on_phase_active = {
|
||||
if = {
|
||||
limit = { this = scope:host }
|
||||
|
||||
scope:host = {
|
||||
trigger_event = {
|
||||
id = ep3_camp_party.0009
|
||||
days = 89
|
||||
}
|
||||
}
|
||||
|
||||
scope:activity = {
|
||||
#Phase progression
|
||||
progress_activity_phase_after = { days = 90 }
|
||||
#Loc
|
||||
activity_location = { save_scope_as = location }
|
||||
}
|
||||
#Arrival event
|
||||
trigger_event = ep3_camp_party.0001
|
||||
}
|
||||
}
|
||||
|
||||
on_monthly_pulse = {
|
||||
if = {
|
||||
limit = { this = scope:host }
|
||||
trigger_event = { on_action = camp_party_destination_events }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
options = {
|
||||
#Food options: upgrades locked behind Supply Tent
|
||||
camp_party_option_food = {
|
||||
camp_party_food_none = { #Default
|
||||
default = yes
|
||||
|
||||
ai_will_do = {
|
||||
value = 0
|
||||
# Financial preference.
|
||||
add = activity_option_likes_cheap_expense_value
|
||||
# Quantity preference.
|
||||
add = activity_option_food_prefers_small_volume_value
|
||||
}
|
||||
}
|
||||
camp_party_food_simple = { #locked behind Supply Tent
|
||||
is_shown = { always = yes }
|
||||
|
||||
is_valid = {
|
||||
custom_tooltip = {
|
||||
text = camp_party_food_options_invalid
|
||||
domicile ?= {
|
||||
has_domicile_parameter = camp_unlocks_camp_party_food_option
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cost = {
|
||||
gold = {
|
||||
add = {
|
||||
desc = camp_party_food_simple
|
||||
add = {
|
||||
value = 5
|
||||
desc = camp_party_food_simple
|
||||
}
|
||||
add = {
|
||||
value = 5
|
||||
multiply = activity_cost_scale_by_tier
|
||||
subtract = 5
|
||||
desc = activity_cost_scale_by_tier_desc
|
||||
}
|
||||
add = {
|
||||
value = 5
|
||||
multiply = activity_cost_scale_by_era
|
||||
subtract = 5
|
||||
desc = activity_cost_scale_by_era_desc
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
dynasty ?= {
|
||||
has_dynasty_perk = law_legacy_1
|
||||
}
|
||||
}
|
||||
subtract = {
|
||||
value = 5
|
||||
add = {
|
||||
value = 5
|
||||
multiply = activity_cost_scale_by_tier
|
||||
subtract = 5
|
||||
}
|
||||
add = {
|
||||
value = 5
|
||||
multiply = activity_cost_scale_by_era
|
||||
subtract = 5
|
||||
}
|
||||
multiply = law_legacy_cost_reduction_mult
|
||||
desc = law_legacy_1_name
|
||||
}
|
||||
}
|
||||
min = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_will_do = {
|
||||
value = 0
|
||||
# Financial preference.
|
||||
add = activity_option_likes_middling_expense_value
|
||||
# Quantity preference.
|
||||
## We just use slightly reduced quantity prefs here.
|
||||
add = {
|
||||
value = activity_option_prefers_large_volume_value
|
||||
multiply = 0.3
|
||||
}
|
||||
}
|
||||
}
|
||||
camp_party_food_lavish = {
|
||||
is_shown = { always = yes }
|
||||
|
||||
is_valid = {
|
||||
custom_tooltip = {
|
||||
text = camp_party_food_options_invalid
|
||||
domicile ?= {
|
||||
has_domicile_parameter = camp_unlocks_camp_party_food_option
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cost = {
|
||||
gold = {
|
||||
add = {
|
||||
desc = camp_party_food_lavish
|
||||
add = {
|
||||
value = 15
|
||||
desc = camp_party_food_lavish
|
||||
}
|
||||
add = {
|
||||
value = 15
|
||||
multiply = activity_cost_scale_by_tier
|
||||
subtract = 15
|
||||
desc = activity_cost_scale_by_tier_desc
|
||||
}
|
||||
add = {
|
||||
value = 15
|
||||
multiply = activity_cost_scale_by_era
|
||||
subtract = 15
|
||||
desc = activity_cost_scale_by_era_desc
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
dynasty ?= {
|
||||
has_dynasty_perk = law_legacy_1
|
||||
}
|
||||
}
|
||||
subtract = {
|
||||
value = 15
|
||||
add = {
|
||||
value = 15
|
||||
multiply = activity_cost_scale_by_tier
|
||||
subtract = 15
|
||||
}
|
||||
add = {
|
||||
value = 15
|
||||
multiply = activity_cost_scale_by_era
|
||||
subtract = 15
|
||||
}
|
||||
multiply = law_legacy_cost_reduction_mult
|
||||
desc = law_legacy_1_name
|
||||
}
|
||||
}
|
||||
min = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_will_do = {
|
||||
value = 0
|
||||
# Financial preference.
|
||||
add = activity_option_likes_middling_expense_value
|
||||
# Quantity preference.
|
||||
## We just use slightly reduced quantity prefs here.
|
||||
add = {
|
||||
value = activity_option_prefers_large_volume_value
|
||||
multiply = 0.6
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#Drinks options: upgrades locked behind Mess Tent & Mobile Brewery
|
||||
camp_party_option_drinks = {
|
||||
camp_party_drinks_none = { #Default
|
||||
default = yes
|
||||
|
||||
ai_will_do = {
|
||||
value = 0
|
||||
# Financial preference.
|
||||
add = activity_option_likes_cheap_expense_value
|
||||
# Quantity preference.
|
||||
add = activity_option_food_prefers_small_volume_value
|
||||
}
|
||||
}
|
||||
camp_party_drinks_adequate = { #locked behind Mess Tent
|
||||
is_shown = { always = yes }
|
||||
|
||||
is_valid = {
|
||||
custom_tooltip = {
|
||||
text = camp_party_drinks_adequate_invalid
|
||||
domicile ?= {
|
||||
has_domicile_building_or_higher = mess_tent_01
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cost = {
|
||||
gold = {
|
||||
add = {
|
||||
desc = camp_party_drinks_adequate
|
||||
add = {
|
||||
value = 10
|
||||
desc = camp_party_drinks_adequate
|
||||
}
|
||||
add = {
|
||||
value = 10
|
||||
multiply = activity_cost_scale_by_tier
|
||||
subtract = 10
|
||||
desc = activity_cost_scale_by_tier_desc
|
||||
}
|
||||
add = {
|
||||
value = 10
|
||||
multiply = activity_cost_scale_by_era
|
||||
subtract = 10
|
||||
desc = activity_cost_scale_by_era_desc
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
dynasty ?= {
|
||||
has_dynasty_perk = law_legacy_1
|
||||
}
|
||||
}
|
||||
subtract = {
|
||||
value = 10
|
||||
add = {
|
||||
value = 10
|
||||
multiply = activity_cost_scale_by_tier
|
||||
subtract = 10
|
||||
}
|
||||
add = {
|
||||
value = 10
|
||||
multiply = activity_cost_scale_by_era
|
||||
subtract = 10
|
||||
}
|
||||
multiply = law_legacy_cost_reduction_mult
|
||||
desc = law_legacy_1_name
|
||||
}
|
||||
}
|
||||
min = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_will_do = {
|
||||
value = 0
|
||||
# Financial preference.
|
||||
add = activity_option_likes_middling_expense_value
|
||||
# Quantity preference.
|
||||
## We just use slightly reduced quantity prefs here.
|
||||
add = {
|
||||
value = activity_option_prefers_large_volume_value
|
||||
multiply = 0.3
|
||||
}
|
||||
}
|
||||
}
|
||||
camp_party_drinks_abundant = { #locked behind Mobile Brewery
|
||||
is_shown = { always = yes }
|
||||
|
||||
is_valid = {
|
||||
custom_tooltip = {
|
||||
text = camp_party_drinks_abundant_invalid
|
||||
domicile ?= {
|
||||
has_domicile_building_or_higher = mess_tent_brewers
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cost = {
|
||||
gold = {
|
||||
add = {
|
||||
desc = camp_party_drinks_abundant
|
||||
add = {
|
||||
value = 20
|
||||
desc = camp_party_drinks_abundant
|
||||
}
|
||||
add = {
|
||||
value = 20
|
||||
multiply = activity_cost_scale_by_tier
|
||||
subtract = 20
|
||||
desc = activity_cost_scale_by_tier_desc
|
||||
}
|
||||
add = {
|
||||
value = 20
|
||||
multiply = activity_cost_scale_by_era
|
||||
subtract = 20
|
||||
desc = activity_cost_scale_by_era_desc
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
dynasty ?= {
|
||||
has_dynasty_perk = law_legacy_1
|
||||
}
|
||||
}
|
||||
subtract = {
|
||||
value = 35
|
||||
add = {
|
||||
value = 35
|
||||
multiply = activity_cost_scale_by_tier
|
||||
subtract = 35
|
||||
}
|
||||
add = {
|
||||
value = 35
|
||||
multiply = activity_cost_scale_by_era
|
||||
subtract = 35
|
||||
}
|
||||
multiply = law_legacy_cost_reduction_mult
|
||||
desc = law_legacy_1_name
|
||||
}
|
||||
}
|
||||
min = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_will_do = {
|
||||
value = 0
|
||||
# Financial preference.
|
||||
add = activity_option_likes_middling_expense_value
|
||||
# Quantity preference.
|
||||
## We just use slightly reduced quantity prefs here.
|
||||
add = {
|
||||
value = activity_option_prefers_large_volume_value
|
||||
multiply = 0.6
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
max_guest_arrival_delay_time = { weeks = 1 }
|
||||
|
||||
###################
|
||||
# ACTIVITY-SPECIFIC PULSES
|
||||
###################
|
||||
|
||||
pulse_actions = {
|
||||
entries = {
|
||||
apa_bonded_by_fire
|
||||
apa_taught_repair
|
||||
apa_revelry_hangover_camp
|
||||
apa_local_food_camp
|
||||
apa_lauded_food_camp
|
||||
apa_guest_of_honor_impressed
|
||||
apa_cultural_acceptance
|
||||
apa_camp_host_gifted
|
||||
apa_fireside_chat_shared_stories_martial
|
||||
apa_fireside_chat_shared_stories_learning
|
||||
apa_fireside_chat_shared_stories_diplomacy
|
||||
apa_fireside_chat_shared_stories_stewardship
|
||||
apa_fireside_chat_shared_stories_intrigue
|
||||
apa_fireside_chat_shared_drinks
|
||||
apa_fireside_chat_inspiring_speech
|
||||
apa_camp_party_sad_lonesome
|
||||
apa_camp_party_shadows_in_the_dark
|
||||
apa_camp_party_fortress_of_solitude
|
||||
apa_camp_party_lecture
|
||||
apa_camp_party_tales_of_distant_lands
|
||||
apa_camp_party_tales_of_war
|
||||
apa_camp_party_tales_of_lands_lost
|
||||
apa_camp_party_blademaster_sparring
|
||||
apa_camp_party_tales_of_piety
|
||||
|
||||
#Re-used
|
||||
host_gains_diplo_xp
|
||||
host_gains_intrigue_xp
|
||||
hook_trusting_guest
|
||||
}
|
||||
chance_of_no_event = 2
|
||||
}
|
||||
|
||||
on_start = {
|
||||
scope:activity ?= {
|
||||
activity_setup_special_type_progression_effect = yes
|
||||
if = {
|
||||
limit = {
|
||||
has_activity_option = {
|
||||
category = camp_party_option_food
|
||||
option = camp_party_food_simple
|
||||
}
|
||||
}
|
||||
activity_special_type_progression_variable = { NUM = 25 }
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
has_activity_option = {
|
||||
category = camp_party_option_food
|
||||
option = camp_party_food_lavish
|
||||
}
|
||||
}
|
||||
activity_special_type_progression_variable = { NUM = 50 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
###################
|
||||
# AI VALUES
|
||||
###################
|
||||
|
||||
# desc is only shown in debug AI watch window
|
||||
ai_will_do = {
|
||||
value = 50
|
||||
|
||||
if = {
|
||||
limit = {
|
||||
has_trait = lazy
|
||||
}
|
||||
add = -10
|
||||
}
|
||||
|
||||
#Can you actually afford this?
|
||||
if = {
|
||||
limit = {
|
||||
domicile.provisions <= 100
|
||||
}
|
||||
add = -75
|
||||
}
|
||||
}
|
||||
|
||||
ai_check_interval = 60
|
||||
|
||||
ai_will_select_province = {
|
||||
value = 10
|
||||
}
|
||||
|
||||
###################
|
||||
# GUEST HANDLING
|
||||
###################
|
||||
|
||||
host_intents = {
|
||||
default = reduce_stress_intent
|
||||
intents = { reduce_stress_intent befriend_attendee_intent fireside_chat_intent }
|
||||
}
|
||||
|
||||
guest_intents = {
|
||||
intents = { reduce_stress_intent befriend_attendee_intent }
|
||||
default = reduce_stress_intent
|
||||
}
|
||||
|
||||
can_be_activity_guest = {
|
||||
OR = { #Follower
|
||||
AND = {
|
||||
is_healthy = yes
|
||||
is_available = yes
|
||||
age >= 16
|
||||
is_ai = yes
|
||||
liege = scope:host
|
||||
location = scope:host.location
|
||||
}
|
||||
AND = { #Local lord
|
||||
is_healthy = yes
|
||||
is_available = yes
|
||||
age >= 16
|
||||
is_ai = yes
|
||||
top_liege = this
|
||||
location = scope:host.location
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
guest_invite_rules = {
|
||||
defaults = {
|
||||
1 = activity_invite_rule_followers
|
||||
2 = activity_invite_rule_local_lord
|
||||
2 = activity_invite_rule_friends
|
||||
2 = activity_invite_rule_potential_friends
|
||||
2 = activity_invite_rule_lovers
|
||||
2 = activity_invite_rule_potential_lovers
|
||||
}
|
||||
}
|
||||
|
||||
special_guests = {
|
||||
camp_party_honorary_guest = {
|
||||
is_required = no
|
||||
|
||||
can_pick = {
|
||||
this != scope:host
|
||||
is_healthy = yes
|
||||
is_available = yes
|
||||
age >= 16
|
||||
is_ai = yes
|
||||
top_liege = this
|
||||
location = scope:host.location
|
||||
}
|
||||
|
||||
ai_will_do = {
|
||||
value = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
travel_entourage_selection = {
|
||||
weight = {
|
||||
value = 10
|
||||
if = {
|
||||
limit = {
|
||||
NOT = { is_in_list = special_guests }
|
||||
}
|
||||
multiply = 0
|
||||
}
|
||||
}
|
||||
|
||||
invite_rule_order = 1
|
||||
|
||||
# Up to how many characters to select for a player
|
||||
max = 2
|
||||
|
||||
# Up to how many characters to select for an AI
|
||||
ai_max = 2
|
||||
}
|
||||
|
||||
max_guests = 50 #Theoretically everyone, practically only around 2-10 usually
|
||||
|
||||
guest_join_chance = {
|
||||
base = 50 #Everyone should accept, but...
|
||||
base_activity_modifier = yes
|
||||
|
||||
# Scripted Modifiers
|
||||
activity_guest_shared_ai_accept_modifier = yes
|
||||
|
||||
modifier = {
|
||||
is_courtier_of = scope:host
|
||||
scope:host = {
|
||||
has_government = landless_adventurer_government
|
||||
}
|
||||
add = 100
|
||||
desc = ACTIVITY_GUEST_ADVENTURER_REASON
|
||||
}
|
||||
|
||||
modifier = { #Emperors
|
||||
primary_title.tier = tier_empire
|
||||
add = -100
|
||||
desc = ACTIVITY_GUEST_LANDLESS_REASON
|
||||
}
|
||||
modifier = { #Kings
|
||||
primary_title.tier = tier_kingdom
|
||||
add = -75
|
||||
desc = ACTIVITY_GUEST_LANDLESS_REASON
|
||||
}
|
||||
modifier = { #Dukes
|
||||
primary_title.tier = tier_duchy
|
||||
add = -50
|
||||
desc = ACTIVITY_GUEST_LANDLESS_REASON
|
||||
}
|
||||
modifier = { #Counts
|
||||
primary_title.tier = tier_county
|
||||
add = -25
|
||||
desc = ACTIVITY_GUEST_LANDLESS_REASON
|
||||
}
|
||||
modifier = { #Barons
|
||||
primary_title.tier = tier_barony
|
||||
add = -5
|
||||
desc = ACTIVITY_GUEST_LANDLESS_REASON
|
||||
}
|
||||
}
|
||||
|
||||
###################
|
||||
# GRAPHICS
|
||||
###################
|
||||
|
||||
#Backgrounds mostly not needed here
|
||||
background = { #Campfire
|
||||
trigger = {
|
||||
scope:host.location = scope:activity.activity_location
|
||||
}
|
||||
texture = "gfx/interface/illustrations/event_scenes/ep3_campfire.dds"
|
||||
environment = "environment_event_bp1_bonfire"
|
||||
ambience = "event:/SFX/Events/Backgrounds/burning_building"
|
||||
}
|
||||
|
||||
### Plug in widgets
|
||||
activity_window_widgets = {
|
||||
activity_special_type_progression = "activity_plugin_widgets_summary"
|
||||
}
|
||||
|
||||
window_characters = {
|
||||
guest = {
|
||||
camera = camera_body_right
|
||||
|
||||
effect = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:host.location = scope:activity.activity_location
|
||||
}
|
||||
every_attending_character = {
|
||||
limit = {
|
||||
location = scope:activity.activity_location
|
||||
this != scope:host
|
||||
}
|
||||
add_to_list = characters
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scripted_animation = {
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
always = yes
|
||||
}
|
||||
animation = { drink_goblet happiness flirtation throne_room_conversation_3 throne_room_conversation_1 instrument_idle alto_flute_active }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Guest of Honor
|
||||
guest = {
|
||||
camera = camera_body
|
||||
|
||||
effect = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:host.location = scope:activity.activity_location
|
||||
any_attending_character = {
|
||||
this = scope:activity.special_guest:camp_party_honorary_guest
|
||||
location = scope:activity.activity_location
|
||||
}
|
||||
}
|
||||
every_attending_character = {
|
||||
limit = {
|
||||
this = scope:activity.special_guest:camp_party_honorary_guest
|
||||
location = scope:activity.activity_location
|
||||
}
|
||||
add_to_list = characters
|
||||
}
|
||||
}
|
||||
else = {
|
||||
every_attending_character = {
|
||||
limit = {
|
||||
location = scope:activity.activity_location
|
||||
this != scope:host
|
||||
}
|
||||
add_to_list = characters
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scripted_animation = {
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
scope:character = { has_trait = shy }
|
||||
}
|
||||
animation = { worry stress boredom fear disbelief paranoia eyeroll drink drink_goblet }
|
||||
}
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
scope:character = {
|
||||
NOT = { has_trait = shy }
|
||||
}
|
||||
}
|
||||
animation = { ecstasy wedding_priest chaplain personality_honorable personality_bold hero_flex }
|
||||
}
|
||||
#Fallback
|
||||
animation = toast_goblet
|
||||
}
|
||||
}
|
||||
|
||||
host = {
|
||||
camera = camera_body
|
||||
|
||||
effect = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:host.location = scope:activity.activity_location
|
||||
}
|
||||
scope:host = {
|
||||
add_to_list = characters
|
||||
}
|
||||
}
|
||||
}
|
||||
scripted_animation = {
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
always = yes
|
||||
}
|
||||
animation = { toast_goblet toast lute_active }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
guest = {
|
||||
camera = camera_body
|
||||
|
||||
effect = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:host.location = scope:activity.activity_location
|
||||
}
|
||||
every_attending_character = {
|
||||
limit = {
|
||||
location = scope:activity.activity_location
|
||||
this != scope:host
|
||||
}
|
||||
add_to_list = characters
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scripted_animation = {
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
scope:character = { has_trait = shy }
|
||||
}
|
||||
animation = { worry stress boredom fear disbelief paranoia eyeroll drink drink_goblet }
|
||||
}
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
scope:character = {
|
||||
NOT = { has_trait = shy }
|
||||
}
|
||||
}
|
||||
animation = { dancing laugh throne_room_conversation_2 }
|
||||
}
|
||||
#Fallback
|
||||
animation = toast
|
||||
}
|
||||
}
|
||||
|
||||
guest = {
|
||||
camera = camera_body_left
|
||||
|
||||
effect = {
|
||||
if = {
|
||||
limit = {
|
||||
scope:host.location = scope:activity.activity_location
|
||||
}
|
||||
every_attending_character = {
|
||||
limit = {
|
||||
location = scope:activity.activity_location
|
||||
this != scope:host
|
||||
}
|
||||
add_to_list = characters
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
scripted_animation = {
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
scope:character = { has_trait = shy }
|
||||
}
|
||||
animation = { worry stress boredom fear disbelief paranoia eyeroll drink drink_goblet }
|
||||
}
|
||||
triggered_animation = {
|
||||
trigger = {
|
||||
scope:character = {
|
||||
NOT = { has_trait = shy }
|
||||
}
|
||||
}
|
||||
animation = { drink eavesdrop wedding_drunk instrument_active }
|
||||
}
|
||||
#Fallback
|
||||
animation = toast
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4933
common/activities/activity_types/feast.txt
Normal file
4933
common/activities/activity_types/feast.txt
Normal file
File diff suppressed because it is too large
Load diff
1694
common/activities/activity_types/funeral.txt
Normal file
1694
common/activities/activity_types/funeral.txt
Normal file
File diff suppressed because it is too large
Load diff
1030
common/activities/activity_types/hike.txt
Normal file
1030
common/activities/activity_types/hike.txt
Normal file
File diff suppressed because it is too large
Load diff
5789
common/activities/activity_types/hunt.txt
Normal file
5789
common/activities/activity_types/hunt.txt
Normal file
File diff suppressed because it is too large
Load diff
2222
common/activities/activity_types/imperial_examination.txt
Normal file
2222
common/activities/activity_types/imperial_examination.txt
Normal file
File diff suppressed because it is too large
Load diff
1244
common/activities/activity_types/inspection.txt
Normal file
1244
common/activities/activity_types/inspection.txt
Normal file
File diff suppressed because it is too large
Load diff
1016
common/activities/activity_types/playdate.txt
Normal file
1016
common/activities/activity_types/playdate.txt
Normal file
File diff suppressed because it is too large
Load diff
4095
common/activities/activity_types/tour.txt
Normal file
4095
common/activities/activity_types/tour.txt
Normal file
File diff suppressed because it is too large
Load diff
4172
common/activities/activity_types/wedding.txt
Normal file
4172
common/activities/activity_types/wedding.txt
Normal file
File diff suppressed because it is too large
Load diff
10612
common/buildings/00_standard_economy_buildings.txt
Normal file
10612
common/buildings/00_standard_economy_buildings.txt
Normal file
File diff suppressed because it is too large
Load diff
1805
common/buildings/00_standard_fortification_buildings.txt
Normal file
1805
common/buildings/00_standard_fortification_buildings.txt
Normal file
File diff suppressed because it is too large
Load diff
2696
common/character_interactions/00_character_interactions.txt
Normal file
2696
common/character_interactions/00_character_interactions.txt
Normal file
File diff suppressed because it is too large
Load diff
388
common/character_interactions/00_culture_interactions.txt
Normal file
388
common/character_interactions/00_culture_interactions.txt
Normal file
|
|
@ -0,0 +1,388 @@
|
|||
# Interaction used to convert people when you hybridize or diverge culture
|
||||
# Note that it will only be applied to vassals of the parent culture(s)
|
||||
# Acceptance is checked *before* culture conversion happens so that it'll be correct in the UI
|
||||
# This has the culture traits available in the traits list:
|
||||
# modifier = {
|
||||
# add = 10
|
||||
# desc = TEST
|
||||
# culture_pillar:ethos_bellicose = { is_in_list = traits }
|
||||
# }
|
||||
|
||||
request_culture_conversion_interaction = {
|
||||
category = interaction_category_religion
|
||||
special_interaction = request_culture_conversion_interaction
|
||||
popup_on_receive = yes
|
||||
|
||||
desc = ask_for_conversion_interaction_desc
|
||||
|
||||
hidden = yes
|
||||
|
||||
is_shown = {
|
||||
scope:actor.culture != scope:recipient.culture
|
||||
scope:recipient.liege = scope:actor
|
||||
NOT = { scope:recipient = { government_has_flag = government_is_landless_minority } }
|
||||
}
|
||||
|
||||
is_valid_showing_failures_only = {
|
||||
}
|
||||
|
||||
ai_accept = {
|
||||
base = -10
|
||||
opinion_modifier = {
|
||||
opinion_target = scope:actor
|
||||
who = scope:recipient
|
||||
multiplier = 1
|
||||
}
|
||||
|
||||
modifier = {
|
||||
desc = ASK_FOR_CONVERSION_SAME_CULTURE_PRESTIGE_LEVEL
|
||||
add = {
|
||||
value = 10
|
||||
multiply = scope:actor.prestige_level
|
||||
}
|
||||
scope:actor.prestige_level > 0
|
||||
scope:recipient.culture = scope:actor.culture
|
||||
}
|
||||
|
||||
modifier = {
|
||||
desc = ASK_FOR_CONVERSION_RECIPIENT_DIPLOMACY
|
||||
add = {
|
||||
value = scope:actor.diplomacy
|
||||
subtract = scope:recipient.diplomacy
|
||||
multiply = 5
|
||||
}
|
||||
}
|
||||
|
||||
modifier = {
|
||||
desc = ASK_FOR_CONVERSION_RECIPIENT_IS_CYNICAL
|
||||
add = 30
|
||||
scope:recipient = {
|
||||
has_trait = cynical
|
||||
}
|
||||
}
|
||||
|
||||
modifier = {
|
||||
desc = ASK_FOR_CONVERSION_RECIPIENT_IS_STUBBORN
|
||||
add = -30
|
||||
scope:recipient = {
|
||||
has_trait = stubborn
|
||||
}
|
||||
}
|
||||
|
||||
modifier = {
|
||||
add = intimidated_external_reason_value
|
||||
scope:recipient = {
|
||||
has_dread_level_towards = {
|
||||
target = scope:actor
|
||||
level = 1
|
||||
}
|
||||
}
|
||||
desc = INTIMIDATED_REASON
|
||||
}
|
||||
modifier = {
|
||||
add = cowed_external_reason_value
|
||||
scope:recipient = {
|
||||
has_dread_level_towards = {
|
||||
target = scope:actor
|
||||
level = 2
|
||||
}
|
||||
}
|
||||
desc = COWED_REASON
|
||||
}
|
||||
# Unity modifiers
|
||||
evaluate_action_increasing_house_unity = {
|
||||
VALUE = 100
|
||||
}
|
||||
}
|
||||
|
||||
ai_min_reply_days = 1
|
||||
ai_max_reply_days = 5
|
||||
|
||||
on_accept = {
|
||||
new_culture_created_vassal_conversion_effect = {
|
||||
CONVERTEE = scope:recipient
|
||||
CONVERTER = scope:actor
|
||||
CULTURE = scope:actor.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_cultural_hybridization_interaction = {
|
||||
|
||||
hidden = yes
|
||||
|
||||
auto_accept = yes
|
||||
|
||||
ai_potential = {
|
||||
has_dlc_feature = hybridize_culture
|
||||
OR = {
|
||||
top_liege = this
|
||||
highest_held_title_tier >= tier_kingdom
|
||||
}
|
||||
sub_realm_size >= 4
|
||||
is_physically_able_adult = yes
|
||||
is_at_war = no
|
||||
NOT = {
|
||||
has_game_rule = none_hybrid_culture_ai_frequency
|
||||
}
|
||||
}
|
||||
|
||||
is_shown = {
|
||||
scope:actor = {
|
||||
is_ai = yes
|
||||
}
|
||||
}
|
||||
|
||||
has_valid_target = {
|
||||
exists = scope:target
|
||||
}
|
||||
|
||||
ai_set_target = {
|
||||
scope:actor = {
|
||||
if = {
|
||||
limit = {
|
||||
any_sub_realm_county = {
|
||||
culture != scope:actor.culture
|
||||
culture = {
|
||||
cultural_acceptance = { target = scope:actor.culture value >= hybridization_ai_threshold_value }
|
||||
scope:actor = {
|
||||
can_hybridize = prev
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
every_sub_realm_county = {
|
||||
limit = {
|
||||
culture != scope:actor.culture
|
||||
culture = {
|
||||
cultural_acceptance = { target = scope:actor.culture value >= hybridization_ai_threshold_value }
|
||||
scope:actor = {
|
||||
can_hybridize = prev
|
||||
}
|
||||
}
|
||||
}
|
||||
culture = {
|
||||
add_to_list = culture_list
|
||||
}
|
||||
}
|
||||
|
||||
ordered_in_list = {
|
||||
list = culture_list
|
||||
limit = { culture_realm_size >= 3 }
|
||||
order_by = culture_realm_size
|
||||
|
||||
save_scope_as = target
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on_accept = {
|
||||
# Global cooldowns for the lower frequency game rule settings
|
||||
if = {
|
||||
limit = {
|
||||
has_game_rule = less_common_hybrid_culture_ai_frequency
|
||||
}
|
||||
set_global_variable = { name = has_ai_hybrid_event_cooldown value = yes days = 3650 }
|
||||
}
|
||||
scope:actor = {
|
||||
create_hybrid_culture_with_side_effects = scope:target
|
||||
}
|
||||
}
|
||||
|
||||
ai_targets = {
|
||||
ai_recipients = self
|
||||
}
|
||||
|
||||
ai_frequency_by_tier = {
|
||||
barony = 0
|
||||
county = 120
|
||||
duchy = 60
|
||||
kingdom = 60
|
||||
empire = 60
|
||||
hegemony = 60
|
||||
}
|
||||
|
||||
ai_will_do = {
|
||||
base = 100
|
||||
|
||||
# Unity modifiers
|
||||
evaluate_action_increasing_house_unity = {
|
||||
VALUE = 100
|
||||
}
|
||||
|
||||
modifier = {
|
||||
factor = 0.2
|
||||
has_game_rule = less_common_hybrid_culture_ai_frequency
|
||||
}
|
||||
|
||||
modifier = {
|
||||
factor = 0
|
||||
exists = global_var:has_ai_hybrid_event_cooldown
|
||||
}
|
||||
|
||||
modifier = {
|
||||
factor = 0
|
||||
culture = {
|
||||
has_cultural_parameter = harder_to_hybridize
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # The AI should only want to hybridize if they're the second ruler of their culture for their primary title
|
||||
factor = 0
|
||||
OR = {
|
||||
NOT = {
|
||||
exists = primary_title.previous_holder
|
||||
}
|
||||
AND = {
|
||||
exists = primary_title.previous_holder
|
||||
primary_title.previous_holder.culture != scope:actor.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # The AI doesn't want to hybridize if their culture is more than X% bigger than the targeted culture within the same realm (unless it's in the capital, and the capital is the De Jure capital of the primary title)
|
||||
factor = 0
|
||||
scope:actor.culture.culture_realm_size > scope:target.culture_realm_size_larger_30_percent
|
||||
NAND = {
|
||||
scope:actor.primary_title.title_capital_county = scope:actor.capital_county
|
||||
scope:actor.capital_county.culture = scope:target
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # Do not hybridize if 30% or more of your vassals of the relevant culture/s dislike you
|
||||
factor = 0
|
||||
scope:actor = {
|
||||
any_vassal = {
|
||||
percent >= 0.3
|
||||
OR = {
|
||||
culture = scope:actor.culture
|
||||
culture = scope:target
|
||||
}
|
||||
highest_held_title_tier >= tier_county
|
||||
opinion = {
|
||||
target = scope:actor
|
||||
value <= 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # The AI does not want to create multiple hybrids from the same cultures
|
||||
factor = 0
|
||||
any_in_global_list = {
|
||||
variable = hybrid_cultures
|
||||
any_parent_culture = { this = scope:target }
|
||||
any_parent_culture = { this = scope:actor.culture }
|
||||
}
|
||||
}
|
||||
|
||||
# Loose requirements
|
||||
modifier = { # The AI does not want to create a hybrid with a hybrid culture that has the same roots
|
||||
factor = 0
|
||||
has_game_rule = very_relaxed_hybrid_culture_ai_restrictions
|
||||
scope:target = { is_hybrid_culture = yes }
|
||||
scope:actor.culture = {
|
||||
is_hybrid_culture = yes
|
||||
any_parent_culture = {
|
||||
save_temporary_scope_as = parent_culture_check
|
||||
scope:target = {
|
||||
any_parent_culture = {
|
||||
this = scope:parent_culture_check
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # The AI does not want to create a hybrid with a hybrid culture (unless a historical hybrid)
|
||||
factor = 0
|
||||
has_game_rule = relaxed_hybrid_culture_ai_restrictions
|
||||
scope:target = {
|
||||
is_hybrid_culture = yes
|
||||
culture_is_not_historical_hybrid_trigger = yes
|
||||
}
|
||||
scope:actor.culture = {
|
||||
is_hybrid_culture = yes
|
||||
culture_is_not_historical_hybrid_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # The AI does not want to create a hybrid with a hybrid culture or if the target is a hybrid (unless a historical hybrid)
|
||||
factor = 0
|
||||
has_game_rule = default_hybrid_culture_ai_restrictions
|
||||
OR = {
|
||||
scope:target = {
|
||||
is_hybrid_culture = yes
|
||||
culture_is_not_historical_hybrid_trigger = yes
|
||||
}
|
||||
scope:actor.culture = {
|
||||
is_hybrid_culture = yes
|
||||
culture_is_not_historical_hybrid_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # The AI does not want to create a hybrid with a hybrid culture that their culture is a parent of, or share heritage of
|
||||
factor = 0
|
||||
scope:target = {
|
||||
is_hybrid_culture = yes
|
||||
any_parent_culture = {
|
||||
OR = {
|
||||
this = scope:actor.culture
|
||||
has_same_culture_heritage = scope:actor.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # The AI does not want to create a hybrid if their culture is a hybrid of the target culture, or share heritage of
|
||||
factor = 0
|
||||
scope:actor.culture = {
|
||||
is_hybrid_culture = yes
|
||||
any_parent_culture = {
|
||||
OR = {
|
||||
this = scope:target
|
||||
has_same_culture_heritage = scope:target
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # Avoid hybridizing if your realm is of a significant size and elective, we don't want the HRE Emperor to hybdridize in ugly ways...
|
||||
factor = 0
|
||||
primary_title = {
|
||||
has_order_of_succession = election
|
||||
tier >= tier_kingdom
|
||||
}
|
||||
realm_size >= 50
|
||||
any_vassal = {
|
||||
highest_held_title_tier >= tier_county
|
||||
culture != scope:actor.culture
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # Theocrats such as the Pope shouldn't hybridize; they have an influx of different cultures, it's just weird
|
||||
factor = 0
|
||||
government_has_flag = government_is_theocracy
|
||||
}
|
||||
|
||||
modifier = { # Block for Scots and Gaelic specifically
|
||||
factor = 0
|
||||
scope:actor.culture = {
|
||||
OR = {
|
||||
this = culture:scottish
|
||||
this = culture:gaelic
|
||||
}
|
||||
}
|
||||
scope:target = {
|
||||
OR = {
|
||||
this = culture:scottish
|
||||
this = culture:gaelic
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Note: As we're checking if we can hybridize with a culture *right now*, a suboptimal culture might be checked. A buffer of 10 acceptance is used by the AI to alleviate this.
|
||||
}
|
||||
}
|
||||
5531
common/character_interactions/00_marriage_interactions.txt
Normal file
5531
common/character_interactions/00_marriage_interactions.txt
Normal file
File diff suppressed because it is too large
Load diff
7706
common/character_interactions/00_religious_interactions.txt
Normal file
7706
common/character_interactions/00_religious_interactions.txt
Normal file
File diff suppressed because it is too large
Load diff
492
common/character_interactions/02_ep1_interactions.txt
Normal file
492
common/character_interactions/02_ep1_interactions.txt
Normal file
|
|
@ -0,0 +1,492 @@
|
|||
# Character Interactions for EP1
|
||||
|
||||
##################
|
||||
# Fund someone's inspiration
|
||||
# by Linnéa Thimrén
|
||||
##################
|
||||
fund_inspiration_interaction = {
|
||||
icon = inspiration
|
||||
interface_priority = 30
|
||||
common_interaction = yes
|
||||
category = interaction_category_vassal
|
||||
desc = fund_inspiration_interaction_desc
|
||||
|
||||
is_shown = {
|
||||
scope:recipient = {
|
||||
is_ruler = no
|
||||
inspiration ?= {
|
||||
NOT = {
|
||||
exists = inspiration_sponsor
|
||||
}
|
||||
}
|
||||
}
|
||||
scope:actor = {
|
||||
any_courtier_or_guest = {
|
||||
this = scope:recipient
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
is_highlighted = {
|
||||
always = yes
|
||||
}
|
||||
|
||||
is_valid_showing_failures_only = {
|
||||
scope:recipient = {
|
||||
is_physically_able = yes
|
||||
is_ruler = no
|
||||
trigger_if = {
|
||||
limit = {
|
||||
NOT = { is_courtier_of = scope:actor }
|
||||
}
|
||||
can_recruit_character_to_court_trigger = {
|
||||
RECRUITER = scope:actor
|
||||
RECRUITEE = scope:recipient
|
||||
}
|
||||
}
|
||||
}
|
||||
scope:actor = {
|
||||
can_sponsor_inspiration = scope:recipient.inspiration
|
||||
gold >= scope:recipient.inspiration.base_inspiration_gold_cost
|
||||
}
|
||||
}
|
||||
|
||||
on_accept = {
|
||||
fund_inspiration_effect = yes
|
||||
|
||||
if = {
|
||||
limit = { scope:recipient.inspiration = { has_inspiration_type = weapon_inspiration } }
|
||||
custom_description_no_bullet = { text = weapon_inspiration_cost_tt }
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:recipient.inspiration = { has_inspiration_type = armor_inspiration } }
|
||||
custom_description_no_bullet = { text = armor_inspiration_cost_tt }
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:recipient.inspiration = { has_inspiration_type = book_inspiration } }
|
||||
custom_description_no_bullet = { text = book_inspiration_cost_tt }
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:recipient.inspiration = { has_inspiration_type = weaver_inspiration } }
|
||||
custom_description_no_bullet = { text = weaver_inspiration_cost_tt }
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:recipient.inspiration = { has_inspiration_type = adventure_inspiration } }
|
||||
custom_description_no_bullet = { text = adventure_inspiration_cost_tt }
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:recipient.inspiration = { has_inspiration_type = artisan_inspiration } }
|
||||
custom_description_no_bullet = { text = artisan_inspiration_cost_tt }
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:recipient.inspiration = { has_inspiration_type = smith_inspiration } }
|
||||
custom_description_no_bullet = { text = smith_inspiration_cost_tt }
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:recipient.inspiration = { has_inspiration_type = alchemy_inspiration } }
|
||||
custom_description_no_bullet = { text = alchemy_inspiration_cost_tt }
|
||||
}
|
||||
else_if = {
|
||||
limit = { scope:recipient.inspiration = { has_inspiration_type = bow_inspiration } }
|
||||
custom_description_no_bullet = { text = bow_inspiration_cost_tt }
|
||||
}
|
||||
|
||||
# Add a flag on AI to have an extra cooldown of 3 years
|
||||
if = {
|
||||
limit = {
|
||||
scope:actor = {
|
||||
is_ai = yes
|
||||
NOT = {
|
||||
gold >= 1000
|
||||
}
|
||||
OR = {
|
||||
short_term_gold < ai_inspiration_desired_gold_value
|
||||
ai_greed >= 50
|
||||
}
|
||||
}
|
||||
}
|
||||
scope:actor = {
|
||||
add_character_flag = {
|
||||
flag = recently_fund_inspiration
|
||||
years = 3
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
# If we're a clan this interaction affects unity
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = scope:actor
|
||||
TARGET = scope:recipient
|
||||
VALUE = miniscule_unity_gain
|
||||
DESC = clan_unity_inspo.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
|
||||
#Mandala Creation Aspect
|
||||
scope:actor = {
|
||||
if = {
|
||||
limit = { government_has_flag = government_is_mandala }
|
||||
increment_variable_effect = {
|
||||
VAR = num_commissioned_artifacts
|
||||
VAL = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
auto_accept = {
|
||||
custom_description = {
|
||||
text = auto_accept_interaction_ai
|
||||
object = scope:recipient
|
||||
scope:recipient = {
|
||||
is_ai = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ai_frequency_by_tier = {
|
||||
barony = 0
|
||||
county = 0
|
||||
duchy = 0
|
||||
kingdom = 10
|
||||
empire = 10
|
||||
hegemony = 10
|
||||
}
|
||||
|
||||
ai_targets = {
|
||||
ai_recipients = guests
|
||||
ai_recipients = courtiers
|
||||
}
|
||||
|
||||
ai_target_quick_trigger = {
|
||||
adult = yes
|
||||
}
|
||||
|
||||
ai_potential = {
|
||||
is_at_war = no
|
||||
OR = {
|
||||
has_royal_court = yes
|
||||
OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority }
|
||||
}
|
||||
gold > ai_inspiration_desired_gold_value
|
||||
NOT = { has_character_flag = recently_fund_inspiration }
|
||||
NOT = { has_variable = conqueror }
|
||||
ai_should_focus_on_building_in_their_capital = no
|
||||
}
|
||||
|
||||
ai_will_do = {
|
||||
base = 100
|
||||
|
||||
modifier = { # Not as likely to fund inspirations if they already have some going (max three for very prestigious courts)
|
||||
add = {
|
||||
if = {
|
||||
limit = {
|
||||
highest_held_title_tier >= tier_empire
|
||||
any_sponsored_inspiration = {
|
||||
count >= 3
|
||||
}
|
||||
}
|
||||
add = -50
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
highest_held_title_tier >= tier_kingdom
|
||||
any_sponsored_inspiration = {
|
||||
count >= 2
|
||||
}
|
||||
}
|
||||
add = -50
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Do not pointlessly fund inspirations you do not need
|
||||
modifier = { # Weapons
|
||||
factor = 0
|
||||
scope:recipient.inspiration = {
|
||||
has_inspiration_type = weapon_inspiration
|
||||
}
|
||||
OR = {
|
||||
any_character_artifact = { # Has a fantastic item already
|
||||
artifact_slot_type = primary_armament
|
||||
rarity = illustrious
|
||||
}
|
||||
AND = { # Have a lot of artifacts already, and the inspired person isn't even very good
|
||||
scope:recipient = {
|
||||
weapon_inspiration_average_skill_value < 15
|
||||
}
|
||||
any_character_artifact = {
|
||||
count >= 2
|
||||
artifact_slot_type = primary_armament
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
modifier = { # Armor
|
||||
factor = 0
|
||||
scope:recipient.inspiration = {
|
||||
has_inspiration_type = armor_inspiration
|
||||
}
|
||||
OR = {
|
||||
any_character_artifact = { # Has a fantastic item already
|
||||
artifact_slot_type = armor
|
||||
rarity = illustrious
|
||||
}
|
||||
AND = { # Have a lot of artifacts already, and the inspired person isn't even very good
|
||||
scope:recipient = {
|
||||
armor_inspiration_average_skill_value < 15
|
||||
}
|
||||
any_character_artifact = {
|
||||
count >= 2
|
||||
artifact_slot_type = armor
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
modifier = { # Warlike AI's only sponsor if they've been at peace for a long time
|
||||
factor = 0
|
||||
ai_has_warlike_personality = yes
|
||||
days_of_continuous_peace < 1825 # 5 years
|
||||
}
|
||||
modifier = { # Cautious AI's only sponsor if they feel safe enough
|
||||
factor = 0
|
||||
ai_has_cautious_personality = yes
|
||||
war_chest_gold < cautious_ai_minimum_war_chest_gold
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
##################
|
||||
# Indebt Guest
|
||||
# by Ewan Cowhig Croft
|
||||
##################
|
||||
|
||||
indebt_guest_interaction = {
|
||||
icon = icon_hostile
|
||||
interface_priority = 120
|
||||
common_interaction = yes
|
||||
ai_max_reply_days = 0
|
||||
cooldown = { years = 5 }
|
||||
|
||||
category = interaction_category_hostile
|
||||
ai_maybe = yes
|
||||
|
||||
desc = indebt_guest_interaction_desc
|
||||
|
||||
greeting = negative
|
||||
pre_answer_maybe_key = ANSWER_MIGHT_SUCCEED
|
||||
pre_answer_no_key = ANSWER_CANT_SUCCEED
|
||||
pre_answer_yes_key = ANSWER_WILL_SUCCEED
|
||||
pre_answer_maybe_breakdown_key = ANSWER_SUM_CHANCE
|
||||
|
||||
ai_potential = {
|
||||
# Repeat some is_shown triggers for performance gains.
|
||||
indebt_guest_interaction_basic_checks_trigger = { ACTOR = this }
|
||||
}
|
||||
|
||||
is_shown = {
|
||||
scope:actor != scope:recipient
|
||||
# Repeat some ai_potential triggers for performance gains.
|
||||
indebt_guest_interaction_basic_checks_trigger = { ACTOR = scope:actor }
|
||||
# Scope:recipient must be a guest.
|
||||
scope:recipient = { is_pool_guest_of = scope:actor }
|
||||
}
|
||||
|
||||
is_valid_showing_failures_only = {
|
||||
scope:actor = { is_imprisoned = no }
|
||||
scope:actor = { is_commanding_army = no }
|
||||
# Scope:actor can't have a hook of any kind on scope:recipient already.
|
||||
NOT = {
|
||||
scope:actor = { has_hook = scope:recipient }
|
||||
}
|
||||
# Scope:actor must be able to afford the cost of the decision going wrong.
|
||||
scope:actor.court_grandeur_current >= indebt_guest_interaction_lost_test_grandeur_cost_value
|
||||
}
|
||||
|
||||
can_send = {
|
||||
scope:actor = {
|
||||
custom_description = {
|
||||
text = "character_interactions_hostile_actions_disabled_delay"
|
||||
NOT = { has_character_flag = flag_hostile_actions_disabled_delay }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on_send = {
|
||||
scope:actor = {
|
||||
add_character_flag = {
|
||||
flag = flag_hostile_actions_disabled_delay
|
||||
days = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on_accept = {
|
||||
scope:actor = {
|
||||
# On accept, you gain a hook & lose some opinion.
|
||||
## Which we only show as a tooltip for now, since it's applied in the event.
|
||||
show_as_tooltip = { indebt_guest_interaction_accepted_effect = yes }
|
||||
# Pop the event.
|
||||
trigger_event = ep1_character_interaction.0001
|
||||
# Reminder that you'll have a chance to direct where they go.
|
||||
custom_tooltip = indebt_guest_interaction.tt.direct_indebted_guest
|
||||
}
|
||||
|
||||
# If we're a clan this interaction affects unity
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = scope:actor
|
||||
TARGET = scope:recipient
|
||||
VALUE = miniscule_unity_loss
|
||||
DESC = clan_unity_indebt_guest.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
}
|
||||
|
||||
on_decline = {
|
||||
# Send a toast.
|
||||
scope:actor = {
|
||||
send_interface_toast = {
|
||||
type = event_toast_effect_bad
|
||||
title = indebt_guest_interaction.tt.failure
|
||||
left_icon = scope:recipient
|
||||
# On decline, scope:recipient leaves your court...
|
||||
scope:recipient = { select_and_move_to_pool_effect = yes }
|
||||
# ... and you lose a bit of extra grandeur for your audacity.
|
||||
change_current_court_grandeur = indebt_guest_interaction_lost_test_grandeur_cost_value
|
||||
}
|
||||
}
|
||||
|
||||
# If we're a clan this interaction affects unity
|
||||
add_clan_unity_interaction_effect = {
|
||||
CHARACTER = scope:actor
|
||||
TARGET = scope:recipient
|
||||
VALUE = miniscule_unity_loss
|
||||
DESC = clan_unity_indebt_guest_failure.desc
|
||||
REVERSE_NON_HOUSE_TARGET = no
|
||||
}
|
||||
}
|
||||
|
||||
auto_accept = no
|
||||
|
||||
ai_accept = {
|
||||
base = 50
|
||||
|
||||
# Standard intrigue duel.
|
||||
modifier = {
|
||||
add = {
|
||||
value = scope:actor.intrigue
|
||||
multiply = 2
|
||||
}
|
||||
desc = INDEBT_GUEST_INTRIGUE_ACTOR
|
||||
}
|
||||
modifier = {
|
||||
add = {
|
||||
value = scope:recipient.intrigue
|
||||
multiply = -1
|
||||
}
|
||||
desc = INDEBT_GUEST_INTRIGUE_RECIPIENT
|
||||
}
|
||||
# Weight it a bit more in your favour for every point of excess CGV you have.
|
||||
modifier = {
|
||||
add = scope:actor.current_cgv_above_expected_exact_value
|
||||
desc = INDEBT_GUEST_CURRENT_CGV_ABOVE_EXPECTED
|
||||
scope:actor.current_cgv_above_expected_exact_value >= 1
|
||||
}
|
||||
# Some traits may also affect the chances for scope:actor...
|
||||
modifier = {
|
||||
add = 10
|
||||
scope:actor = { has_trait = schemer }
|
||||
}
|
||||
modifier = {
|
||||
add = 10
|
||||
scope:actor = { has_trait = education_intrigue }
|
||||
}
|
||||
modifier = {
|
||||
add = 5
|
||||
scope:actor = { has_trait = deceitful }
|
||||
}
|
||||
modifier = {
|
||||
add = 5
|
||||
scope:actor = { has_trait = vengeful }
|
||||
}
|
||||
modifier = {
|
||||
add = -10
|
||||
scope:actor = { has_trait = honest }
|
||||
}
|
||||
modifier = {
|
||||
add = -5
|
||||
scope:actor = { has_trait = forgiving }
|
||||
}
|
||||
# ... or else for scope:recipient.
|
||||
modifier = {
|
||||
add = -10
|
||||
scope:recipient = { has_trait = schemer }
|
||||
}
|
||||
modifier = {
|
||||
add = -5
|
||||
scope:recipient = { has_trait = education_intrigue }
|
||||
}
|
||||
modifier = {
|
||||
add = -5
|
||||
scope:recipient = { has_trait = deceitful }
|
||||
}
|
||||
modifier = {
|
||||
add = 10
|
||||
scope:recipient = { has_trait = honest }
|
||||
}
|
||||
}
|
||||
|
||||
# AI
|
||||
ai_targets = {
|
||||
ai_recipients = guests
|
||||
chance = 0.5
|
||||
}
|
||||
ai_frequency_by_tier = {
|
||||
barony = 0
|
||||
county = 0
|
||||
duchy = 0
|
||||
kingdom = 10
|
||||
empire = 10
|
||||
hegemony = 10
|
||||
}
|
||||
|
||||
ai_will_do = {
|
||||
base = -100
|
||||
|
||||
# This is a silly way for the AI to spend its CGV, so we keep 'em off it most of the time.
|
||||
# Unless they've got a scheme on the go at their nemesis' court...
|
||||
modifier = {
|
||||
add = 100
|
||||
scope:actor = {
|
||||
any_relation = { type = nemesis }
|
||||
any_scheme = {
|
||||
count >= 1
|
||||
scheme_target_character = {
|
||||
any_relation = {
|
||||
type = nemesis
|
||||
count >= 1
|
||||
this = scope:actor
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
# ... *and* they're likely to win due to having higher intrigue, but without scope:recipient being too terrible.
|
||||
modifier = {
|
||||
add = 25
|
||||
indebt_guest_interaction_get_intrigue_difference_value >= indebt_guest_interaction_likely_success_control_value
|
||||
scope:recipient = { intrigue >= high_skill_rating }
|
||||
}
|
||||
modifier = {
|
||||
add = 25
|
||||
indebt_guest_interaction_get_intrigue_difference_value >= indebt_guest_interaction_likely_success_control_value
|
||||
scope:recipient = { intrigue >= very_high_skill_rating }
|
||||
}
|
||||
modifier = {
|
||||
add = 50
|
||||
indebt_guest_interaction_get_intrigue_difference_value >= indebt_guest_interaction_likely_success_control_value
|
||||
scope:recipient = { intrigue >= extremely_high_skill_rating }
|
||||
}
|
||||
}
|
||||
}
|
||||
5491
common/character_interactions/03_fp2_interactions.txt
Normal file
5491
common/character_interactions/03_fp2_interactions.txt
Normal file
File diff suppressed because it is too large
Load diff
7965
common/character_interactions/06_ep3_laamp_interactions.txt
Normal file
7965
common/character_interactions/06_ep3_laamp_interactions.txt
Normal file
File diff suppressed because it is too large
Load diff
11274
common/character_interactions/09_mpo_interactions.txt
Normal file
11274
common/character_interactions/09_mpo_interactions.txt
Normal file
File diff suppressed because it is too large
Load diff
7131
common/court_positions/types/00_camp_officers.txt
Normal file
7131
common/court_positions/types/00_camp_officers.txt
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -888,6 +888,26 @@ GetGovernmentIcon = {
|
|||
}
|
||||
localization_key = adventurer_icon_concept
|
||||
}
|
||||
text = { # Republic
|
||||
trigger = {
|
||||
trigger_if = {
|
||||
limit = {
|
||||
is_alive = no
|
||||
}
|
||||
has_government = landless_minority_government
|
||||
}
|
||||
trigger_else = {
|
||||
trigger_if = {
|
||||
limit = { is_ruler = yes }
|
||||
government_has_flag = government_is_landless_minority
|
||||
}
|
||||
trigger_else = {
|
||||
liege ?= { government_has_flag = government_is_landless_minority }
|
||||
}
|
||||
}
|
||||
}
|
||||
localization_key = minority_community_icon_concept
|
||||
}
|
||||
text = { # Nomad
|
||||
trigger = {
|
||||
trigger_if = {
|
||||
|
|
|
|||
2039
common/customizable_localization/tgp_custom_loc.txt
Normal file
2039
common/customizable_localization/tgp_custom_loc.txt
Normal file
File diff suppressed because it is too large
Load diff
592
common/decisions/10_culture_conversion_decisions.txt
Normal file
592
common/decisions/10_culture_conversion_decisions.txt
Normal file
|
|
@ -0,0 +1,592 @@
|
|||
### Convert to Local Culture ###
|
||||
convert_to_local_culture_decision = {
|
||||
picture = {
|
||||
reference = "gfx/interface/illustrations/decisions/decision_realm.dds"
|
||||
}
|
||||
desc = convert_to_local_culture_decision_desc
|
||||
selection_tooltip = convert_to_local_culture_decision_tooltip
|
||||
|
||||
is_shown = {
|
||||
is_playable_character = yes
|
||||
primary_title.tier > tier_barony
|
||||
culture != capital_province.culture
|
||||
NAND = {
|
||||
is_ai = yes
|
||||
OR = {
|
||||
has_character_flag = converted_culture_this_lifetime
|
||||
has_character_flag = converted_culture_this_lifetime_ai
|
||||
}
|
||||
}
|
||||
NOT = { government_has_flag = government_is_landless_minority }
|
||||
}
|
||||
|
||||
is_valid_showing_failures_only = {
|
||||
is_physically_able_adult = yes
|
||||
is_at_war = no
|
||||
custom_description = {
|
||||
text = can_only_change_culture_once
|
||||
NOT = { has_character_flag = converted_culture_this_lifetime }
|
||||
}
|
||||
}
|
||||
|
||||
cost = {
|
||||
prestige = {
|
||||
value = convert_to_local_culture_base_cost
|
||||
if = { # Cheaper to convert to a hybrid culture made from your culture
|
||||
limit = {
|
||||
capital_province.culture = {
|
||||
any_parent_culture = {
|
||||
this = root.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
multiply = 0.5
|
||||
}
|
||||
|
||||
# Similarities in culture
|
||||
if = {
|
||||
limit = {
|
||||
capital_province.culture = {
|
||||
has_same_culture_ethos = root.culture
|
||||
}
|
||||
}
|
||||
multiply = 0.75
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
capital_province.culture = {
|
||||
has_same_culture_heritage = root.culture
|
||||
}
|
||||
}
|
||||
multiply = 0.75
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
capital_province.culture = {
|
||||
has_same_culture_language = root.culture
|
||||
}
|
||||
}
|
||||
multiply = 0.5
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
NOT = {
|
||||
capital_province.culture = {
|
||||
has_same_culture_martial_tradition = root.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
multiply = 1.25
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
culture = {
|
||||
has_cultural_parameter = expensive_convert_to_local_culture
|
||||
}
|
||||
}
|
||||
multiply = 3
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
culture = {
|
||||
has_cultural_parameter = cheaper_convert_to_local_culture
|
||||
}
|
||||
}
|
||||
multiply = 0.25
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
NOT = {
|
||||
government_has_flag = government_is_nomadic
|
||||
}
|
||||
has_trait = nomadic_philosophy
|
||||
}
|
||||
multiply = 0.25
|
||||
}
|
||||
# Account for struggle phase.
|
||||
if = {
|
||||
limit = { is_struggle_parameter_active_cheaper_to_convert_to_struggle_culture_trigger = yes }
|
||||
multiply = 0.25
|
||||
}
|
||||
|
||||
# Make sure it's never dumb numbers.
|
||||
min = 25
|
||||
}
|
||||
}
|
||||
|
||||
effect = {
|
||||
if = {
|
||||
limit = {
|
||||
culture = {
|
||||
has_cultural_parameter = less_likely_to_culture_convert
|
||||
}
|
||||
OR = {
|
||||
has_trait = compassionate
|
||||
has_trait = gregarious
|
||||
has_trait = diligent
|
||||
has_trait = fickle
|
||||
has_trait = humble
|
||||
has_trait = trusting
|
||||
}
|
||||
}
|
||||
add_stress = medium_stress_gain
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
culture = {
|
||||
has_cultural_parameter = less_likely_to_culture_convert
|
||||
}
|
||||
}
|
||||
add_stress = major_stress_gain
|
||||
}
|
||||
# Struggle Catalysts
|
||||
if = {
|
||||
limit = {
|
||||
any_character_struggle = {
|
||||
involvement = involved
|
||||
phase_has_catalyst = catalyst_convert_local_culture_faith
|
||||
is_culture_involved_in_struggle = root.capital_province.culture
|
||||
}
|
||||
}
|
||||
every_character_struggle = {
|
||||
involvement = involved
|
||||
activate_struggle_catalyst = {
|
||||
catalyst = catalyst_convert_local_culture_faith
|
||||
character = root
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
convert_family_culture_and_notify_vassals_effect = {
|
||||
CONVERTER = root
|
||||
OLD_CULTURE = root.culture
|
||||
NEW_CULTURE = capital_province.culture
|
||||
}
|
||||
}
|
||||
|
||||
ai_check_interval_by_tier = {
|
||||
barony = 0
|
||||
county = 60
|
||||
duchy = 60
|
||||
kingdom = 60
|
||||
empire = 60
|
||||
hegemony = 60
|
||||
}
|
||||
|
||||
ai_potential = {
|
||||
is_playable_character = yes
|
||||
culture != capital_province.culture
|
||||
is_landless_adventurer = no
|
||||
}
|
||||
|
||||
ai_will_do = {
|
||||
base = 3
|
||||
|
||||
modifier = { # If your liege is the same culture as your capital, better get on with it! This should combat scattered wrong-culture Counts and such.
|
||||
add = 77
|
||||
capital_province.culture = liege.culture
|
||||
}
|
||||
|
||||
modifier = { # Motivate vassals to assimilate if they are different culture from their liege. If they can't curry their liege's favor, better get the peasants on your side at least...
|
||||
add = 27
|
||||
NOR = {
|
||||
culture = capital_province.culture
|
||||
culture = liege.culture
|
||||
}
|
||||
}
|
||||
|
||||
# Reduced chance for every vassal who has your old culture
|
||||
modifier = {
|
||||
factor = {
|
||||
value = 1
|
||||
every_vassal = {
|
||||
limit = {
|
||||
OR = {
|
||||
highest_held_title_tier = tier_kingdom
|
||||
highest_held_title_tier = tier_duchy
|
||||
AND = {
|
||||
root = {
|
||||
highest_held_title_tier = tier_duchy
|
||||
}
|
||||
primary_title.tier = tier_county
|
||||
}
|
||||
}
|
||||
culture = root.culture
|
||||
}
|
||||
add = -0.3
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # This factor 0 is not misplaced; Loyal Subjects should not culture convert unless it's to a hybrid!
|
||||
factor = 0
|
||||
top_liege != this
|
||||
exists = liege
|
||||
culture != liege.culture
|
||||
culture = {
|
||||
has_cultural_tradition = tradition_loyal_soldiers
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # You're an independent count that has become landed somewhere, as you can't increase acceptance, it's best to assimilate.
|
||||
add = 200
|
||||
top_liege = this
|
||||
primary_title.tier = tier_county
|
||||
domain_size <= 3
|
||||
culture = {
|
||||
NOR = {
|
||||
has_cultural_parameter = easier_to_hybridize # Not for hybrid-loving cultures
|
||||
has_cultural_parameter = expensive_convert_to_local_culture # Nor staunch traditionalists
|
||||
}
|
||||
cultural_acceptance = { target = root.capital_province.culture value < 50 }
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # Do convert to hybrids of your own culture
|
||||
add = 200
|
||||
capital_province.culture = {
|
||||
is_hybrid_culture = yes
|
||||
any_parent_culture = {
|
||||
this = root.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # Farewell, norse culture (unless the player is running a norse empire)
|
||||
add = 200
|
||||
OR = {
|
||||
top_liege = this
|
||||
AND = {
|
||||
top_liege != this
|
||||
NOT = {
|
||||
any_liege_or_above = {
|
||||
culture = culture:norse
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
culture = culture:norse
|
||||
capital_province.culture = {
|
||||
OR = {
|
||||
this = culture:swedish
|
||||
this = culture:norwegian
|
||||
this = culture:danish
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # Iberian Struggle modifiers
|
||||
any_character_struggle = {
|
||||
involvement = involved
|
||||
}
|
||||
add = {
|
||||
value = 0
|
||||
if = {
|
||||
limit = {
|
||||
any_character_struggle = {
|
||||
phase_has_catalyst = catalyst_convert_local_culture_faith
|
||||
}
|
||||
has_character_flag = agenda_towards_escalation
|
||||
}
|
||||
add = -300
|
||||
}
|
||||
else_if = { # Slight boost, so players can't exploit landing lots of characters to bump catalyst progress
|
||||
limit = {
|
||||
any_character_struggle = {
|
||||
phase_has_catalyst = catalyst_convert_local_culture_faith
|
||||
}
|
||||
}
|
||||
add = 20
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # If you're the same culture as your liege, and your Capital is in a Duchy with your culture in it, never convert
|
||||
factor = 0
|
||||
top_liege != this
|
||||
exists = liege
|
||||
culture = liege.culture
|
||||
capital_province.duchy = {
|
||||
any_in_de_jure_hierarchy = {
|
||||
tier = tier_county
|
||||
any_county_province = {
|
||||
culture = root.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # If your capital borders a province with the correct culture, do not convert
|
||||
factor = 0
|
||||
top_liege != this
|
||||
exists = liege
|
||||
culture = liege.culture
|
||||
capital_province.county = {
|
||||
any_neighboring_county = {
|
||||
any_county_province = {
|
||||
culture = root.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modifier = { # If your liege is your parent, do not convert
|
||||
factor = 0
|
||||
top_liege != this
|
||||
exists = liege
|
||||
culture = liege.culture
|
||||
OR = {
|
||||
liege = root.mother
|
||||
liege = root.father
|
||||
}
|
||||
}
|
||||
|
||||
# Some cultures should not assimilate to certain others
|
||||
modifier = {
|
||||
factor = 0
|
||||
has_culture = culture:andalusian
|
||||
capital_province = {
|
||||
culture = { has_cultural_pillar = heritage_iberian }
|
||||
}
|
||||
NOT = {
|
||||
capital_province = {
|
||||
culture = {
|
||||
is_hybrid_culture = yes
|
||||
any_parent_culture_or_above = {
|
||||
this = root.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
modifier = {
|
||||
factor = 0
|
||||
culture = { has_cultural_pillar = heritage_iberian }
|
||||
capital_province.culture = culture:andalusian
|
||||
}
|
||||
|
||||
# Don't overwrite historically scripted developments
|
||||
modifier = {
|
||||
factor = 0
|
||||
OR = {
|
||||
has_culture = culture:norman
|
||||
has_culture = culture:english
|
||||
}
|
||||
capital_province.culture = culture:anglo_saxon
|
||||
}
|
||||
modifier = {
|
||||
factor = 0
|
||||
has_culture = culture:turkish
|
||||
capital_province = {
|
||||
culture = {
|
||||
OR = {
|
||||
has_cultural_pillar = heritage_byzantine
|
||||
has_cultural_pillar = heritage_caucasian
|
||||
}
|
||||
}
|
||||
}
|
||||
NOT = {
|
||||
capital_province = {
|
||||
culture = {
|
||||
is_hybrid_culture = yes
|
||||
any_parent_culture_or_above = {
|
||||
this = root.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
modifier = {
|
||||
factor = 0
|
||||
has_culture = culture:turkish
|
||||
primary_title.tier >= tier_empire
|
||||
}
|
||||
modifier = {
|
||||
factor = 0
|
||||
OR = {
|
||||
has_title = title:k_jerusalem
|
||||
has_title = title:e_outremer
|
||||
any_liege_or_above = {
|
||||
OR = {
|
||||
has_title = title:k_jerusalem
|
||||
has_title = title:e_outremer
|
||||
}
|
||||
}
|
||||
}
|
||||
NOR = {
|
||||
capital_province = { # Convert to Hybrids of your culture in the Holy Land
|
||||
culture = {
|
||||
is_hybrid_culture = yes
|
||||
any_parent_culture_or_above = {
|
||||
this = root.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
top_liege != this
|
||||
exists = liege
|
||||
capital_province.culture = liege.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
modifier = {
|
||||
factor = 0
|
||||
has_title = title:e_latin_empire
|
||||
NOT = {
|
||||
capital_province = {
|
||||
culture = {
|
||||
is_hybrid_culture = yes
|
||||
any_parent_culture_or_above = {
|
||||
this = root.culture
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Scots needs a bit of help to dominate as it did historically
|
||||
modifier = {
|
||||
factor = 0
|
||||
has_culture = culture:scottish
|
||||
capital_province.culture = culture:gaelic
|
||||
}
|
||||
|
||||
# Pictish should usually disappear
|
||||
modifier = {
|
||||
factor = 0
|
||||
has_culture = culture:gaelic
|
||||
capital_province.culture = culture:pictish
|
||||
}
|
||||
|
||||
# Don't go back on a previous conversion
|
||||
modifier = {
|
||||
factor = 0
|
||||
has_character_flag = converted_culture_this_lifetime
|
||||
}
|
||||
#Some traditions reeeallly don't like doing this
|
||||
modifier = {
|
||||
factor = 0.1
|
||||
culture = {
|
||||
OR = {
|
||||
has_cultural_parameter = less_likely_to_culture_convert
|
||||
has_cultural_parameter = expensive_convert_to_local_culture
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
### Have the Realm Embrace Local Traditions ###
|
||||
assimilate_local_traditions_decision = {
|
||||
picture = {
|
||||
reference = "gfx/interface/illustrations/decisions/fp1_decision_raise_runestone.dds"
|
||||
}
|
||||
sort_order = 75
|
||||
|
||||
desc = assimilate_local_traditions_decision_desc
|
||||
selection_tooltip = assimilate_local_traditions_decision_tooltip
|
||||
|
||||
is_shown = {
|
||||
culture = culture:norse
|
||||
is_landed = yes
|
||||
primary_title.tier > tier_barony
|
||||
culture != capital_province.culture
|
||||
NAND = {
|
||||
is_ai = yes
|
||||
OR = {
|
||||
has_character_flag = converted_culture_this_lifetime
|
||||
has_character_flag = converted_culture_this_lifetime_ai
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
is_valid_showing_failures_only = {
|
||||
top_liege = this
|
||||
is_physically_able_adult = yes
|
||||
is_at_war = no
|
||||
custom_description = {
|
||||
text = can_only_change_culture_once
|
||||
NOT = { has_character_flag = converted_culture_this_lifetime }
|
||||
}
|
||||
capital_province = {
|
||||
NOT = {
|
||||
geographical_region = world_europe_north
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cost = {
|
||||
prestige = {
|
||||
value = 300
|
||||
if = {
|
||||
limit = {
|
||||
is_ai = yes
|
||||
capital_province = {
|
||||
geographical_region = world_europe_east
|
||||
}
|
||||
}
|
||||
multiply = 0
|
||||
}
|
||||
# Account for struggle phase.
|
||||
if = {
|
||||
limit = { is_struggle_parameter_active_cheaper_to_convert_to_struggle_culture_trigger = yes }
|
||||
multiply = 0.25
|
||||
}
|
||||
|
||||
# Make sure it's never dumb numbers.
|
||||
min = 25
|
||||
}
|
||||
}
|
||||
|
||||
effect = {
|
||||
norse_assimilate_local_traditions_effect = {
|
||||
CONVERTER = root
|
||||
OLD_CULTURE = root.culture
|
||||
OLD_FAITH = root.faith
|
||||
NEW_CULTURE = capital_province.culture
|
||||
NEW_FAITH = capital_province.faith
|
||||
}
|
||||
}
|
||||
|
||||
ai_check_interval_by_tier = {
|
||||
barony = 0
|
||||
county = 60
|
||||
duchy = 60
|
||||
kingdom = 60
|
||||
empire = 60
|
||||
hegemony = 60
|
||||
}
|
||||
|
||||
ai_potential = {
|
||||
culture = culture:norse
|
||||
is_playable_character = yes
|
||||
culture != capital_province.culture
|
||||
}
|
||||
|
||||
ai_will_do = {
|
||||
base = 100
|
||||
|
||||
# Don't do it too early
|
||||
modifier = {
|
||||
factor = 0
|
||||
NOT = {
|
||||
primary_title.title_held_years > 30
|
||||
}
|
||||
}
|
||||
|
||||
# Don't do it if you're zealous
|
||||
modifier = {
|
||||
factor = 0
|
||||
has_trait = zealous
|
||||
capital_province.faith != root.faith
|
||||
}
|
||||
|
||||
# Historical Exceptions
|
||||
modifier = {
|
||||
add = 100
|
||||
capital_province = {
|
||||
geographical_region = world_europe_east
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3768,7 +3768,7 @@ go_fishing_decision = {
|
|||
is_shown = {
|
||||
#DLC check.
|
||||
has_ep3_dlc_trigger = yes
|
||||
has_government = landless_adventurer_government
|
||||
OR = { has_government = landless_adventurer_government has_government = landless_minority_government }
|
||||
}
|
||||
|
||||
is_valid_showing_failures_only = {
|
||||
|
|
|
|||
3275
common/decisions/dlc_decisions/ep_3/06_ep3_laamp_decisions.txt
Normal file
3275
common/decisions/dlc_decisions/ep_3/06_ep3_laamp_decisions.txt
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -43,7 +43,7 @@ NSetup = {
|
|||
# chance that a courtless character is sent to a court as a guest instead of a regular courtier on game start (0..1)
|
||||
COURTLESS_CHARACTER_GUEST_CHANCE = 0
|
||||
# Random range for number of characters per pool (duchy) generated at the start of the game
|
||||
GENERATED_POOL_CHARACTERS = { 2 6 }
|
||||
GENERATED_POOL_CHARACTERS = { 2 9 }
|
||||
# Templates used for the pool character. The weights correspond to the template names at the same index.
|
||||
# The scope of the template is a random ruler whose capital is in that pool.
|
||||
GENERATED_POOL_CHARACTER_TEMPLATES = {
|
||||
|
|
@ -549,6 +549,7 @@ NGovernment = {
|
|||
"holy_order_government"
|
||||
"administrative_government"
|
||||
"landless_adventurer_government"
|
||||
"landless_minority_government"
|
||||
"nomad_government"
|
||||
"herder_government"
|
||||
"celestial_government"
|
||||
|
|
|
|||
|
|
@ -4469,7 +4469,7 @@ proving_grounds_01 = {
|
|||
}
|
||||
proving_grounds_02 = {
|
||||
construction_time = @camp_building_main_slot_construction_duration_t2
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
internal_slots = 2
|
||||
|
||||
|
|
@ -4518,7 +4518,7 @@ proving_grounds_02 = {
|
|||
}
|
||||
proving_grounds_03 = {
|
||||
construction_time = @camp_building_main_slot_construction_duration_t3
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_02
|
||||
internal_slots = 3
|
||||
|
||||
|
|
@ -4567,7 +4567,7 @@ proving_grounds_03 = {
|
|||
}
|
||||
proving_grounds_04 = {
|
||||
construction_time = @camp_building_main_slot_construction_duration_t4
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_03
|
||||
internal_slots = 4
|
||||
|
||||
|
|
@ -4619,7 +4619,7 @@ proving_grounds_04 = {
|
|||
}
|
||||
proving_grounds_05 = {
|
||||
construction_time = @camp_building_main_slot_construction_duration_t5
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_04
|
||||
internal_slots = 5
|
||||
|
||||
|
|
@ -4670,7 +4670,7 @@ proving_grounds_05 = {
|
|||
}
|
||||
proving_grounds_06 = {
|
||||
construction_time = @camp_building_main_slot_construction_duration_t6
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_05
|
||||
internal_slots = 6
|
||||
|
||||
|
|
@ -4725,7 +4725,7 @@ proving_grounds_06 = {
|
|||
proving_grounds_horse_run = { # Horse Run
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t2
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_horse_run_domicile_building_gold_cost_value }
|
||||
|
|
@ -4790,7 +4790,7 @@ proving_grounds_horse_run = { # Horse Run
|
|||
proving_grounds_camel_run = { # Camel Run
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t2
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_camel_run_domicile_building_gold_cost_value }
|
||||
|
|
@ -4859,7 +4859,7 @@ proving_grounds_camel_run = { # Camel Run
|
|||
proving_grounds_elephantry_reserve = { # Elephantry Reserve
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t3
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_elephantry_reserve_domicile_building_gold_cost_value }
|
||||
|
|
@ -4922,7 +4922,7 @@ proving_grounds_elephantry_reserve = { # Elephantry Reserve
|
|||
proving_grounds_nightly_barding_drills = { # Nightly Barding Drills
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t3
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_nightly_barding_drills_domicile_building_gold_cost_value }
|
||||
|
|
@ -4987,7 +4987,7 @@ proving_grounds_nightly_barding_drills = { # Nightly Barding Drills
|
|||
proving_grounds_life_in_the_saddle = { # Life in the Saddle
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t3
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_life_in_the_saddle_domicile_building_gold_cost_value }
|
||||
|
|
@ -5065,7 +5065,7 @@ proving_grounds_life_in_the_saddle = { # Life in the Saddle
|
|||
proving_grounds_the_stump = { # The Stump
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t3
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_the_stump_domicile_building_gold_cost_value }
|
||||
|
|
@ -5130,7 +5130,7 @@ proving_grounds_the_stump = { # The Stump
|
|||
proving_grounds_personal_bouts = { # Personal Bouts
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t3
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_personal_bouts_domicile_building_gold_cost_value }
|
||||
|
|
@ -5196,7 +5196,7 @@ proving_grounds_personal_bouts = { # Personal Bouts
|
|||
proving_grounds_training_circle = { # Training Circle
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t3
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_training_circle_domicile_building_gold_cost_value }
|
||||
|
|
@ -5262,7 +5262,7 @@ proving_grounds_training_circle = { # Training Circle
|
|||
proving_grounds_mock_battle_drills = { # Mock Battle Drills
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t3
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_mock_battle_drills_domicile_building_gold_cost_value }
|
||||
|
|
@ -5327,7 +5327,7 @@ proving_grounds_mock_battle_drills = { # Mock Battle Drills
|
|||
proving_grounds_lockwagon = { # Lockwagon
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t2
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_lockwagon_domicile_building_gold_cost_value }
|
||||
|
|
@ -5392,7 +5392,7 @@ proving_grounds_lockwagon = { # Lockwagon
|
|||
proving_grounds_martial_study = { # Martial Study
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t3
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_martial_study_domicile_building_gold_cost_value }
|
||||
|
|
@ -5454,7 +5454,7 @@ proving_grounds_martial_study = { # Martial Study
|
|||
proving_grounds_the_stick_game = { # The Stick Game
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t1
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_the_stick_game_domicile_building_gold_cost_value }
|
||||
|
|
@ -5514,7 +5514,7 @@ proving_grounds_the_stick_game = { # The Stick Game
|
|||
proving_grounds_bodyguard_drills = { # Bodyguard Drills
|
||||
slot_type = internal
|
||||
construction_time = @camp_building_internal_slot_construction_duration_t3
|
||||
allowed_domicile_types = { camp }
|
||||
allowed_domicile_types = { camp}
|
||||
previous_building = proving_grounds_01
|
||||
|
||||
cost = { gold = proving_grounds_bodyguard_drills_domicile_building_gold_cost_value }
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
10349
common/domiciles/buildings/NEOW_minority_community_buildings.txt
Normal file
10349
common/domiciles/buildings/NEOW_minority_community_buildings.txt
Normal file
File diff suppressed because it is too large
Load diff
1171
common/domiciles/types/NEOW_domicile_types.txt
Normal file
1171
common/domiciles/types/NEOW_domicile_types.txt
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -27,6 +27,10 @@ belpois_dynasty = {
|
|||
culture = bourguignon
|
||||
}
|
||||
|
||||
kohn_dynasty = {
|
||||
name = dynn_britannia_kohn
|
||||
culture = ashkenazi
|
||||
}
|
||||
giry_dynasty = {
|
||||
name = dynn_giry
|
||||
culture = bourguignon
|
||||
|
|
|
|||
|
|
@ -500,6 +500,12 @@ duchy_landless_adventurer_camp = {
|
|||
governments = { landless_adventurer_government }
|
||||
}
|
||||
|
||||
duchy_landless_minority_community = {
|
||||
type = title
|
||||
tier = duchy
|
||||
priority = 30
|
||||
governments = { landless_minority_government }
|
||||
}
|
||||
### Devaraja ###
|
||||
#devaraja = {
|
||||
# type = character
|
||||
|
|
|
|||
|
|
@ -10262,6 +10262,52 @@ emperor_administrative_female_brit = {
|
|||
# name_lists = { name_list_roman }
|
||||
#}
|
||||
### LANDLESS ADVENTURERS
|
||||
duke_landless_minority_community_male_minority_community = {
|
||||
type = character
|
||||
gender = male
|
||||
special = holder
|
||||
tier = duchy
|
||||
domicile_type = minority_community
|
||||
priority = 25
|
||||
governments = { landless_minority_government }
|
||||
|
||||
flavourization_rules = {
|
||||
spouse_takes_title = no
|
||||
}
|
||||
}
|
||||
|
||||
duke_landless_minority_community_female_minority_community = {
|
||||
type = character
|
||||
gender = female
|
||||
special = holder
|
||||
tier = duchy
|
||||
domicile_type = minority_community
|
||||
priority = 25
|
||||
governments = { landless_minority_government }
|
||||
|
||||
flavourization_rules = {
|
||||
spouse_takes_title = no
|
||||
}
|
||||
}
|
||||
|
||||
spouse_landless_minority_community_male = {
|
||||
type = character
|
||||
gender = male
|
||||
special = domicile
|
||||
domicile_type = minority_community
|
||||
priority = 25
|
||||
governments = { landless_minority_government }
|
||||
}
|
||||
|
||||
spouse_landless_minority_community_holder_female = {
|
||||
type = character
|
||||
gender = female
|
||||
special = domicile
|
||||
domicile_type = minority_community
|
||||
priority = 25
|
||||
governments = { landless_minority_government }
|
||||
}
|
||||
|
||||
duke_landless_adventurer_male_camp = {
|
||||
type = character
|
||||
gender = male
|
||||
|
|
|
|||
|
|
@ -19,3 +19,13 @@ domicile_estate = {
|
|||
top_liege = no
|
||||
}
|
||||
}
|
||||
domicile_minority_community = {
|
||||
type = domicile
|
||||
domicile_type = minority_community
|
||||
priority = 26
|
||||
governments = { landless_minority_government }
|
||||
|
||||
flavourization_rules = {
|
||||
top_liege = no
|
||||
}
|
||||
}
|
||||
3276
common/game_concepts/00_game_concepts.txt
Normal file
3276
common/game_concepts/00_game_concepts.txt
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -11,4 +11,18 @@ airship = {
|
|||
}
|
||||
chemical_weapons = {
|
||||
texture = "gfx/interface/icons/regimenttypes/chemical_weapons.dds"
|
||||
}
|
||||
minority_community_building = {
|
||||
texture = "gfx/interface/icons/government_types/landless_minority_government.dds"
|
||||
alias = { minority_community_buildings minority_community_building }
|
||||
parent = domicile_building
|
||||
}
|
||||
minority_community = {
|
||||
texture = "gfx/interface/icons/government_types/landless_minority_government.dds"
|
||||
alias = { minority_communities minority_community_i }
|
||||
parent = domicile
|
||||
}
|
||||
minority_government = {
|
||||
texture = "gfx/interface/icons/government_types/landless_minority_government.dds"
|
||||
parent = domicile
|
||||
}
|
||||
|
|
@ -6,7 +6,7 @@ feudal_government = {
|
|||
government_rules = {
|
||||
create_cadet_branches = yes
|
||||
rulers_should_have_dynasty = yes
|
||||
dynasty_named_realms = yes
|
||||
dynasty_named_realms = no
|
||||
legitimacy = yes
|
||||
}
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ clan_government = {
|
|||
create_cadet_branches = yes
|
||||
rulers_should_have_dynasty = yes
|
||||
legitimacy = yes
|
||||
dynasty_named_realms = yes
|
||||
dynasty_named_realms = no
|
||||
always_use_patronym = yes
|
||||
}
|
||||
|
||||
|
|
@ -543,6 +543,70 @@ landless_adventurer_government = {
|
|||
realm_mask_scale = { 1 1 }
|
||||
}
|
||||
|
||||
landless_minority_government = {
|
||||
government_rules = {
|
||||
create_cadet_branches = yes
|
||||
court_generate_spouses = yes
|
||||
council = yes
|
||||
always_use_patronym = yes
|
||||
create_cadet_branches = yes
|
||||
rulers_should_have_dynasty = yes
|
||||
landless_playable = yes
|
||||
use_title_tier_modifiers = no
|
||||
mercenary = yes
|
||||
allow_out_of_realm_inheritance = yes
|
||||
use_as_base_on_landed = yes
|
||||
regiments_use_barter_goods_as_gold = yes
|
||||
barter = yes
|
||||
}
|
||||
|
||||
domicile_type = minority_community
|
||||
court_generate_commanders = yes
|
||||
|
||||
can_get_government = {
|
||||
any_held_title = {
|
||||
title_tier = duchy
|
||||
is_landless_type_title = yes
|
||||
}
|
||||
culture = {
|
||||
has_cultural_tradition = tradition_diasporic
|
||||
}
|
||||
}
|
||||
valid_holdings = { tribal_holding church_holding castle_holding city_holding temple_citadel_holding }
|
||||
|
||||
character_modifier = {
|
||||
active_accolades = -100
|
||||
knight_limit = 2
|
||||
character_travel_speed = 20
|
||||
siege_weapon_siege_value_mult = -0.5
|
||||
mercenary_hire_cost_mult = 1
|
||||
short_reign_duration_mult = -5
|
||||
long_reign_bonus_mult = -1
|
||||
domicile_travel_speed = -0.75
|
||||
monthly_wanderer_lifestyle_xp_gain_mult = 0.15
|
||||
}
|
||||
|
||||
ai = {
|
||||
use_goals = yes
|
||||
use_scripted_guis = no
|
||||
perform_religious_reformation = yes
|
||||
use_legends = yes
|
||||
}
|
||||
|
||||
# Use flags instead of has_government for moddability if possible (i.e., wherever not visible to the player).
|
||||
flags = {
|
||||
government_is_barterer
|
||||
landless_can_be_vassalised
|
||||
government_is_landless_minority
|
||||
government_devassalises
|
||||
}
|
||||
|
||||
mechanic_type = landless_adventurer
|
||||
|
||||
color = hsv{ 0.00 0.00 0.90 }
|
||||
realm_mask_offset = { 0.0 0.0 }
|
||||
realm_mask_scale = { 1 1 }
|
||||
}
|
||||
### Brief: nomad_government
|
||||
# Default nomad government, used for the Steppe Region
|
||||
#
|
||||
|
|
|
|||
|
|
@ -15,6 +15,20 @@ d_laamp_zolt = {
|
|||
ai_primary_priority = { add = @never_primary_score }
|
||||
}
|
||||
|
||||
d_laamp_test_jewish = {
|
||||
color = { 100 100 100 }
|
||||
capital = c_london
|
||||
|
||||
definite_form = yes
|
||||
landless = yes
|
||||
ruler_uses_title_name = no
|
||||
always_follows_primary_heir = yes
|
||||
no_automatic_claims = yes
|
||||
noble_family = yes
|
||||
destroy_if_invalid_heir = yes
|
||||
|
||||
ai_primary_priority = { add = @never_primary_score }
|
||||
}
|
||||
d_laamp_bookwyrm = {
|
||||
color = { 100 100 100 }
|
||||
capital = c_guines
|
||||
|
|
|
|||
2066
common/laws/00_succession_laws.txt
Normal file
2066
common/laws/00_succession_laws.txt
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -389,19 +389,24 @@ NEOW_militia = {
|
|||
camel_cavalry = 1
|
||||
}
|
||||
can_recruit = {
|
||||
militia_raise_limit_existing_militia_units < militia_raise_limit_existing_militia_buildings
|
||||
OR = {
|
||||
has_trait = education_martial_1
|
||||
has_trait = education_martial_2
|
||||
has_trait = education_martial_3
|
||||
has_trait = education_martial_4
|
||||
has_trait = education_martial_5
|
||||
has_trait = peasant_leader
|
||||
has_trait = heresiarch
|
||||
has_trait = populist_leader
|
||||
has_lifestyle = martial_lifestyle
|
||||
has_martial_lifestyle_trait_trigger = yes
|
||||
cp:councillor_marshal = { martial = 13 }
|
||||
AND = {
|
||||
militia_raise_limit_existing_militia_units < militia_raise_limit_existing_militia_buildings
|
||||
OR = {
|
||||
has_trait = education_martial_1
|
||||
has_trait = education_martial_2
|
||||
has_trait = education_martial_3
|
||||
has_trait = education_martial_4
|
||||
has_trait = education_martial_5
|
||||
has_trait = peasant_leader
|
||||
has_trait = heresiarch
|
||||
has_trait = populist_leader
|
||||
has_lifestyle = martial_lifestyle
|
||||
has_martial_lifestyle_trait_trigger = yes
|
||||
cp:councillor_marshal = { martial = 13 }
|
||||
}
|
||||
}
|
||||
can_recruit_militia = yes
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -614,10 +619,10 @@ toxic_gas_slingers = {
|
|||
airships = {
|
||||
type = airship
|
||||
|
||||
damage = 300
|
||||
damage = 250
|
||||
toughness = 100
|
||||
pursuit = 0
|
||||
screen = 300
|
||||
screen = 250
|
||||
|
||||
siege_value = 0.5
|
||||
|
||||
|
|
|
|||
3714
common/modifier_definition_formats/00_definitions.txt
Normal file
3714
common/modifier_definition_formats/00_definitions.txt
Normal file
File diff suppressed because it is too large
Load diff
4647
common/on_action/title_on_actions.txt
Normal file
4647
common/on_action/title_on_actions.txt
Normal file
File diff suppressed because it is too large
Load diff
2005
common/on_action/travel_on_actions.txt
Normal file
2005
common/on_action/travel_on_actions.txt
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -755,6 +755,138 @@ yearly_global_pulse = {
|
|||
# Root is the character
|
||||
yearly_playable_pulse = {
|
||||
effect = {
|
||||
if = {
|
||||
limit = {
|
||||
government = landless_minority_government
|
||||
domicile ?= {
|
||||
OR = {
|
||||
has_domicile_building_or_higher = village_rice_field_05
|
||||
has_domicile_building_or_higher = village_grain_fields_05
|
||||
}
|
||||
}
|
||||
}
|
||||
domicile ?= {
|
||||
change_provisions = {
|
||||
value = 600
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
government = landless_minority_government
|
||||
domicile ?= {
|
||||
OR = {
|
||||
has_domicile_building_or_higher = village_rice_field_03
|
||||
has_domicile_building_or_higher = village_grain_fields_03
|
||||
}
|
||||
}
|
||||
}
|
||||
domicile ?= {
|
||||
change_provisions = {
|
||||
value = 400
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
government = landless_minority_government
|
||||
domicile ?= {
|
||||
OR = {
|
||||
has_domicile_building_or_higher = village_rice_field_01
|
||||
has_domicile_building_or_higher = village_grain_fields_01
|
||||
}
|
||||
}
|
||||
}
|
||||
domicile ?= {
|
||||
change_provisions = {
|
||||
value = 200
|
||||
}
|
||||
}
|
||||
}
|
||||
else = {
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
government = landless_minority_government
|
||||
domicile ?= {
|
||||
has_domicile_building_or_higher = village_grazing_land_05
|
||||
}
|
||||
}
|
||||
domicile ?= {
|
||||
change_provisions = {
|
||||
value = 600
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
government = landless_minority_government
|
||||
domicile ?= {
|
||||
has_domicile_building_or_higher = village_grazing_land_03
|
||||
}
|
||||
}
|
||||
domicile ?= {
|
||||
change_provisions = {
|
||||
value = 400
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
government = landless_minority_government
|
||||
domicile ?= {
|
||||
has_domicile_building_or_higher = village_grazing_land_01
|
||||
}
|
||||
}
|
||||
domicile ?= {
|
||||
change_provisions = {
|
||||
value = 200
|
||||
}
|
||||
}
|
||||
}
|
||||
else = {
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
government = landless_minority_government
|
||||
domicile ?= {
|
||||
has_domicile_building_or_higher = communal_gardens_fruit_05
|
||||
}
|
||||
}
|
||||
domicile ?= {
|
||||
change_provisions = {
|
||||
value = 600
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
government = landless_minority_government
|
||||
domicile ?= {
|
||||
has_domicile_building_or_higher = communal_gardens_03
|
||||
}
|
||||
}
|
||||
domicile ?= {
|
||||
change_provisions = {
|
||||
value = 400
|
||||
}
|
||||
}
|
||||
}
|
||||
else_if = {
|
||||
limit = {
|
||||
government = landless_minority_government
|
||||
domicile ?= {
|
||||
has_domicile_building_or_higher = communal_gardens_01
|
||||
}
|
||||
}
|
||||
domicile ?= {
|
||||
change_provisions = {
|
||||
value = 200
|
||||
}
|
||||
}
|
||||
}
|
||||
else = {
|
||||
}
|
||||
ai_budget_manipulation_effect = yes
|
||||
|
||||
#Mandala
|
||||
|
|
|
|||
2978
common/scripted_effects/00_building_effects.txt
Normal file
2978
common/scripted_effects/00_building_effects.txt
Normal file
File diff suppressed because it is too large
Load diff
13616
common/scripted_effects/07_dlc_ep3_scripted_effects.txt
Normal file
13616
common/scripted_effects/07_dlc_ep3_scripted_effects.txt
Normal file
File diff suppressed because it is too large
Load diff
934
common/scripted_triggers/00_available_for_events_triggers.txt
Normal file
934
common/scripted_triggers/00_available_for_events_triggers.txt
Normal file
|
|
@ -0,0 +1,934 @@
|
|||
###TRIGGER LIST
|
||||
#has_contagious_deadly_disease_trigger
|
||||
#is_healthy
|
||||
#is_available
|
||||
#is_available_ai
|
||||
#is_available_adult
|
||||
#is_available_healthy_adult
|
||||
#is_available_ai_adult
|
||||
#is_available_healthy_ai_adult
|
||||
#is_capable_adult
|
||||
#is_capable_adult_ai
|
||||
#liege_is_boss_trigger
|
||||
#can_select_lifestyle_focus
|
||||
#can_marry
|
||||
#can_become_concubine
|
||||
|
||||
has_contagious_deadly_disease_trigger = {
|
||||
has_trait_with_flag = contagious_deadly_disease
|
||||
}
|
||||
|
||||
is_healthy = {
|
||||
custom_tooltip = {
|
||||
text = not_poor_health_tt
|
||||
health >= fine_health
|
||||
}
|
||||
NOT = {
|
||||
has_trait_with_flag = is_healthy_trigger_flag
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
}
|
||||
|
||||
basic_is_available_ai = {
|
||||
is_available_quick = {
|
||||
ai = yes
|
||||
alive = yes
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
}
|
||||
|
||||
is_available_allow_travelling = {
|
||||
is_available_quick = {
|
||||
alive = yes
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
in_army = no
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
# Variable set on Mandala succession
|
||||
custom_tooltip = {
|
||||
text = busy_in_mandala_succession
|
||||
NOT = { has_variable = busy_in_mandala_succession }
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available = {
|
||||
is_available_quick = {
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
# Variable set on Mandala succession
|
||||
custom_tooltip = {
|
||||
text = busy_in_mandala_succession
|
||||
NOT = { has_variable = busy_in_mandala_succession }
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_travelling = {
|
||||
is_available_quick = {
|
||||
alive = yes
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
travel = yes
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
NOR = {
|
||||
has_character_flag = is_in_task_contract_event_chain
|
||||
has_variable = gone_adventuring
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_travelling_adult = {
|
||||
is_available_quick = {
|
||||
travel = yes
|
||||
adult = yes
|
||||
alive = yes
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
NOR = {
|
||||
has_character_flag = is_in_task_contract_event_chain
|
||||
has_variable = gone_adventuring
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_travelling_ai_adult = {
|
||||
is_available_quick = {
|
||||
travel = yes
|
||||
adult = yes
|
||||
ai = yes
|
||||
alive = yes
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
NOR = {
|
||||
has_character_flag = is_in_task_contract_event_chain
|
||||
has_variable = gone_adventuring
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_physically_able = {
|
||||
is_available_quick = {
|
||||
alive = yes
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_physically_able_ai = {
|
||||
is_available_quick = {
|
||||
ai = yes
|
||||
alive = yes
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_physically_able_adult = {
|
||||
is_available_quick = {
|
||||
adult = yes
|
||||
alive = yes
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_physically_able_ai_adult = {
|
||||
is_available_quick = {
|
||||
ai = yes
|
||||
adult = yes
|
||||
alive = yes
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_ai = {
|
||||
is_available_quick = {
|
||||
ai = yes
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_child = {
|
||||
is_available_quick = {
|
||||
adult = no
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_child_allow_travel = {
|
||||
is_available_quick = {
|
||||
adult = no
|
||||
alive = yes
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_ai_child = {
|
||||
is_available_quick = {
|
||||
adult = no
|
||||
ai = yes
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_healthy_child = {
|
||||
is_available_quick = {
|
||||
adult = no
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
is_healthy = yes
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_healthy_ai_child = {
|
||||
is_available_quick = {
|
||||
ai = yes
|
||||
adult = no
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
is_healthy = yes
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_adult = {
|
||||
is_available_quick = {
|
||||
adult = yes
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_ai_adult = {
|
||||
is_available_quick = {
|
||||
ai = yes
|
||||
adult = yes
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_healthy_adult = {
|
||||
is_available_quick = {
|
||||
adult = yes
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
is_healthy = yes
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_healthy_ai_adult = {
|
||||
is_available_quick = {
|
||||
ai = yes
|
||||
adult = yes
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
is_healthy = yes
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
is_available_adult_or_is_commanding = {
|
||||
OR = {
|
||||
is_commanding_army = yes
|
||||
is_available_adult = yes
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_at_peace = {
|
||||
is_available_quick = {
|
||||
at_war = no
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_at_peace_adult = {
|
||||
is_available_quick = {
|
||||
at_war = no
|
||||
adult = yes
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_at_peace_ai_adult = {
|
||||
is_available_quick = {
|
||||
ai = yes
|
||||
adult = yes
|
||||
alive = yes
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
travel = no
|
||||
in_army = no
|
||||
at_war = no
|
||||
}
|
||||
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_available_at_peace_adult_lenient = {
|
||||
is_available_quick = {
|
||||
adult = yes
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
at_war = no
|
||||
}
|
||||
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
# Meaning you may be at war, but you're still located in your capital.
|
||||
is_available_even_at_war_adult = {
|
||||
is_available_quick = {
|
||||
adult = yes
|
||||
alive = yes
|
||||
travel = no
|
||||
in_army = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
|
||||
has_contagious_deadly_disease_trigger = no
|
||||
custom_description = {
|
||||
text = ALREADY_IN_ACTIVITY
|
||||
NOR = {
|
||||
exists = involved_activity
|
||||
has_variable = {
|
||||
name = homage_liege_scope
|
||||
name = meditation_character_flag
|
||||
name = local_shrine_rite
|
||||
name = petition_liege_character_flag
|
||||
name = holding_court_character_flag
|
||||
}
|
||||
is_being_visited_on_tour_strict = yes
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = ALREADY_PLANNING_ACTIVITY
|
||||
NOT = { has_character_flag = planning_an_activity }
|
||||
}
|
||||
# Variable set within the adventure inspiration events
|
||||
NOT = { has_variable = gone_adventuring }
|
||||
}
|
||||
|
||||
is_capable_adult = {
|
||||
is_available_quick = {
|
||||
adult = yes
|
||||
incapable = no
|
||||
}
|
||||
}
|
||||
|
||||
is_capable_adult_ai = {
|
||||
is_available_quick = {
|
||||
ai = yes
|
||||
adult = yes
|
||||
incapable = no
|
||||
}
|
||||
}
|
||||
|
||||
can_select_lifestyle_focus = {
|
||||
is_capable_adult = yes
|
||||
is_playable_character = yes
|
||||
}
|
||||
|
||||
is_not_hostile_towards_root = {
|
||||
NOR = {
|
||||
is_a_faction_member = yes
|
||||
any_scheme = {
|
||||
hostile_scheme_trigger = yes
|
||||
scheme_target_character = root
|
||||
}
|
||||
is_at_war_with = root
|
||||
}
|
||||
}
|
||||
|
||||
player_target_available_for_personal_scheme_ongoing_events_trigger = {
|
||||
$TARGET$ = {
|
||||
trigger_if = {
|
||||
limit = {
|
||||
is_ai = no
|
||||
$OWNER$ = { is_ruler = no }
|
||||
}
|
||||
is_at_war = no
|
||||
}
|
||||
trigger_else = {
|
||||
always = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
basic_is_valid_for_yearly_events_trigger = {
|
||||
is_playable_character = yes
|
||||
is_available_quick = {
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
OR = {
|
||||
is_travelling = no
|
||||
has_government = landless_adventurer_government
|
||||
}
|
||||
NOR = {
|
||||
has_character_flag = is_in_task_contract_event_chain
|
||||
exists = involved_activity
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_valid_for_narrow_yearly_events = {
|
||||
is_available_quick = {
|
||||
at_war = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
is_commanding_army = no
|
||||
is_playable_character = yes
|
||||
OR = {
|
||||
is_travelling = no
|
||||
has_government = landless_adventurer_government
|
||||
}
|
||||
NOR = {
|
||||
has_character_flag = is_in_task_contract_event_chain
|
||||
exists = involved_activity
|
||||
}
|
||||
}
|
||||
|
||||
# If you update one of the available triggers, update all of them. It's a lot better for performance to not have scripted triggers within scripted triggers when they're checked as often as these ones are.
|
||||
is_valid_for_narrow_yearly_events_adult = {
|
||||
is_available_quick = {
|
||||
adult = yes
|
||||
at_war = no
|
||||
imprisoned = no
|
||||
incapable = no
|
||||
}
|
||||
is_commanding_army = no
|
||||
is_playable_character = yes
|
||||
OR = {
|
||||
is_travelling = no
|
||||
has_government = landless_adventurer_government
|
||||
}
|
||||
NOR = {
|
||||
has_character_flag = is_in_task_contract_event_chain
|
||||
exists = involved_activity
|
||||
}
|
||||
}
|
||||
|
||||
is_within_diplo_range = {
|
||||
capital_province ?= {
|
||||
save_temporary_scope_as = my_capital
|
||||
$CHARACTER$.capital_province ?= {
|
||||
squared_distance = {
|
||||
target = scope:my_capital
|
||||
value < 200000
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# This trigger checks if a character is a Nomad
|
||||
is_nomad = {
|
||||
government_has_flag = government_is_nomadic
|
||||
is_ruler = yes
|
||||
}
|
||||
|
||||
# This trigger checks if a character is a landed Nomad
|
||||
is_landed_nomad = {
|
||||
government_has_flag = government_is_nomadic
|
||||
is_available_quick = {
|
||||
ruler = yes
|
||||
landed = yes
|
||||
}
|
||||
}
|
||||
|
||||
# Checks if a character is a landless nomad with a domicile
|
||||
is_landless_nomad = {
|
||||
government_has_flag = government_is_nomadic
|
||||
is_landed = no
|
||||
has_domicile = yes
|
||||
}
|
||||
|
||||
# This trigger checks if a character is a landless adventurer
|
||||
is_landless_adventurer = {
|
||||
OR = {
|
||||
government_has_flag = government_is_landless_adventurer
|
||||
government_has_flag = government_is_landless_minority
|
||||
}
|
||||
}
|
||||
|
||||
# This trigger checks if a character is a governor in an admin realm (implying they are landed)
|
||||
is_governor = {
|
||||
government_allows = administrative
|
||||
is_landed = yes
|
||||
top_liege != this
|
||||
OR = {
|
||||
highest_held_title_tier >= main_administrative_tier
|
||||
highest_held_title_tier >= min_title_maa_tier
|
||||
}
|
||||
tgp_is_ceremonial_liege_trigger = no
|
||||
}
|
||||
is_governor_or_admin_count = {
|
||||
government_allows = administrative
|
||||
is_landed = yes
|
||||
top_liege != this
|
||||
highest_held_title_tier >= tier_county
|
||||
tgp_is_ceremonial_liege_trigger = no
|
||||
}
|
||||
|
||||
# Checks if a character is a landless house_head within an admin realm
|
||||
is_landless_administrative = {
|
||||
government_allows = administrative
|
||||
is_landed = no
|
||||
is_house_head = yes
|
||||
has_domicile = yes
|
||||
}
|
||||
|
||||
# Checks if a character is a landless house_head within a feudal realm
|
||||
is_landless_soryo = {
|
||||
government_has_flag = government_is_japan_feudal
|
||||
is_landed = no
|
||||
is_house_head = yes
|
||||
has_domicile = yes
|
||||
}
|
||||
|
||||
# Checks if a character is either landed or an unlanded house head within an admin realm
|
||||
is_landed_or_landless_administrative = {
|
||||
OR = {
|
||||
is_landed = yes
|
||||
is_landless_administrative = yes
|
||||
}
|
||||
}
|
||||
|
||||
# Checks if a character is either landed, a landless house head within an admin realm, a landless nomad, a landless adventurer, a landless soryo, or a minister
|
||||
is_playable_character = {
|
||||
OR = {
|
||||
is_landed = yes
|
||||
is_landless_administrative = yes
|
||||
is_landless_adventurer = yes
|
||||
is_landless_nomad = yes
|
||||
is_landless_soryo = yes
|
||||
tgp_is_any_minister = yes # To keep ministers playable, regardless of having a nobel family title or not
|
||||
}
|
||||
}
|
||||
|
||||
roman_restoration_is_valid_roman_empire_trigger = {
|
||||
is_ai = no
|
||||
is_roman_emperor_trigger = yes
|
||||
OR = {
|
||||
religion = religion:christianity_religion #Either Christian
|
||||
religion = religion:hellenism_religion #Or Hellenic
|
||||
}
|
||||
NOT = { has_ep3_dlc_trigger = yes }
|
||||
}
|
||||
|
||||
is_eunuch_trigger = {
|
||||
OR = {
|
||||
has_trait = eunuch_1
|
||||
has_trait = beardless_eunuch
|
||||
}
|
||||
}
|
||||
|
|
@ -267,17 +267,8 @@ building_paddy_fields_requirement_terrain = {
|
|||
text = building_paddy_fields_requirement_terrain_tt
|
||||
OR = {
|
||||
terrain = terraced_hills
|
||||
AND = {
|
||||
terrain = floodplains
|
||||
OR = {
|
||||
geographical_region = graphical_east_asia
|
||||
geographical_region = custom_viet_lands
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
terrain = wetlands
|
||||
county.culture = { has_cultural_parameter = champa_rice_wet_land_paddies }
|
||||
}
|
||||
terrain = floodplains
|
||||
terrain = wetlands
|
||||
AND = {
|
||||
OR = {
|
||||
terrain = hills
|
||||
|
|
@ -289,6 +280,20 @@ building_paddy_fields_requirement_terrain = {
|
|||
}
|
||||
}
|
||||
|
||||
building_potato_fields_requirement_terrain = {
|
||||
custom_tooltip = {
|
||||
text = building_potato_fields_requirement_terrain_tt
|
||||
OR = {
|
||||
terrain = farmlands
|
||||
terrain = hills
|
||||
terrain = tells
|
||||
terrain = plains
|
||||
terrain = steppe
|
||||
terrain = mountains
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
building_cereal_fields_requirement_terrain = {
|
||||
OR = {
|
||||
terrain = farmlands
|
||||
|
|
|
|||
|
|
@ -126,6 +126,20 @@ portrait_wear_armor_trigger = {
|
|||
limit = { portrait_sickness_trigger = yes }
|
||||
is_in_army = yes
|
||||
}
|
||||
trigger_if = {
|
||||
limit = { government_allows = barter }
|
||||
OR = {
|
||||
is_at_war = yes
|
||||
involved_activity = { has_activity_type = activity_tournament }
|
||||
# Serving Varangian
|
||||
has_character_flag = is_currently_varangian
|
||||
# In a Duel
|
||||
has_character_flag = single_combat_duel_armor
|
||||
has_character_flag = forced_knight_armor
|
||||
# In a Tournament
|
||||
activity_tournament_armor_trigger = yes
|
||||
}
|
||||
}
|
||||
OR = {
|
||||
# Mercenaries, Holy Orders, Adventurers
|
||||
AND = {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ maa_regiments_valid_for_cheap_reinforcement_trigger = {
|
|||
}
|
||||
|
||||
maa_regiments_cost_more_to_reinforce_per_soldier_trigger = {
|
||||
regiment_owner = { government_has_flag = government_is_landless_adventurer }
|
||||
regiment_owner = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
|
||||
OR = {
|
||||
is_unit_type = elephant_cavalry
|
||||
is_unit_type = siege_weapon
|
||||
|
|
@ -26,7 +26,7 @@ maa_regiments_valid_to_refill_trigger = {
|
|||
maa_current_troops_count < maa_max_troops_count
|
||||
trigger_if = {
|
||||
limit = {
|
||||
scope:actor = { government_has_flag = government_is_landless_adventurer }
|
||||
scope:actor = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
|
||||
is_unit_type = elephant_cavalry
|
||||
}
|
||||
scope:actor.domicile ?= { has_domicile_parameter = camp_reinforce_elephant_regiments_anywhere }
|
||||
|
|
@ -193,11 +193,6 @@ is_valid_for_laampdom = {
|
|||
ai_boldness >= low_negative_ai_value
|
||||
ai_energy >= low_negative_ai_value
|
||||
}
|
||||
NOR = {
|
||||
has_trait = content # Too chill to adventure
|
||||
has_trait = craven # Too scared to adventure
|
||||
has_trait = lazy # Too lazy to adventure
|
||||
}
|
||||
# Block admin members of noble families
|
||||
NOT = {
|
||||
house ?= {
|
||||
|
|
@ -405,7 +400,7 @@ valid_laamp_basic_trigger = {
|
|||
$EMPLOYER$ = {
|
||||
OR = {
|
||||
employer = $LAAMP$
|
||||
NOT = { government_has_flag = government_is_landless_adventurer }
|
||||
NOT = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
|
||||
}
|
||||
}
|
||||
# Don't offer to work with those who've wronged us.
|
||||
|
|
@ -435,7 +430,7 @@ valid_laamp_basic_trigger = {
|
|||
}
|
||||
}
|
||||
}
|
||||
$LAAMP$ = { government_has_flag = government_is_landless_adventurer }
|
||||
$LAAMP$ = { OR = { government_has_flag = government_is_landless_adventurer government_has_flag = government_is_landless_minority } }
|
||||
$LAAMP$ = {
|
||||
trigger_if = {
|
||||
limit = { is_at_war = no }
|
||||
|
|
|
|||
511
common/scripted_triggers/00_law_triggers.txt
Normal file
511
common/scripted_triggers/00_law_triggers.txt
Normal file
|
|
@ -0,0 +1,511 @@
|
|||
|
||||
character_gender_can_rule_title_trigger = {
|
||||
trigger_if = {
|
||||
limit = {
|
||||
$GENDER$ = { is_male = yes }
|
||||
exists = $TITLE$
|
||||
$TITLE$ = {
|
||||
NOT = {
|
||||
has_title_law = female_only_law
|
||||
}
|
||||
}
|
||||
}
|
||||
always = yes
|
||||
}
|
||||
trigger_else_if = {
|
||||
limit = {
|
||||
$GENDER$ = { is_female = yes }
|
||||
exists = $TITLE$
|
||||
$TITLE$ = {
|
||||
NOT = {
|
||||
has_title_law = male_only_law
|
||||
}
|
||||
}
|
||||
}
|
||||
always = yes
|
||||
}
|
||||
trigger_else = {
|
||||
always = no
|
||||
}
|
||||
}
|
||||
|
||||
character_gender_can_inherit_from_trigger = {
|
||||
save_temporary_scope_as = heir
|
||||
|
||||
trigger_if = {
|
||||
limit = {
|
||||
$CHARACTER$ = { exists = primary_title }
|
||||
}
|
||||
$CHARACTER$ = {
|
||||
character_gender_can_rule_title_trigger = {
|
||||
GENDER = scope:heir
|
||||
TITLE = primary_title
|
||||
}
|
||||
}
|
||||
}
|
||||
trigger_else = {
|
||||
always = no
|
||||
}
|
||||
}
|
||||
|
||||
has_partition_succession_realm_law_trigger = {
|
||||
OR = {
|
||||
has_realm_law = confederate_partition_succession_law
|
||||
has_realm_law = partition_succession_law
|
||||
has_realm_law = high_partition_succession_law
|
||||
has_realm_law = clan_antagonistic_partition_succession_law
|
||||
has_realm_law = clan_competitive_partition_succession_law
|
||||
has_realm_law = clan_impassive_partition_succession_law
|
||||
has_realm_law = clan_friendly_partition_succession_law
|
||||
has_realm_law = clan_harmonious_partition_succession_law
|
||||
}
|
||||
}
|
||||
|
||||
realm_law_use_crown_authority = {
|
||||
government_has_flag = government_uses_crown_authority
|
||||
}
|
||||
|
||||
realm_law_use_tribal_authority = {
|
||||
government_has_flag = government_is_tribal
|
||||
}
|
||||
|
||||
realm_law_use_camp_purpose = {
|
||||
government_has_flag = government_is_landless_adventurer
|
||||
}
|
||||
|
||||
realm_law_use_imperial_bureaucracy = {
|
||||
government_allows = administrative
|
||||
NOR = {
|
||||
government_has_flag = government_is_celestial
|
||||
government_has_flag = government_is_meritocratic
|
||||
government_has_flag = government_is_steppe_admin
|
||||
government_has_flag = government_is_japan_administrative
|
||||
}
|
||||
}
|
||||
|
||||
realm_law_use_nomadic_authority = {
|
||||
government_has_flag = government_is_nomadic
|
||||
}
|
||||
|
||||
realm_law_use_celestial_bureaucracy = {
|
||||
government_has_flag = government_is_celestial
|
||||
}
|
||||
|
||||
realm_law_is_mandala = {
|
||||
government_has_flag = government_is_mandala
|
||||
}
|
||||
|
||||
realm_law_use_meritocratic_bureaucracy = {
|
||||
OR = {
|
||||
government_has_flag = government_is_meritocratic
|
||||
government_has_flag = government_is_steppe_admin
|
||||
}
|
||||
}
|
||||
|
||||
realm_uses_treasury_laws_trigger = {
|
||||
government_allows = treasury
|
||||
}
|
||||
|
||||
realm_law_use_japanese_bureaucracy = {
|
||||
government_is_japanese_trigger = yes
|
||||
}
|
||||
|
||||
can_have_confederate_partition_succession_law_trigger = {
|
||||
OR = {
|
||||
government_has_flag = government_is_feudal
|
||||
government_has_flag = government_is_tribal
|
||||
government_has_flag = government_is_minority
|
||||
# TGP
|
||||
AND = {
|
||||
government_has_flag = government_is_japan_feudal
|
||||
tgp_realm_has_ceremonial_liege_trigger = yes
|
||||
is_independent_ruler = no
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_keep_partition_succession_law_trigger = {
|
||||
# The 'can_keep' triggers are dependent on actually having the law. If they aren't, the trigger breakdown for the player breaks and shows incomplete information.
|
||||
trigger_if = {
|
||||
limit = {
|
||||
has_realm_law = partition_succession_law
|
||||
}
|
||||
OR = {
|
||||
can_have_partition_succession_law_trigger = yes
|
||||
|
||||
# Mongol Empires
|
||||
has_title = title:e_mongol_empire
|
||||
has_title = title:e_ilkhanate
|
||||
has_title = title:e_golden_horde
|
||||
has_title = title:e_chagatai
|
||||
has_title = title:e_red_horde
|
||||
has_title = title:e_white_horde
|
||||
has_title = title:e_aarlud_khanate
|
||||
has_title = title:e_togskol_khanate
|
||||
has_title = title:e_baruun_khanate
|
||||
has_title = title:e_great_yuan
|
||||
has_title = title:e_blue_horde
|
||||
has_title = title:e_omnod_dalai_khanate
|
||||
}
|
||||
}
|
||||
NOT = { government_has_flag = government_is_clan }
|
||||
}
|
||||
|
||||
can_have_partition_succession_law_trigger = {
|
||||
culture = {
|
||||
has_innovation = innovation_hereditary_rule
|
||||
}
|
||||
custom_description = {
|
||||
text = succession_laws_must_have_organised_government_tooltip
|
||||
OR = {
|
||||
government_has_flag = government_is_feudal
|
||||
government_has_flag = government_is_clan
|
||||
government_has_flag = government_is_japan_feudal
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_keep_high_partition_succession_law_trigger = {
|
||||
# The 'can_keep' triggers are dependent on actually having the law. If they aren't, the trigger breakdown for the player breaks and shows incomplete information.
|
||||
trigger_if = {
|
||||
limit = {
|
||||
has_realm_law = high_partition_succession_law
|
||||
}
|
||||
OR = {
|
||||
can_have_high_partition_succession_law_trigger = yes
|
||||
|
||||
# Mongol Empires
|
||||
has_title = title:e_mongol_empire
|
||||
has_title = title:e_ilkhanate
|
||||
has_title = title:e_golden_horde
|
||||
has_title = title:e_chagatai
|
||||
has_title = title:e_red_horde
|
||||
has_title = title:e_white_horde
|
||||
has_title = title:e_aarlud_khanate
|
||||
has_title = title:e_togskol_khanate
|
||||
has_title = title:e_baruun_khanate
|
||||
has_title = title:e_great_yuan
|
||||
has_title = title:e_blue_horde
|
||||
has_title = title:e_omnod_dalai_khanate
|
||||
}
|
||||
}
|
||||
NOT = { government_has_flag = government_is_clan}
|
||||
}
|
||||
|
||||
can_have_high_partition_succession_law_trigger = {
|
||||
trigger_if = {
|
||||
limit = {
|
||||
NOT = {
|
||||
culture = { has_cultural_parameter = can_enact_high_partition_succession_law }
|
||||
}
|
||||
}
|
||||
culture = { has_innovation = innovation_heraldry }
|
||||
}
|
||||
custom_description = {
|
||||
text = succession_laws_must_have_organised_government_tooltip
|
||||
OR = {
|
||||
government_has_flag = government_is_feudal
|
||||
government_has_flag = government_is_clan
|
||||
government_has_flag = government_is_japan_feudal
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_keep_single_heir_succession_law_trigger = {
|
||||
# The 'can_keep' triggers are dependent on actually having the law. If they aren't, the trigger breakdown for the player breaks and shows incomplete information.
|
||||
trigger_if = {
|
||||
limit = {
|
||||
has_realm_law = single_heir_succession_law
|
||||
}
|
||||
OR = {
|
||||
can_have_single_heir_succession_law_trigger = yes
|
||||
# Byzantine Empire / Ceremonial Liege
|
||||
historical_succession_access_single_heir_succession_law_trigger = yes
|
||||
has_variable = purge_oath_previous_law # ACH Purge Pretenders Oath
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_have_single_heir_succession_law_trigger = {
|
||||
trigger_if = { # Celestial/Meritocratic/Soryo
|
||||
limit = {
|
||||
OR = {
|
||||
government_allows = merit
|
||||
government_has_flag = government_is_japan_feudal
|
||||
}
|
||||
}
|
||||
custom_tooltip = { # You are independent, have the innovation or are Ceremonial Monarch
|
||||
text = can_have_single_heir_succession_law_trigger_merit_or_japan_tt
|
||||
OR = {
|
||||
is_independent_ruler = yes
|
||||
culture = {
|
||||
has_innovation = innovation_primogeniture
|
||||
}
|
||||
tgp_has_ceremonial_liege_title_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
trigger_else_if = {
|
||||
limit = { tgp_realm_has_ceremonial_liege_trigger = yes }
|
||||
tgp_has_ceremonial_liege_title_trigger = yes
|
||||
}
|
||||
trigger_else = {
|
||||
culture = {
|
||||
has_innovation = innovation_primogeniture
|
||||
}
|
||||
}
|
||||
# Non-tribals only
|
||||
trigger_if = { # We split the tooltip into two, to make sure we don't show admin unless you actually have it
|
||||
limit = {
|
||||
has_ep3_dlc_trigger = yes
|
||||
}
|
||||
custom_tooltip = {
|
||||
text = must_be_feudal_clan_or_admin
|
||||
OR = {
|
||||
government_has_flag = government_is_feudal
|
||||
government_has_flag = government_is_clan
|
||||
government_allows = administrative
|
||||
government_has_flag = government_is_japan_feudal
|
||||
tgp_has_ceremonial_liege_title_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
trigger_else = {
|
||||
custom_description = {
|
||||
text = succession_laws_must_have_organised_government_tooltip
|
||||
OR = {
|
||||
government_has_flag = government_is_feudal
|
||||
government_has_flag = government_is_clan
|
||||
government_allows = merit
|
||||
government_has_flag = government_is_japan_feudal
|
||||
tgp_has_ceremonial_liege_title_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
# Admin rules
|
||||
trigger_if = {
|
||||
limit = { government_allows = administrative }
|
||||
trigger_if = {
|
||||
limit = { tgp_realm_has_ceremonial_liege_trigger = yes }
|
||||
tgp_has_ceremonial_liege_title_trigger = yes
|
||||
}
|
||||
trigger_else = { is_independent_ruler = yes }
|
||||
}
|
||||
}
|
||||
|
||||
can_keep_single_heir_youngest_succession_law_trigger = {
|
||||
# The 'can_keep' triggers are dependent on actually having the law. If they aren't, the trigger breakdown for the player breaks and shows incomplete information.
|
||||
trigger_if = {
|
||||
limit = {
|
||||
has_realm_law = single_heir_succession_law_youngest
|
||||
}
|
||||
OR = {
|
||||
can_have_single_heir_youngest_succession_law_trigger = yes
|
||||
historical_succession_access_single_heir_succession_law_youngest_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_have_single_heir_youngest_succession_law_trigger = {
|
||||
culture = {
|
||||
has_innovation = innovation_primogeniture
|
||||
}
|
||||
# Non-tribals only
|
||||
trigger_if = { # We split the tooltip into two, to make sure we don't show admin unless you actually have it
|
||||
limit = {
|
||||
has_ep3_dlc_trigger = yes
|
||||
}
|
||||
custom_tooltip = {
|
||||
text = must_be_feudal_clan_or_admin
|
||||
OR = {
|
||||
government_has_flag = government_is_feudal
|
||||
government_has_flag = government_is_clan
|
||||
government_allows = administrative
|
||||
government_has_flag = government_is_japan_feudal
|
||||
}
|
||||
}
|
||||
}
|
||||
trigger_else = {
|
||||
custom_description = {
|
||||
text = succession_laws_must_have_organised_government_tooltip
|
||||
OR = {
|
||||
government_has_flag = government_is_feudal
|
||||
government_has_flag = government_is_clan
|
||||
government_has_flag = government_is_japan_feudal
|
||||
}
|
||||
}
|
||||
}
|
||||
trigger_if = {
|
||||
limit = {
|
||||
government_allows = administrative
|
||||
}
|
||||
is_independent_ruler = yes
|
||||
}
|
||||
}
|
||||
|
||||
can_keep_single_heir_dynasty_house_trigger = {
|
||||
# The 'can_keep' triggers are dependent on actually having the law. If they aren't, the trigger breakdown for the player breaks and shows incomplete information.
|
||||
trigger_if = {
|
||||
limit = {
|
||||
has_realm_law = single_heir_dynasty_house
|
||||
}
|
||||
OR = {
|
||||
can_have_single_heir_dynasty_house_trigger = yes
|
||||
historical_succession_access_single_heir_dynasty_house_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_have_single_heir_dynasty_house_trigger = {
|
||||
exists = house
|
||||
trigger_if = {
|
||||
limit = {
|
||||
culture = {
|
||||
OR = {
|
||||
this = culture:czech
|
||||
this = culture:slovien
|
||||
any_parent_culture_or_above = {
|
||||
this = culture:czech
|
||||
}
|
||||
any_parent_culture_or_above = {
|
||||
this = culture:slovien
|
||||
}
|
||||
NOT = { has_innovation = innovation_heraldry }
|
||||
}
|
||||
}
|
||||
}
|
||||
culture = {
|
||||
has_innovation = innovation_table_of_princes
|
||||
}
|
||||
}
|
||||
trigger_else = {
|
||||
culture = {
|
||||
has_innovation = innovation_heraldry
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = succession_laws_must_have_organised_government_tooltip
|
||||
OR = {
|
||||
government_has_flag = government_is_feudal
|
||||
government_has_flag = government_is_clan
|
||||
government_has_flag = government_is_japan_feudal
|
||||
}
|
||||
}
|
||||
NOT = { government_allows = administrative }
|
||||
}
|
||||
|
||||
can_have_bishop_theocratic_succession_law_trigger = {
|
||||
OR = {
|
||||
is_theocratic_lessee = yes
|
||||
government_has_flag = government_is_theocracy
|
||||
}
|
||||
}
|
||||
|
||||
is_temporal_head_of_faith_trigger = {
|
||||
is_head_of_faith = yes
|
||||
holder.faith = { has_doctrine = doctrine_temporal_head }
|
||||
}
|
||||
|
||||
can_title_have_law_general_trigger = {
|
||||
tier >= tier_duchy
|
||||
is_temporal_head_of_faith_trigger = no
|
||||
}
|
||||
|
||||
can_have_holy_order_succession_law_trigger = {
|
||||
government_has_flag = government_is_holy_order
|
||||
}
|
||||
|
||||
can_have_mercenary_succession_law_trigger = {
|
||||
government_has_flag = government_is_mercenary
|
||||
}
|
||||
|
||||
can_have_city_succession_law_trigger = {
|
||||
government_has_flag = government_is_republic
|
||||
}
|
||||
|
||||
can_have_herder_succession_law_trigger = {
|
||||
government_has_flag = government_is_herder
|
||||
}
|
||||
|
||||
title_can_reduce_partition_law_trigger = {
|
||||
holder ?= {
|
||||
OR = {
|
||||
has_realm_law = single_heir_succession_law
|
||||
can_have_high_partition_succession_law_trigger = yes
|
||||
}
|
||||
OR = {
|
||||
has_realm_law = high_partition_succession_law
|
||||
can_have_high_partition_succession_law_trigger = yes
|
||||
}
|
||||
OR = {
|
||||
has_realm_law = partition_succession_law
|
||||
can_have_confederate_partition_succession_law_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_pass_law_ca1_trigger = {
|
||||
culture = { has_innovation = innovation_plenary_assemblies }
|
||||
}
|
||||
|
||||
can_pass_law_ca2_trigger = {
|
||||
culture = { has_innovation = innovation_royal_prerogative }
|
||||
}
|
||||
|
||||
can_pass_law_ca3_trigger = {
|
||||
culture = { has_innovation = innovation_royal_prerogative }
|
||||
}
|
||||
|
||||
can_have_acclamation_succession_law_trigger = {
|
||||
has_ep3_dlc_trigger = yes
|
||||
top_liege = this
|
||||
government_allows = administrative
|
||||
NOR = {
|
||||
government_has_flag = government_is_celestial
|
||||
government_has_flag = government_is_japan_administrative
|
||||
government_has_flag = government_is_meritocratic
|
||||
government_has_flag = government_is_steppe_admin
|
||||
}
|
||||
}
|
||||
|
||||
can_keep_acclamation_succession_law_trigger = {
|
||||
has_ep3_dlc_trigger = yes
|
||||
trigger_if = {
|
||||
limit = {
|
||||
has_realm_law = acclamation_succession_law
|
||||
}
|
||||
OR = {
|
||||
can_have_acclamation_succession_law_trigger = yes
|
||||
has_title = title:e_byzantium
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_change_acclamation_succession_law_trigger = {
|
||||
has_ep3_dlc_trigger = yes
|
||||
}
|
||||
|
||||
can_have_appointment_succession_law_trigger = {
|
||||
has_ep3_dlc_trigger = yes
|
||||
government_allows = administrative
|
||||
NOR = {
|
||||
government_has_flag = government_is_celestial
|
||||
government_has_flag = government_is_japan_administrative
|
||||
government_has_flag = government_is_meritocratic
|
||||
}
|
||||
is_independent_ruler = no
|
||||
}
|
||||
|
||||
can_keep_appointment_succession_law_trigger = {
|
||||
has_ep3_dlc_trigger = yes
|
||||
trigger_if = {
|
||||
limit = {
|
||||
has_realm_law = appointment_succession_law
|
||||
}
|
||||
can_have_appointment_succession_law_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
can_change_appointment_succession_law_trigger = {
|
||||
has_ep3_dlc_trigger = yes
|
||||
}
|
||||
176
common/scripted_triggers/00_legal_triggers.txt
Normal file
176
common/scripted_triggers/00_legal_triggers.txt
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
|
||||
### Legal trigger list
|
||||
|
||||
opposes_succession_law_change_trigger = {
|
||||
is_imprisoned = no
|
||||
opinion = {
|
||||
target = liege
|
||||
value < 0
|
||||
}
|
||||
custom_description = {
|
||||
text = law_change_approval_is_cowed
|
||||
has_dread_level_towards = {
|
||||
target = liege
|
||||
level < 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_change_succession_laws_realm_flag_trigger = {
|
||||
trigger_if = {
|
||||
limit = { realm_law_use_tribal_authority = yes }
|
||||
custom_description = {
|
||||
text = "has_tribal_law_allowing_succession_law_change"
|
||||
has_realm_law_flag = can_change_succession_laws
|
||||
}
|
||||
}
|
||||
trigger_else_if = {
|
||||
limit = { realm_law_use_imperial_bureaucracy = yes }
|
||||
custom_description = {
|
||||
text = has_imperial_bureaucracy_law_allowing_succession_law_change
|
||||
has_realm_law_flag = can_change_succession_laws
|
||||
}
|
||||
}
|
||||
trigger_else = {
|
||||
custom_description = {
|
||||
text = "has_crown_law_allowing_succession_law_change"
|
||||
has_realm_law_flag = can_change_succession_laws
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_change_succession_law_trigger = {
|
||||
can_change_succession_laws_realm_flag_trigger = yes
|
||||
custom_description = {
|
||||
text = "no_powerful_vassal_with_negative_opinion"
|
||||
NOT = {
|
||||
any_vassal = {
|
||||
is_powerful_vassal = yes
|
||||
opposes_succession_law_change_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_change_single_heir_dynasty_house_succession_law_trigger = {
|
||||
trigger_if = {
|
||||
limit = {
|
||||
culture = {
|
||||
OR = {
|
||||
this = culture:czech
|
||||
this = culture:slovien
|
||||
any_parent_culture_or_above = {
|
||||
this = culture:czech
|
||||
}
|
||||
any_parent_culture_or_above = {
|
||||
this = culture:slovien
|
||||
}
|
||||
}
|
||||
}
|
||||
NOT = {
|
||||
has_realm_law_flag = can_change_succession_laws
|
||||
}
|
||||
}
|
||||
culture = {
|
||||
has_innovation = innovation_table_of_princes
|
||||
}
|
||||
}
|
||||
trigger_else = {
|
||||
can_change_succession_laws_realm_flag_trigger = yes
|
||||
}
|
||||
custom_description = {
|
||||
text = "no_powerful_vassal_with_negative_opinion"
|
||||
NOT = {
|
||||
any_vassal = {
|
||||
is_powerful_vassal = yes
|
||||
opposes_succession_law_change_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_change_to_equal_succession_law_trigger = {
|
||||
trigger_if = {
|
||||
limit = {
|
||||
NOT = { has_realm_law_flag = can_change_succession_laws }
|
||||
}
|
||||
OR = {
|
||||
culture = { has_cultural_parameter = gender_equal_inheritance }
|
||||
faith = { has_doctrine = doctrine_gender_equal }
|
||||
}
|
||||
}
|
||||
trigger_else = {
|
||||
can_change_succession_laws_realm_flag_trigger = yes
|
||||
}
|
||||
custom_description = {
|
||||
text = "no_powerful_vassal_with_negative_opinion"
|
||||
NOT = {
|
||||
any_vassal = {
|
||||
is_powerful_vassal = yes
|
||||
opposes_succession_law_change_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
can_change_partition_succession_law_trigger = {
|
||||
custom_description = {
|
||||
text = "has_law_allowing_partition_succession_law_change"
|
||||
OR = {
|
||||
has_realm_law_flag = can_change_partition_succession_laws
|
||||
has_realm_law_flag = can_change_succession_laws
|
||||
}
|
||||
}
|
||||
custom_description = {
|
||||
text = "no_powerful_vassal_with_negative_opinion"
|
||||
NOT = {
|
||||
any_vassal = {
|
||||
is_powerful_vassal = yes
|
||||
opposes_succession_law_change_trigger = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
## Can this character assign a dedicated heir?
|
||||
#
|
||||
# Check if a character can assign some designated heir,
|
||||
# but not if the heir is a valid candidate.
|
||||
#
|
||||
# root: Character that will assign an heir
|
||||
#
|
||||
can_designate_heir_trigger = {
|
||||
trigger_if = {
|
||||
# Admin always has access to this
|
||||
limit = { government_allows = administrative }
|
||||
|
||||
custom_description = {
|
||||
text = "has_admin_allowing_designate_heir"
|
||||
any_held_title = {
|
||||
is_noble_family_title = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
trigger_else_if = {
|
||||
# Feudal and clan can get this by increasing crown authority
|
||||
limit = { has_realm_law_in_group = crown_authority }
|
||||
|
||||
custom_description = {
|
||||
text = "has_crown_authority_designate_heir"
|
||||
has_realm_law_flag = can_designate_heirs
|
||||
}
|
||||
}
|
||||
trigger_else = {
|
||||
# Everyone else also needs a law to gain access to this interaction
|
||||
custom_description = {
|
||||
text = "has_law_allowing_designate_heir"
|
||||
has_realm_law_flag = can_designate_heirs
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
can_change_title_law_trigger = {
|
||||
is_at_war = no
|
||||
}
|
||||
1787
common/scripted_triggers/07_ep3_triggers.txt
Normal file
1787
common/scripted_triggers/07_ep3_triggers.txt
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -898,3 +898,32 @@ tgp_capital_not_in_chinese_naming_region = {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
farm_estates_3_4_trigger = {
|
||||
custom_tooltip = {
|
||||
text = farm_estates_3_4_trigger
|
||||
OR = {
|
||||
AND = {
|
||||
building_requirement_castle_city_church = { LEVEL = 02 }
|
||||
scope:holder.culture = {
|
||||
has_innovation = innovation_manorialism
|
||||
}
|
||||
building_farm_estates_requirement_terrain = yes
|
||||
}
|
||||
AND = {
|
||||
has_building_or_higher = pastures_04
|
||||
culture = {
|
||||
has_cultural_parameter = farm_estates_pastures_unlock
|
||||
}
|
||||
}
|
||||
AND = {
|
||||
building_paddy_fields_requirement_terrain = yes
|
||||
scope:holder.culture = {
|
||||
has_innovation = innovation_champa_rice
|
||||
has_innovation = innovation_manorialism
|
||||
}
|
||||
building_requirement_castle_city_church = { LEVEL = 02 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
104
common/task_contracts/_task_contracts.info
Normal file
104
common/task_contracts/_task_contracts.info
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
<key> = {
|
||||
# for grouping together contract types, e.g. mercenary, potentially determines map icon
|
||||
group = test_group
|
||||
|
||||
# Icon used in the UI
|
||||
icon = "path/to/image.dds"
|
||||
|
||||
# Description or 'back-story' of the task contract, defaults to "<key>_desc"
|
||||
# root = task_contract_type
|
||||
desc = ""
|
||||
|
||||
# Description for request telling 'what to do' in order to complete the contract, defaults to "<key>_request"
|
||||
# root = task_contract_type
|
||||
task_contract_request = ""
|
||||
|
||||
# Contract owner should travel to contract location to accept and stay there for the duration of the contract
|
||||
travel = no
|
||||
|
||||
# Contract is of a criminal nature
|
||||
is_criminal = no
|
||||
|
||||
# Range setting
|
||||
# yes - uses diplomatic range to contract employer
|
||||
# no - uses ADVENTURER_DISTANCE_RESTRICTION define as radius
|
||||
use_diplomatic_range = no
|
||||
|
||||
# Validity Triggers
|
||||
## Can contract appear? (if triggers are true)
|
||||
# root - contract owner
|
||||
# scope:employer - contract employer, can be empty
|
||||
valid_to_create = {
|
||||
<trigger>
|
||||
}
|
||||
|
||||
# Can contract be accepted? (if triggers are true)
|
||||
# root - contract owner
|
||||
# scope:employer - contract employer, can be empty
|
||||
valid_to_accept = {
|
||||
<trigger>
|
||||
}
|
||||
|
||||
# Should contract invalidate? (if triggers are false)
|
||||
# root - existing contract
|
||||
valid_to_continue = {
|
||||
<trigger>
|
||||
}
|
||||
|
||||
# Should not taken contract invalidate? (if triggers are false)
|
||||
# root - existing contract
|
||||
valid_to_keep = {
|
||||
<trigger>
|
||||
}
|
||||
|
||||
# On-Action Effects
|
||||
## Effects called when contract is created (create_task_contract effect)
|
||||
on_create = {
|
||||
<effects>
|
||||
}
|
||||
|
||||
## Effects called when contract is accepted (accept_task_contract effect)
|
||||
on_accepted = {
|
||||
<effects>
|
||||
}
|
||||
|
||||
# Effects called when contract is completed successfully, along with rewards (complete_task_contract effect)
|
||||
on_completed = {
|
||||
<effects>
|
||||
}
|
||||
|
||||
# Effects called when contract is invalidated (valid_to_continue is false, or invalidate_task_contract effect)
|
||||
on_invalidated = {
|
||||
<effects>
|
||||
}
|
||||
|
||||
# Default = no, showing completed contract toast animation
|
||||
should_show_toast_on_complete = no
|
||||
|
||||
# Contract Reward Effects
|
||||
task_contract_reward = {
|
||||
#reward name
|
||||
<string> = {
|
||||
# Default = no, showing completed contract reward effect desription
|
||||
should_print_on_complete = no
|
||||
effect = {
|
||||
<effects>
|
||||
}
|
||||
|
||||
# Should this possible reward be shown in the UI. It will still be displayed in the effect on completion
|
||||
# if that's what owner gets
|
||||
visible = yes
|
||||
|
||||
# Is this reward positive 'Upon Success' or negative 'Upon Failure'
|
||||
# default is yes
|
||||
positive = yes
|
||||
}
|
||||
}
|
||||
|
||||
# scripted value how likely this contract type is to be picked when populating for area
|
||||
# root - contract owner
|
||||
# scope:employer - contract employer, can be empty
|
||||
weight = {
|
||||
value = 0
|
||||
}
|
||||
}
|
||||
2966
common/task_contracts/admin_contracts.txt
Normal file
2966
common/task_contracts/admin_contracts.txt
Normal file
File diff suppressed because it is too large
Load diff
8315
common/task_contracts/laamp_base_contracts.txt
Normal file
8315
common/task_contracts/laamp_base_contracts.txt
Normal file
File diff suppressed because it is too large
Load diff
5574
common/task_contracts/laamp_extra_contracts.txt
Normal file
5574
common/task_contracts/laamp_extra_contracts.txt
Normal file
File diff suppressed because it is too large
Load diff
969
common/task_contracts/laamp_nm_contracts.txt
Normal file
969
common/task_contracts/laamp_nm_contracts.txt
Normal file
|
|
@ -0,0 +1,969 @@
|
|||
##################################################
|
||||
# INFO
|
||||
# Extra contracts for laamps.
|
||||
##################################################
|
||||
|
||||
laamp_boost_legitimacy_contract = {
|
||||
group = laamp_contracts_diplomacy_group
|
||||
icon = "gfx/interface/icons/scheme_types/diplomacy.dds"
|
||||
travel = yes
|
||||
use_diplomatic_range = yes
|
||||
|
||||
valid_to_create = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = scope:employer
|
||||
LAAMP = root
|
||||
}
|
||||
employer_has_treasury_to_offer_job_trigger = yes
|
||||
valid_laamp_sensible_start_trigger = yes
|
||||
scope:employer = {
|
||||
legitimacy_level <= 2
|
||||
top_liege = this
|
||||
is_landed = yes
|
||||
is_ai = yes
|
||||
NOR = {
|
||||
location = root.location
|
||||
government_has_flag = government_is_theocracy
|
||||
}
|
||||
highest_held_title_tier > tier_county
|
||||
location = {
|
||||
squared_distance = {
|
||||
target = root.location
|
||||
value <= squared_distance_large
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_accept_only_trigger = yes
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = scope:employer
|
||||
LAAMP = root
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = root.task_contract_employer
|
||||
LAAMP = root.task_contract_taker
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = root.task_contract_employer
|
||||
LAAMP = root.task_contract_taker
|
||||
}
|
||||
}
|
||||
|
||||
weight = {
|
||||
# Standard weights.
|
||||
value = task_contract_weight_interesting_somewhat_rare_value
|
||||
add = laamp_contracts_weight_up_diplomacy_value
|
||||
add = laamp_contracts_weight_up_diplomacy_slight_value
|
||||
add = task_contract_weight_employer_contact_list_value
|
||||
scope:employer = { multiply = task_contract_weight_by_tier_value }
|
||||
}
|
||||
|
||||
on_create = {
|
||||
scope:contract = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_employer = {
|
||||
save_scope_as = task_contract_employer
|
||||
capital_province = {
|
||||
save_scope_as = task_contract_destination
|
||||
}
|
||||
}
|
||||
set_variable = {
|
||||
name = task_contract_employer
|
||||
value = scope:task_contract_employer
|
||||
}
|
||||
set_variable = {
|
||||
name = task_contract_destination
|
||||
value = scope:task_contract_destination
|
||||
}
|
||||
# Make our gold rewards static.
|
||||
grab_gold_fuzz_number_effect = yes
|
||||
save_scope_as = task_contract
|
||||
set_variable = {
|
||||
name = gold_success_standard
|
||||
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker = {
|
||||
trigger_event = {
|
||||
id = ep3_contract_event.0510
|
||||
delayed = yes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success_standard = {
|
||||
should_print_on_complete = yes
|
||||
effect = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_value_as = { name = extra_reward value = flag:no }
|
||||
task_contract_taker = {
|
||||
send_interface_toast = {
|
||||
title = laamp_transport_contract.success #Re-using
|
||||
left_icon = scope:task_contract.task_contract_taker
|
||||
right_icon = scope:task_contract.task_contract_employer
|
||||
scope:task_contract = {
|
||||
# Standard Rewards.
|
||||
laamp_rewards_disburse_ordinary_currency_effect = {
|
||||
GOLD = scope:task_contract.var:gold_success_standard
|
||||
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||||
PIETY = 0
|
||||
PROVISIONS = 0
|
||||
OPINION = task_contract_opinion_standard_reward_value
|
||||
OPINION_TYPE = succeeded_task_contract_opinion
|
||||
CONTACT = yes
|
||||
CONTACT_HOOK = no
|
||||
EXTRA_REWARD = scope:extra_reward
|
||||
}
|
||||
task_contract_employer = {
|
||||
add_legitimacy = minor_legitimacy_gain
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
positive = no
|
||||
effect = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
save_scope_value_as = { name = extra_reward value = flag:no }
|
||||
# Standard Penalties.
|
||||
laamp_rewards_disburse_ordinary_currency_effect = {
|
||||
GOLD = 0
|
||||
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||||
PIETY = 0
|
||||
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||||
OPINION = task_contract_opinion_standard_failure_value
|
||||
OPINION_TYPE = failed_task_contract_opinion
|
||||
CONTACT = no
|
||||
CONTACT_HOOK = no
|
||||
EXTRA_REWARD = scope:extra_reward
|
||||
}
|
||||
task_contract_employer = {
|
||||
add_legitimacy = miniscule_legitimacy_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_critical = {
|
||||
positive = no
|
||||
effect = {
|
||||
save_scope_as = task_contract
|
||||
# Standard Penalties.
|
||||
laamp_rewards_disburse_ordinary_currency_effect = {
|
||||
GOLD = 0
|
||||
PRESTIGE = task_contract_failure_prestige_loss_double_value
|
||||
PIETY = 0
|
||||
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||||
OPINION = task_contract_opinion_critical_failure_value
|
||||
OPINION_TYPE = failed_task_contract_opinion
|
||||
CONTACT = no
|
||||
CONTACT_HOOK = no
|
||||
EXTRA_REWARD = scope:extra_reward
|
||||
}
|
||||
task_contract_employer = {
|
||||
add_legitimacy = medium_legitimacy_loss
|
||||
add_prestige = task_contract_failure_prestige_loss_double_value
|
||||
add_stress = medium_stress_gain
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
laamp_rid_councillor_contract = {
|
||||
group = laamp_contracts_martial_group
|
||||
icon = "gfx/interface/icons/scheme_types/martial.dds"
|
||||
travel = yes
|
||||
use_diplomatic_range = yes
|
||||
is_criminal = yes
|
||||
|
||||
valid_to_create = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = scope:employer
|
||||
LAAMP = root
|
||||
}
|
||||
employer_has_treasury_to_offer_job_trigger = yes
|
||||
valid_laamp_sensible_start_trigger = yes
|
||||
scope:employer = {
|
||||
top_liege = this
|
||||
is_landed = yes
|
||||
is_ai = yes
|
||||
NOT = {
|
||||
government_has_flag = government_is_theocracy
|
||||
}
|
||||
highest_held_title_tier > tier_county #Requires a council
|
||||
location = { #Not too far away
|
||||
squared_distance = {
|
||||
target = root.location
|
||||
value <= squared_distance_large
|
||||
}
|
||||
}
|
||||
any_councillor = { #Has a councillor who they hate
|
||||
count > 1
|
||||
is_ai = yes
|
||||
reverse_opinion = {
|
||||
target = scope:employer
|
||||
value <= high_negative_opinion
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_accept_only_trigger = yes
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = scope:employer
|
||||
LAAMP = root
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = root.task_contract_employer
|
||||
LAAMP = root.task_contract_taker
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = root.task_contract_employer
|
||||
LAAMP = root.task_contract_taker
|
||||
}
|
||||
}
|
||||
|
||||
weight = {
|
||||
# Standard weights.
|
||||
value = task_contract_weight_interesting_somewhat_rare_value
|
||||
add = laamp_contracts_weight_up_martial_value
|
||||
add = laamp_contracts_weight_up_martial_slight_value
|
||||
add = task_contract_weight_employer_contact_list_value
|
||||
scope:employer = { multiply = task_contract_weight_by_tier_value }
|
||||
}
|
||||
|
||||
on_create = {
|
||||
scope:contract = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_employer = {
|
||||
save_scope_as = task_contract_employer
|
||||
capital_province = {
|
||||
save_scope_as = task_contract_destination
|
||||
}
|
||||
}
|
||||
set_variable = {
|
||||
name = task_contract_employer
|
||||
value = scope:task_contract_employer
|
||||
}
|
||||
set_variable = {
|
||||
name = task_contract_destination
|
||||
value = scope:task_contract_destination
|
||||
}
|
||||
# Make our gold rewards static.
|
||||
grab_gold_fuzz_number_effect = yes
|
||||
save_scope_as = task_contract
|
||||
set_variable = {
|
||||
name = gold_success_critical
|
||||
value = task_contract_success_gold_gain_full_value
|
||||
}
|
||||
set_variable = {
|
||||
name = gold_success_standard
|
||||
value = task_contract_success_gold_gain_half_value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker = {
|
||||
trigger_event = {
|
||||
id = ep3_contract_event.0550
|
||||
delayed = no
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success_critical = {
|
||||
should_print_on_complete = yes
|
||||
effect = {
|
||||
save_scope_value_as = { name = extra_reward value = flag:no }
|
||||
save_scope_as = task_contract
|
||||
laamp_rewards_disburse_ordinary_currency_effect = {
|
||||
GOLD = scope:task_contract.var:gold_success_critical
|
||||
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||||
PIETY = 0
|
||||
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||||
OPINION = task_contract_opinion_excelled_reward_value
|
||||
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||||
CONTACT = yes
|
||||
CONTACT_HOOK = yes
|
||||
EXTRA_REWARD = scope:extra_reward
|
||||
}
|
||||
}
|
||||
}
|
||||
success_standard = {
|
||||
should_print_on_complete = yes
|
||||
effect = {
|
||||
save_scope_value_as = { name = extra_reward value = flag:no }
|
||||
save_scope_as = task_contract
|
||||
laamp_rewards_disburse_ordinary_currency_effect = {
|
||||
GOLD = scope:task_contract.var:gold_success_standard
|
||||
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||||
PIETY = 0
|
||||
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||||
OPINION = task_contract_opinion_standard_reward_value
|
||||
OPINION_TYPE = succeeded_task_contract_opinion
|
||||
CONTACT = yes
|
||||
CONTACT_HOOK = no
|
||||
EXTRA_REWARD = scope:extra_reward
|
||||
}
|
||||
task_contract_taker = {
|
||||
# Update gallowsbait score.
|
||||
laamp_rewards_apply_criminal_xp_effect = {
|
||||
TRACK = marauder
|
||||
XP_MIN = gallowsbait_xp_medium_gain
|
||||
XP_MAX = gallowsbait_xp_medium_gain
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
positive = no
|
||||
effect = {
|
||||
save_scope_value_as = { name = extra_reward value = flag:no }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker = {
|
||||
add_prestige = task_contract_failure_prestige_loss_full_value
|
||||
add_piety = minor_piety_loss
|
||||
reverse_add_opinion = {
|
||||
opinion = -35
|
||||
modifier = failed_task_contract_opinion
|
||||
target = scope:task_contract.task_contract_employer
|
||||
}
|
||||
# Update gallowsbait score.
|
||||
laamp_rewards_apply_criminal_xp_effect = {
|
||||
TRACK = marauder
|
||||
XP_MIN = gallowsbait_xp_medium_gain
|
||||
XP_MAX = gallowsbait_xp_medium_gain
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_critical = {
|
||||
positive = no
|
||||
effect = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker = {
|
||||
add_prestige = task_contract_failure_prestige_loss_double_value
|
||||
add_piety = medium_piety_loss
|
||||
add_stress = minor_stress_gain
|
||||
reverse_add_opinion = {
|
||||
opinion = -65
|
||||
modifier = failed_task_contract_opinion
|
||||
target = scope:task_contract.task_contract_employer
|
||||
}
|
||||
# Update gallowsbait score.
|
||||
laamp_rewards_apply_criminal_xp_effect = {
|
||||
TRACK = marauder
|
||||
XP_MIN = gallowsbait_xp_major_gain
|
||||
XP_MAX = gallowsbait_xp_major_gain
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
laamp_gain_wanderer_contract = {
|
||||
group = laamp_contracts_martial_group
|
||||
icon = "gfx/interface/icons/scheme_types/martial.dds"
|
||||
travel = yes
|
||||
use_diplomatic_range = yes
|
||||
|
||||
valid_to_create = {
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = scope:employer
|
||||
LAAMP = root
|
||||
}
|
||||
valid_laamp_sensible_start_trigger = yes
|
||||
prestige_level >= 2
|
||||
scope:employer = {
|
||||
is_landed = no
|
||||
is_ai = yes
|
||||
in_diplomatic_range = root
|
||||
prestige_level < root.prestige_level
|
||||
location = { #Not too far away
|
||||
squared_distance = {
|
||||
target = root.location
|
||||
value <= squared_distance_large
|
||||
}
|
||||
}
|
||||
primary_title = {
|
||||
is_mercenary_company = no
|
||||
}
|
||||
NOR = {
|
||||
government_has_flag = government_is_theocracy
|
||||
government_allows = administrative
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_laamp_basic_accept_only_trigger = yes
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = scope:employer
|
||||
LAAMP = root
|
||||
}
|
||||
is_available = yes
|
||||
prestige_level >= 2
|
||||
scope:employer = {
|
||||
is_landed = no
|
||||
is_ai = yes
|
||||
in_diplomatic_range = root
|
||||
prestige_level < root.prestige_level
|
||||
location = { #Not too far away
|
||||
squared_distance = {
|
||||
target = root.location
|
||||
value <= squared_distance_large
|
||||
}
|
||||
}
|
||||
primary_title = {
|
||||
is_mercenary_company = no
|
||||
}
|
||||
NOR = {
|
||||
government_has_flag = government_is_theocracy
|
||||
government_allows = administrative
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
weight = {
|
||||
# Keep it rare and use it to fill in gaps between other contracts
|
||||
value = task_contract_weight_interesting_very_rare_value
|
||||
}
|
||||
|
||||
on_create = {
|
||||
scope:contract = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_employer = {
|
||||
save_scope_as = task_contract_employer
|
||||
capital_province = {
|
||||
save_scope_as = task_contract_destination
|
||||
}
|
||||
}
|
||||
set_variable = {
|
||||
name = task_contract_employer
|
||||
value = scope:task_contract_employer
|
||||
}
|
||||
set_variable = {
|
||||
name = task_contract_destination
|
||||
value = scope:task_contract_destination
|
||||
}
|
||||
# Make our gold rewards static.
|
||||
grab_gold_fuzz_number_effect = yes
|
||||
save_scope_as = task_contract
|
||||
set_variable = {
|
||||
name = gold_success_standard
|
||||
value = task_contract_success_gold_gain_half_value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_employer = {
|
||||
save_scope_as = task_contract_employer
|
||||
capital_province = {
|
||||
save_scope_as = task_contract_destination
|
||||
}
|
||||
}
|
||||
task_contract_taker = {
|
||||
trigger_event = {
|
||||
id = ep3_contract_event.0570
|
||||
delayed = no
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success_standard = {
|
||||
should_print_on_complete = yes
|
||||
effect = {
|
||||
save_scope_value_as = { name = extra_reward value = flag:no }
|
||||
save_scope_as = task_contract
|
||||
laamp_rewards_disburse_ordinary_currency_effect = {
|
||||
GOLD = scope:task_contract.var:gold_success_standard
|
||||
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||||
PIETY = 0
|
||||
PROVISIONS = 0
|
||||
OPINION = task_contract_opinion_standard_reward_value
|
||||
OPINION_TYPE = succeeded_task_contract_opinion
|
||||
CONTACT = no
|
||||
CONTACT_HOOK = no
|
||||
EXTRA_REWARD = scope:extra_reward
|
||||
}
|
||||
task_contract_taker = {
|
||||
add_intrigue_lifestyle_xp = medium_lifestyle_xp
|
||||
add_courtier = scope:task_contract.task_contract_employer
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
positive = no
|
||||
effect = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker = {
|
||||
add_stress = medium_stress_gain
|
||||
add_character_modifier = {
|
||||
modifier = ep3_clumsy_rescuer_modifier
|
||||
years = 5
|
||||
}
|
||||
reverse_add_opinion = {
|
||||
opinion = -50
|
||||
modifier = failed_task_contract_opinion
|
||||
target = scope:task_contract.task_contract_employer
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
laamp_find_secret_contract = {
|
||||
group = laamp_contracts_intrigue_group
|
||||
icon = "gfx/interface/icons/scheme_types/intrigue.dds"
|
||||
travel = yes
|
||||
use_diplomatic_range = yes
|
||||
|
||||
valid_to_create = {
|
||||
valid_laamp_basic_accept_only_trigger = yes
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = scope:employer
|
||||
LAAMP = root
|
||||
}
|
||||
valid_laamp_sensible_start_trigger = yes
|
||||
scope:employer = {
|
||||
is_ai = yes
|
||||
location = { #Not too far away
|
||||
squared_distance = {
|
||||
target = root.location
|
||||
value <= squared_distance_large
|
||||
}
|
||||
}
|
||||
NOT = {
|
||||
government_has_flag = government_is_theocracy
|
||||
}
|
||||
OR = {
|
||||
any_courtier_or_guest = {
|
||||
any_secret = {
|
||||
count > 0
|
||||
NOT = { is_known_by = scope:employer }
|
||||
}
|
||||
}
|
||||
any_vassal = {
|
||||
any_secret = {
|
||||
count > 0
|
||||
NOT = { is_known_by = scope:employer }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = scope:employer
|
||||
LAAMP = root
|
||||
}
|
||||
scope:employer = {
|
||||
is_ai = yes
|
||||
location = { #Not too far away
|
||||
squared_distance = {
|
||||
target = root.location
|
||||
value <= squared_distance_large
|
||||
}
|
||||
}
|
||||
NOT = {
|
||||
government_has_flag = government_is_theocracy
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = root.task_contract_employer
|
||||
LAAMP = root.task_contract_taker
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = root.task_contract_employer
|
||||
LAAMP = root.task_contract_taker
|
||||
}
|
||||
scope:employer = {
|
||||
OR = {
|
||||
any_courtier_or_guest = {
|
||||
any_secret = {
|
||||
count > 0
|
||||
NOT = { is_known_by = scope:employer }
|
||||
}
|
||||
}
|
||||
any_vassal = {
|
||||
any_secret = {
|
||||
count > 0
|
||||
NOT = { is_known_by = scope:employer }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
weight = {
|
||||
value = task_contract_weight_default_value
|
||||
add = laamp_contracts_weight_up_intrigue_value
|
||||
add = task_contract_weight_employer_contact_list_value
|
||||
scope:employer = { multiply = task_contract_weight_by_tier_value }
|
||||
}
|
||||
|
||||
on_create = {
|
||||
scope:contract = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_employer = {
|
||||
save_scope_as = task_contract_employer
|
||||
if = {
|
||||
limit = {
|
||||
any_vassal = {
|
||||
any_secret = {
|
||||
count > 0
|
||||
NOT = { is_known_by = scope:task_contract_employer }
|
||||
}
|
||||
}
|
||||
}
|
||||
random_vassal = {
|
||||
limit = {
|
||||
any_secret = {
|
||||
count > 0
|
||||
NOT = { is_known_by = scope:task_contract_employer }
|
||||
}
|
||||
}
|
||||
save_scope_as = secret_haver
|
||||
}
|
||||
}
|
||||
else = {
|
||||
random_courtier_or_guest = {
|
||||
save_scope_as = secret_haver
|
||||
}
|
||||
}
|
||||
scope:secret_haver.location = {
|
||||
save_scope_as = task_contract_destination
|
||||
}
|
||||
}
|
||||
set_variable = {
|
||||
name = task_contract_employer
|
||||
value = scope:task_contract_employer
|
||||
}
|
||||
set_variable = {
|
||||
name = task_contract_destination
|
||||
value = scope:task_contract_destination
|
||||
}
|
||||
}
|
||||
scope:contract = {
|
||||
# Make our gold rewards static.
|
||||
grab_gold_fuzz_number_effect = yes
|
||||
save_scope_as = task_contract
|
||||
set_variable = {
|
||||
name = gold_success_standard
|
||||
value = task_contract_success_gold_gain_half_value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_employer = {
|
||||
save_scope_as = task_contract_employer
|
||||
if = {
|
||||
limit = {
|
||||
any_vassal = {
|
||||
any_secret = {
|
||||
count > 0
|
||||
NOT = { is_known_by = scope:task_contract_employer }
|
||||
}
|
||||
}
|
||||
}
|
||||
random_vassal = {
|
||||
limit = {
|
||||
any_secret = {
|
||||
count > 0
|
||||
NOT = { is_known_by = scope:task_contract_employer }
|
||||
}
|
||||
}
|
||||
save_scope_as = secret_haver
|
||||
}
|
||||
}
|
||||
else = {
|
||||
random_courtier_or_guest = {
|
||||
save_scope_as = secret_haver
|
||||
}
|
||||
}
|
||||
scope:secret_haver.location = {
|
||||
save_scope_as = task_contract_destination
|
||||
}
|
||||
}
|
||||
task_contract_taker = {
|
||||
trigger_event = {
|
||||
id = ep3_contract_event.0580
|
||||
delayed = no
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success_standard = {
|
||||
should_print_on_complete = yes
|
||||
effect = {
|
||||
save_scope_value_as = { name = extra_reward value = flag:no }
|
||||
save_scope_as = task_contract
|
||||
laamp_rewards_disburse_ordinary_currency_effect = {
|
||||
GOLD = scope:task_contract.var:gold_success_standard
|
||||
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||||
PIETY = 0
|
||||
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||||
OPINION = task_contract_opinion_standard_reward_value
|
||||
OPINION_TYPE = succeeded_task_contract_opinion
|
||||
CONTACT = no
|
||||
CONTACT_HOOK = no
|
||||
EXTRA_REWARD = scope:extra_reward
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
positive = no
|
||||
effect = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker = {
|
||||
add_stress = minor_stress_gain
|
||||
add_prestige = task_contract_failure_prestige_loss_full_value
|
||||
reverse_add_opinion = {
|
||||
opinion = -50
|
||||
modifier = failed_task_contract_opinion
|
||||
target = scope:task_contract.task_contract_employer
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
laamp_eliminate_heir_contract = {
|
||||
group = laamp_contracts_intrigue_group
|
||||
icon = "gfx/interface/icons/scheme_types/intrigue.dds"
|
||||
travel = yes
|
||||
use_diplomatic_range = yes
|
||||
is_criminal = yes
|
||||
|
||||
valid_to_create = {
|
||||
valid_laamp_basic_accept_only_trigger = yes
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = scope:employer
|
||||
LAAMP = root
|
||||
}
|
||||
valid_laamp_sensible_start_trigger = yes
|
||||
scope:employer = {
|
||||
is_ai = yes
|
||||
in_diplomatic_range = root
|
||||
is_landed = yes
|
||||
location = { #Not too far away
|
||||
squared_distance = {
|
||||
target = root.location
|
||||
value <= squared_distance_large
|
||||
}
|
||||
}
|
||||
NOR = {
|
||||
government_has_flag = government_is_theocracy
|
||||
government_allows = administrative
|
||||
}
|
||||
AND = { #They have a primary heir they dislike, and another one they like
|
||||
primary_heir ?= {
|
||||
reverse_opinion = {
|
||||
target = scope:employer
|
||||
value <= high_negative_opinion
|
||||
}
|
||||
age > 16 #No murderin' babies
|
||||
}
|
||||
any_heir = {
|
||||
count > 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = scope:employer
|
||||
LAAMP = root
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = root.task_contract_employer
|
||||
LAAMP = root.task_contract_taker
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
# Standard triggers.
|
||||
valid_laamp_basic_trigger = {
|
||||
EMPLOYER = root.task_contract_employer
|
||||
LAAMP = root.task_contract_taker
|
||||
}
|
||||
}
|
||||
|
||||
weight = { #Let's not have this happen too often
|
||||
value = task_contract_weight_interesting_very_rare_value
|
||||
add = task_contract_weight_employer_contact_list_value
|
||||
}
|
||||
|
||||
on_create = {
|
||||
scope:contract = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_employer = {
|
||||
save_scope_as = task_contract_employer
|
||||
random_heir = {
|
||||
limit = {
|
||||
is_primary_heir_of = scope:task_contract_employer
|
||||
reverse_opinion = {
|
||||
target = scope:task_contract_employer
|
||||
value <= high_negative_opinion
|
||||
}
|
||||
age > 16 #No murderin' babies
|
||||
}
|
||||
save_scope_as = heir
|
||||
}
|
||||
scope:heir.location = {
|
||||
save_scope_as = task_contract_destination
|
||||
}
|
||||
}
|
||||
set_variable = {
|
||||
name = task_contract_employer
|
||||
value = scope:task_contract_employer
|
||||
}
|
||||
set_variable = {
|
||||
name = task_contract_destination
|
||||
value = scope:task_contract_destination
|
||||
}
|
||||
# Make our gold rewards static.
|
||||
grab_gold_fuzz_number_effect = yes
|
||||
save_scope_as = task_contract
|
||||
set_variable = {
|
||||
name = gold_success_standard
|
||||
value = task_contract_success_gold_gain_full_value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_employer = {
|
||||
save_scope_as = task_contract_employer
|
||||
random_heir = {
|
||||
limit = {
|
||||
is_primary_heir_of = scope:task_contract_employer
|
||||
reverse_opinion = {
|
||||
target = scope:task_contract_employer
|
||||
value <= high_negative_opinion
|
||||
}
|
||||
age > 16 #No murderin' babies
|
||||
}
|
||||
save_scope_as = heir
|
||||
}
|
||||
random_heir = {
|
||||
limit = {
|
||||
NOT = {
|
||||
is_primary_heir_of = scope:task_contract_employer
|
||||
}
|
||||
reverse_opinion = {
|
||||
target = scope:task_contract_employer
|
||||
value >= low_positive_opinion
|
||||
}
|
||||
}
|
||||
save_scope_as = favoured_heir
|
||||
}
|
||||
scope:heir.location = {
|
||||
save_scope_as = task_contract_destination
|
||||
}
|
||||
}
|
||||
task_contract_taker = {
|
||||
trigger_event = {
|
||||
id = ep3_contract_event.0590
|
||||
delayed = no
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success_standard = {
|
||||
should_print_on_complete = yes
|
||||
effect = {
|
||||
save_scope_value_as = { name = extra_reward value = flag:no }
|
||||
save_scope_as = task_contract
|
||||
laamp_rewards_disburse_ordinary_currency_effect = {
|
||||
GOLD = scope:task_contract.var:gold_success_standard
|
||||
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||||
PIETY = 0
|
||||
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||||
OPINION = task_contract_opinion_excelled_reward_value
|
||||
OPINION_TYPE = succeeded_task_contract_opinion
|
||||
CONTACT = yes
|
||||
CONTACT_HOOK = yes
|
||||
EXTRA_REWARD = scope:extra_reward
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
positive = no
|
||||
effect = {
|
||||
save_scope_value_as = { name = extra_reward value = flag:no }
|
||||
save_scope_as = task_contract
|
||||
laamp_rewards_disburse_ordinary_currency_effect = {
|
||||
GOLD = 0
|
||||
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||||
PIETY = 0
|
||||
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||||
OPINION = task_contract_opinion_standard_failure_value
|
||||
OPINION_TYPE = failed_task_contract_opinion
|
||||
CONTACT = no
|
||||
CONTACT_HOOK = no
|
||||
EXTRA_REWARD = scope:extra_reward
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
2025
common/task_contracts/laamp_transport_contracts.txt
Normal file
2025
common/task_contracts/laamp_transport_contracts.txt
Normal file
File diff suppressed because it is too large
Load diff
468
common/task_contracts/nomads_migration_contracts.txt
Normal file
468
common/task_contracts/nomads_migration_contracts.txt
Normal file
|
|
@ -0,0 +1,468 @@
|
|||
#############################
|
||||
# NOMADIC MIGRATION CONTRACTS
|
||||
#############################
|
||||
nomadic_migration_contract_1 = { # Disagreeable Herders
|
||||
group = nomadic_settling_group
|
||||
icon = "gfx/interface/icons/government_types/government_type_herder.dds"
|
||||
use_diplomatic_range = no
|
||||
travel = no
|
||||
|
||||
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
|
||||
|
||||
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
|
||||
|
||||
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
|
||||
|
||||
valid_to_accept = { is_available = yes }
|
||||
|
||||
on_create = { settlement_issue_on_create_effect = yes }
|
||||
|
||||
on_accepted = {
|
||||
settlement_issue_on_accepted_default_effect = {
|
||||
NUMBER = 1
|
||||
ARRIVAL_ID = 0005
|
||||
RESET_ID = 0003
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
task_contract_taker = { remove_variable = nomadic_migration_contract_1 }
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
settlement_issue_on_invalidated_default_effect = yes
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
control = { effect = { settlement_issue_control_reward_effect = yes } }
|
||||
|
||||
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
|
||||
|
||||
fertility = { effect = { settlement_issue_fertility_reward_effect = yes } }
|
||||
}
|
||||
}
|
||||
|
||||
nomadic_migration_contract_2 = { # The Wild Herd
|
||||
group = nomadic_settling_group
|
||||
icon = "gfx/interface/icons/icon_herd.dds"
|
||||
use_diplomatic_range = no
|
||||
travel = no
|
||||
|
||||
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
|
||||
|
||||
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
|
||||
|
||||
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
|
||||
|
||||
valid_to_accept = { is_available = yes }
|
||||
|
||||
on_create = { settlement_issue_on_create_effect = yes }
|
||||
|
||||
on_accepted = {
|
||||
settlement_issue_on_accepted_default_effect = {
|
||||
NUMBER = 2
|
||||
ARRIVAL_ID = 0015
|
||||
RESET_ID = 0013
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
task_contract_taker = { remove_variable = nomadic_migration_contract_2 }
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
settlement_issue_on_invalidated_default_effect = yes
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
control = { effect = { settlement_issue_control_reward_effect = yes } }
|
||||
|
||||
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
|
||||
|
||||
gold = { effect = { settlement_issue_gold_reward_effect = yes } }
|
||||
|
||||
opinion = { effect = { settlement_issue_opinion_reward_effect = { MODIFIER = mpo_si_slaughtered_for_a_feast } } }
|
||||
}
|
||||
}
|
||||
|
||||
nomadic_migration_contract_3 = { # Contentious Grazelands
|
||||
group = nomadic_settling_group
|
||||
icon = "gfx/interface/icons/icon_county_fertility.dds"
|
||||
use_diplomatic_range = no
|
||||
travel = no
|
||||
|
||||
valid_to_create = {
|
||||
any_knight = {
|
||||
count >= 2
|
||||
is_landed = no
|
||||
}
|
||||
any_held_county = {
|
||||
county_control < 90
|
||||
NOT = { has_county_modifier = ongoing_settlement_contract }
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
|
||||
|
||||
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
|
||||
|
||||
valid_to_accept = { is_available = yes }
|
||||
|
||||
on_create = { settlement_issue_on_create_effect = yes }
|
||||
|
||||
on_accepted = {
|
||||
settlement_issue_on_accepted_default_effect = {
|
||||
NUMBER = 3
|
||||
ARRIVAL_ID = 0025
|
||||
RESET_ID = 0023
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
task_contract_taker = { remove_variable = nomadic_migration_contract_3 }
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
settlement_issue_on_invalidated_default_effect = yes
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
control = { effect = { settlement_issue_control_reward_effect = yes } }
|
||||
|
||||
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
|
||||
|
||||
opinion = {
|
||||
effect = {
|
||||
settlement_issue_character_opinion_reward_effect = {
|
||||
CHARACTER = root.task_contract_employer
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nomadic_migration_contract_4 = { # A Lack of Tools
|
||||
group = nomadic_settling_group
|
||||
icon = "gfx/interface/icons/court_position_types/royal_architect_court_position.dds"
|
||||
use_diplomatic_range = no
|
||||
travel = no
|
||||
|
||||
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
|
||||
|
||||
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
|
||||
|
||||
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
|
||||
|
||||
valid_to_accept = { is_available = yes }
|
||||
|
||||
on_create = { settlement_issue_on_create_effect = yes }
|
||||
|
||||
on_accepted = {
|
||||
settlement_issue_on_accepted_default_effect = {
|
||||
NUMBER = 4
|
||||
ARRIVAL_ID = 0035
|
||||
RESET_ID = 0033
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
task_contract_taker = { remove_variable = nomadic_migration_contract_4 }
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
settlement_issue_on_invalidated_default_effect = yes
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
control = { effect = { settlement_issue_control_reward_effect = yes } }
|
||||
}
|
||||
}
|
||||
|
||||
nomadic_migration_contract_5 = { # Fragmentation of the Tribe
|
||||
group = nomadic_settling_group
|
||||
icon = "gfx/interface/icons/casus_bellis/ducal_conquest_cb.dds"
|
||||
use_diplomatic_range = no
|
||||
travel = no
|
||||
|
||||
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
|
||||
|
||||
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
|
||||
|
||||
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
|
||||
|
||||
valid_to_accept = { is_available = yes }
|
||||
|
||||
on_create = { settlement_issue_on_create_effect = yes }
|
||||
|
||||
on_accepted = {
|
||||
settlement_issue_on_accepted_default_effect = {
|
||||
NUMBER = 5
|
||||
ARRIVAL_ID = 0045
|
||||
RESET_ID = 0043
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
task_contract_taker = { remove_variable = nomadic_migration_contract_5 }
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
settlement_issue_on_invalidated_default_effect = yes
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
control = { effect = { settlement_issue_control_reward_effect = yes } }
|
||||
}
|
||||
}
|
||||
|
||||
nomadic_migration_contract_6 = { # Poisonous Lands
|
||||
group = nomadic_settling_group
|
||||
icon = "gfx/interface/icons/court_position_types/court_physician_court_position.dds"
|
||||
use_diplomatic_range = no
|
||||
travel = no
|
||||
|
||||
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
|
||||
|
||||
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
|
||||
|
||||
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
|
||||
|
||||
valid_to_accept = { is_available = yes }
|
||||
|
||||
on_create = { settlement_issue_on_create_effect = yes }
|
||||
|
||||
on_accepted = {
|
||||
settlement_issue_on_accepted_default_effect = {
|
||||
NUMBER = 6
|
||||
ARRIVAL_ID = 0055
|
||||
RESET_ID = 0053
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
task_contract_taker = { remove_variable = nomadic_migration_contract_6 }
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
settlement_issue_on_invalidated_default_effect = yes
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
control = { effect = { settlement_issue_control_reward_effect = yes } }
|
||||
}
|
||||
}
|
||||
|
||||
nomadic_migration_contract_7 = { # Troublesome Neighbors
|
||||
group = nomadic_settling_group
|
||||
icon = "gfx/interface/icons/casus_bellis/ducal_conquest_cb.dds"
|
||||
use_diplomatic_range = no
|
||||
travel = no
|
||||
|
||||
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
|
||||
|
||||
valid_to_keep = {
|
||||
custom_tooltip = {
|
||||
text = migration_contract_county_ownership_text
|
||||
OR = {
|
||||
task_contract_location.province_owner = task_contract_taker
|
||||
task_contract_location.province_owner.liege = task_contract_taker
|
||||
task_contract_location.province_owner.top_liege = task_contract_taker
|
||||
}
|
||||
}
|
||||
custom_tooltip = {
|
||||
text = migration_contract_county_alt_text
|
||||
task_contract_location.county = {
|
||||
county_control < 90
|
||||
any_neighboring_county = {
|
||||
NOT = { owner.top_liege ?= root.top_liege }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
|
||||
|
||||
valid_to_accept = { is_available = yes }
|
||||
|
||||
on_create = { settlement_issue_on_create_effect = yes }
|
||||
|
||||
on_accepted = {
|
||||
settlement_issue_on_accepted_default_effect = {
|
||||
NUMBER = 7
|
||||
ARRIVAL_ID = 0065
|
||||
RESET_ID = 0063
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
task_contract_taker = { remove_variable = nomadic_migration_contract_7 }
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
settlement_issue_on_invalidated_default_effect = yes
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
control = { effect = { settlement_issue_control_reward_effect = yes } }
|
||||
|
||||
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
|
||||
}
|
||||
}
|
||||
|
||||
nomadic_migration_contract_8 = { # The Leftovers
|
||||
group = nomadic_settling_group
|
||||
icon = "gfx/interface/icons/icon_herd.dds"
|
||||
use_diplomatic_range = no
|
||||
travel = no
|
||||
|
||||
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
|
||||
|
||||
valid_to_keep = { settlement_issue_valid_to_keep_default_trigger = yes }
|
||||
|
||||
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
|
||||
|
||||
valid_to_accept = { is_available = yes }
|
||||
|
||||
on_create = { settlement_issue_on_create_effect = yes }
|
||||
|
||||
on_accepted = {
|
||||
settlement_issue_on_accepted_default_effect = {
|
||||
NUMBER = 8
|
||||
ARRIVAL_ID = 0075
|
||||
RESET_ID = 0073
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
task_contract_taker = { remove_variable = nomadic_migration_contract_8 }
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
settlement_issue_on_invalidated_default_effect = yes
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
control = { effect = { settlement_issue_control_reward_effect = yes } }
|
||||
|
||||
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
|
||||
|
||||
gold = { effect = { settlement_issue_gold_reward_effect = yes } }
|
||||
|
||||
fertility = { effect = { settlement_issue_fertility_reward_effect = yes } }
|
||||
}
|
||||
}
|
||||
|
||||
nomadic_migration_contract_9 = { # Drawing Lines
|
||||
group = nomadic_settling_group
|
||||
icon = "gfx/interface/icons/icon_county_fertility.dds"
|
||||
use_diplomatic_range = no
|
||||
travel = no
|
||||
|
||||
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
|
||||
|
||||
valid_to_keep = {
|
||||
custom_tooltip = {
|
||||
text = migration_contract_county_ownership_text
|
||||
OR = {
|
||||
task_contract_location.province_owner = task_contract_taker
|
||||
task_contract_location.province_owner.liege = task_contract_taker
|
||||
task_contract_location.province_owner.top_liege = task_contract_taker
|
||||
}
|
||||
}
|
||||
custom_tooltip = {
|
||||
text = migration_contract_county_alt_text
|
||||
task_contract_location.county = {
|
||||
county_control < 90
|
||||
any_neighboring_county = {
|
||||
holder = root.task_contract_taker
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
|
||||
|
||||
valid_to_accept = { is_available = yes }
|
||||
|
||||
on_create = { settlement_issue_on_create_effect = yes }
|
||||
|
||||
on_accepted = {
|
||||
settlement_issue_on_accepted_default_effect = {
|
||||
NUMBER = 9
|
||||
ARRIVAL_ID = 0085
|
||||
RESET_ID = 0083
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
task_contract_taker = { remove_variable = nomadic_migration_contract_9 }
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
settlement_issue_on_invalidated_default_effect = yes
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
control = { effect = { settlement_issue_control_reward_effect = yes } }
|
||||
|
||||
fertility = { effect = { settlement_issue_fertility_reward_effect = yes } }
|
||||
}
|
||||
}
|
||||
|
||||
nomadic_migration_contract_10 = { # The Old Tribe
|
||||
group = nomadic_settling_group
|
||||
icon = "gfx/interface/icons/icon_culture.dds"
|
||||
use_diplomatic_range = no
|
||||
travel = no
|
||||
|
||||
valid_to_create = { settlement_issue_valid_to_create_default_trigger = yes }
|
||||
|
||||
valid_to_keep = {
|
||||
custom_tooltip = {
|
||||
text = migration_contract_county_ownership_text
|
||||
OR = {
|
||||
task_contract_location.province_owner = task_contract_taker
|
||||
task_contract_location.province_owner.liege = task_contract_taker
|
||||
task_contract_location.province_owner.top_liege = task_contract_taker
|
||||
}
|
||||
}
|
||||
custom_tooltip = {
|
||||
text = migration_contract_county_alt_text
|
||||
task_contract_location.county = {
|
||||
county_control < 90
|
||||
has_variable = migration_previous_culture
|
||||
NOT = { var:migration_previous_culture = root.task_contract_taker.culture }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_continue = { settlement_issue_valid_to_continue_default_trigger = yes }
|
||||
|
||||
valid_to_accept = { is_available = yes }
|
||||
|
||||
on_create = { settlement_issue_on_create_effect = yes }
|
||||
|
||||
on_accepted = {
|
||||
settlement_issue_on_accepted_default_effect = {
|
||||
NUMBER = 10
|
||||
ARRIVAL_ID = 0095
|
||||
RESET_ID = 0093
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
task_contract_taker = { remove_variable = nomadic_migration_contract_10 }
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
settlement_issue_on_invalidated_default_effect = yes
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
control = { effect = { settlement_issue_control_reward_effect = yes } }
|
||||
|
||||
herd = { effect = { settlement_issue_herd_reward_effect = yes } }
|
||||
|
||||
success = { effect = { settlement_issue_culture_reward_effect = yes } }
|
||||
}
|
||||
}
|
||||
3458
common/task_contracts/tgp_admin_contracts.txt
Normal file
3458
common/task_contracts/tgp_admin_contracts.txt
Normal file
File diff suppressed because it is too large
Load diff
651
common/task_contracts/tgp_admin_contracts_tova.txt
Normal file
651
common/task_contracts/tgp_admin_contracts_tova.txt
Normal file
|
|
@ -0,0 +1,651 @@
|
|||
# Unsanctioned deity: Village worships excessively
|
||||
unsanctioned_deity = {
|
||||
group = admin_governance_group
|
||||
icon = "gfx/interface/icons/message_feed/heresy.dds"
|
||||
|
||||
valid_to_create = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
task_contract_taker = { valid_governor_contract_trigger = yes }
|
||||
valid_governor_contract_basic_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_governor_contract_trigger = yes
|
||||
custom_tooltip = {
|
||||
text = has_active_governance_issue
|
||||
num_taken_task_contracts < 1
|
||||
}
|
||||
is_available = yes
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
task_contract_taker = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
trigger_event = governor_contract_events_tova.0050
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
if = {
|
||||
limit = { governor_contract_invalidated_message_trigger = yes }
|
||||
governor_contract_invalidated_message_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success = {
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_success_tt_rewards
|
||||
}
|
||||
}
|
||||
success_failure = {
|
||||
positive = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_failure_tt
|
||||
}
|
||||
}
|
||||
sanction_deity = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 10 }
|
||||
change_merit = {
|
||||
value = minor_merit_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_sanctioned_deity_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
burn_shrine = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 6 }
|
||||
change_merit = {
|
||||
value = miniscule_merit_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
claim_offerings = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
add_gold = {
|
||||
value = scope:task_contract.task_contract_location.monthly_income
|
||||
multiply = 40
|
||||
}
|
||||
change_merit = {
|
||||
value = miniscule_merit_loss
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
if = {
|
||||
limit = {
|
||||
secret_siphoned_treasury_is_valid_trigger = {
|
||||
OWNER = scope:task_contract.task_contract_taker
|
||||
TARGET = top_liege
|
||||
}
|
||||
}
|
||||
add_secret = {
|
||||
type = secret_siphoned_treasury
|
||||
target = top_liege
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
debunk_deity = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 4 }
|
||||
change_merit = {
|
||||
value = miniscule_merit_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
add_character_modifier = {
|
||||
modifier = tgp_debunked_deity_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
deity_monks = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
change_influence = {
|
||||
value = miniscule_influence_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
add_piety = {
|
||||
value = medium_piety_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
task_contract_taker ?= {
|
||||
change_influence = minor_influence_loss
|
||||
if = {
|
||||
limit = {
|
||||
has_trait = governor
|
||||
has_trait_xp = {
|
||||
trait = governor
|
||||
value > 0
|
||||
}
|
||||
}
|
||||
add_trait_xp = {
|
||||
trait = governor
|
||||
value = -5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Escaped Justice
|
||||
escaped_justice = {
|
||||
group = admin_governance_group
|
||||
icon = "gfx/interface/icons/message_feed/marshal_job.dds"
|
||||
|
||||
valid_to_create = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
task_contract_taker = { valid_governor_contract_trigger = yes }
|
||||
valid_governor_contract_basic_trigger = yes
|
||||
task_contract_target = {
|
||||
is_travelling = no
|
||||
is_imprisoned = no
|
||||
is_commanding_army = no
|
||||
}
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_governor_contract_trigger = yes
|
||||
|
||||
custom_tooltip = {
|
||||
text = has_active_governance_issue
|
||||
num_taken_task_contracts < 1
|
||||
}
|
||||
is_available = yes
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
task_contract_taker = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
trigger_event = governor_contract_events_tova.0055
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
if = {
|
||||
limit = { governor_contract_invalidated_message_trigger = yes }
|
||||
governor_contract_invalidated_message_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success = {
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_success_tt_rewards
|
||||
}
|
||||
}
|
||||
success_failure = {
|
||||
positive = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_failure_tt
|
||||
}
|
||||
}
|
||||
escapee_persuade = { #Diplomacy
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 6 }
|
||||
change_merit = {
|
||||
value = minor_merit_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
escapee_slain = { #Martial duel
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
add_dread = {
|
||||
value = medium_dread_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
task_contract_location.county = {
|
||||
if = {
|
||||
limit = { county_control < 100 }
|
||||
change_county_control = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
escapee_join_monastery = { #Increase Piety
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
add_piety = {
|
||||
value = medium_piety_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
escapee_shunned = { #Influence Gain
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 4 }
|
||||
change_influence = {
|
||||
value = minor_influence_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
task_contract_taker ?= {
|
||||
change_influence = minor_influence_loss
|
||||
}
|
||||
task_contract_location.county = {
|
||||
change_county_control = -5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Forced Conscription
|
||||
forced_conscription = {
|
||||
group = admin_governance_group
|
||||
icon = "gfx/interface/icons/message_feed/marshal_job.dds"
|
||||
travel = no
|
||||
|
||||
valid_to_create = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
task_contract_taker = { valid_governor_contract_trigger = yes }
|
||||
valid_governor_contract_basic_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_governor_contract_trigger = yes
|
||||
|
||||
custom_tooltip = {
|
||||
text = has_active_governance_issue
|
||||
num_taken_task_contracts < 1
|
||||
}
|
||||
is_available = yes
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
task_contract_taker = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
task_contract_employer = {
|
||||
is_alive = yes
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_employer = {
|
||||
save_scope_as = recruitment_employer
|
||||
}
|
||||
task_contract_taker ?= {
|
||||
trigger_event = governor_contract_events_tova.0060
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
if = {
|
||||
limit = { governor_contract_invalidated_message_trigger = yes }
|
||||
governor_contract_invalidated_message_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success = {
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_success_tt_rewards
|
||||
}
|
||||
}
|
||||
success_failure = {
|
||||
positive = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_failure_tt
|
||||
}
|
||||
}
|
||||
conscripts_bribed = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_location = {
|
||||
add_province_modifier = {
|
||||
modifier = tgp_fattened_vanguard_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
task_contract_taker ?= {
|
||||
remove_short_term_gold = {
|
||||
value = minor_gold_value
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
conscripts_forced = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_location = {
|
||||
add_province_modifier = {
|
||||
modifier = tgp_fattened_vanguard_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
task_contract_location.county = {
|
||||
change_county_control = medium_county_control_loss
|
||||
}
|
||||
task_contract_taker ?= {
|
||||
change_influence = {
|
||||
value = minor_influence_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
conscripts_convinced = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_location = {
|
||||
add_province_modifier = {
|
||||
modifier = tgp_fattened_vanguard_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
task_contract_taker ?= {
|
||||
change_merit = {
|
||||
value = minor_merit_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
conscripts_trade = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_diligent_workers_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
task_contract_taker ?= {
|
||||
change_merit = {
|
||||
value = minor_merit_loss
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
task_contract_taker ?= {
|
||||
change_influence = minor_influence_loss
|
||||
}
|
||||
task_contract_location.county = {
|
||||
change_county_control = -5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Teach Monks Martial Arts
|
||||
combat_train_monks = {
|
||||
group = admin_governance_group
|
||||
icon = "gfx/interface/icons/message_feed/marshal_job.dds"
|
||||
|
||||
valid_to_create = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
task_contract_taker = { valid_governor_contract_trigger = yes }
|
||||
valid_governor_contract_basic_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_governor_contract_trigger = yes
|
||||
|
||||
custom_tooltip = {
|
||||
text = has_active_governance_issue
|
||||
num_taken_task_contracts < 1
|
||||
}
|
||||
is_available = yes
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
task_contract_taker = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
trigger_event = governor_contract_events_tova.0065
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
if = {
|
||||
limit = {governor_contract_invalidated_message_trigger = yes }
|
||||
governor_contract_invalidated_message_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success = {
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_success_tt_rewards
|
||||
}
|
||||
}
|
||||
success_failure = {
|
||||
positive = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_failure_tt
|
||||
}
|
||||
}
|
||||
hire_monks_as_maa = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 4 }
|
||||
}
|
||||
}
|
||||
}
|
||||
hire_monk_as_knight = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
change_influence = minor_influence_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
train_monks = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
change_influence = {
|
||||
value = miniscule_influence_gain
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
increase_governance_effect = { VALUE = 4 }
|
||||
}
|
||||
scope:task_contract.task_contract_location = {
|
||||
add_province_modifier = {
|
||||
modifier = tgp_trained_monks_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
if = {
|
||||
limit = { county_control < 100 }
|
||||
change_county_control = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
station_troops = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
}
|
||||
scope:task_contract.task_contract_location = {
|
||||
add_province_modifier = {
|
||||
modifier = tgp_stationed_troops_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
if = {
|
||||
limit = { county_control < 100 }
|
||||
change_county_control = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
let_marshal_handle = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
scope:task_contract.task_contract_location = {
|
||||
add_province_modifier = {
|
||||
modifier = tgp_adequately_trained_monks_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
if = {
|
||||
limit = { county_control < 100 }
|
||||
change_county_control = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
task_contract_taker ?= {
|
||||
change_influence = minor_influence_loss
|
||||
}
|
||||
task_contract_location.county = {
|
||||
change_county_control = -5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
180
common/task_contracts/tgp_admin_military_contracts.txt
Normal file
180
common/task_contracts/tgp_admin_military_contracts.txt
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
missing_equipment = {
|
||||
group = admin_governance_group
|
||||
icon = "gfx/interface/icons/message_feed/marshal_job.dds"
|
||||
|
||||
valid_to_create = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
task_contract_taker = { valid_governor_contract_trigger = yes }
|
||||
valid_governor_contract_basic_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_governor_contract_trigger = yes
|
||||
custom_tooltip = {
|
||||
text = has_active_governance_issue
|
||||
num_taken_task_contracts < 1
|
||||
}
|
||||
is_available = yes
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
task_contract_taker = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
root.task_contract_location.barony = {
|
||||
save_scope_as = task_contract_location
|
||||
}
|
||||
trigger_event = tgp_governor_contract_event.2000
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
if = {
|
||||
limit = { governor_contract_invalidated_message_trigger = yes }
|
||||
governor_contract_invalidated_message_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success = {
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_success_tt_rewards
|
||||
}
|
||||
}
|
||||
success_failure = {
|
||||
positive = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_failure_tt
|
||||
}
|
||||
}
|
||||
secure_future_deliveries = { # Good governance option
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 10 }
|
||||
change_merit = {
|
||||
value = medium_merit_value
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
|
||||
every_held_title = {
|
||||
limit = { tier = tier_county }
|
||||
custom = custom.every_held_county_capital
|
||||
title_province = {
|
||||
add_province_modifier = {
|
||||
modifier = tgp_well_equipped_soldiers_modifier
|
||||
years = 15
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
if = {
|
||||
limit = { county_control < 100 }
|
||||
change_county_control = 5
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
demand_extra_shipment = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 6 }
|
||||
every_held_title = {
|
||||
limit = { tier = tier_county }
|
||||
custom = custom.every_held_county_capital
|
||||
title_province = {
|
||||
add_province_modifier = {
|
||||
modifier = tgp_well_equipped_soldiers_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
demand_gold = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 2 }
|
||||
add_gold = medium_gold_value
|
||||
}
|
||||
}
|
||||
}
|
||||
demand_best_equipment = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 4 }
|
||||
|
||||
capital_province ?= {
|
||||
add_province_modifier = {
|
||||
modifier = tgp_greatly_equipped_soldiers_modifier
|
||||
years = 15
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
offered_replacements = { # Default outcome if you visit the workshop. Same as "buy_replacements" but without the cost.
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 4 }
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
buy_replacements = { # Safe opt-out if you don't want to travel
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
remove_short_term_gold = medium_gold_value
|
||||
increase_governance_effect = { VALUE = 4 }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
failure_standard = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
change_influence = {
|
||||
value = minor_influence_loss
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
3748
common/task_contracts/tgp_mandala_contracts.txt
Normal file
3748
common/task_contracts/tgp_mandala_contracts.txt
Normal file
File diff suppressed because it is too large
Load diff
685
common/task_contracts/tgp_natural_disaster_contracts.txt
Normal file
685
common/task_contracts/tgp_natural_disaster_contracts.txt
Normal file
|
|
@ -0,0 +1,685 @@
|
|||
#TODO_CD_TGP_AJ; merit needs to be added for all relevant options (positive and negative) for use in China
|
||||
tgp_food_shortage = { #Food Shortage
|
||||
group = admin_governance_group
|
||||
icon = "gfx/interface/icons/situation_types/natural_disaster_generic.dds"
|
||||
|
||||
valid_to_create = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
task_contract_taker = { valid_governor_contract_trigger = yes }
|
||||
valid_governor_contract_basic_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_governor_contract_trigger = yes
|
||||
custom_tooltip = {
|
||||
text = has_active_governance_issue
|
||||
num_taken_task_contracts < 1
|
||||
}
|
||||
is_available = yes
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
task_contract_taker = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
root.task_contract_location.barony = {
|
||||
save_scope_as = task_contract_location
|
||||
}
|
||||
trigger_event = tgp_natural_disaster_contract_event.0001
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
if = {
|
||||
limit = { governor_contract_invalidated_message_trigger = yes }
|
||||
governor_contract_invalidated_message_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success = {
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_natural_disaster_tt_rewards
|
||||
}
|
||||
}
|
||||
failure = {
|
||||
positive = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_natural_disaster_failure_tt
|
||||
}
|
||||
}
|
||||
distribution_of_food = { # Good governance option
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 10 }
|
||||
add_diplomacy_lifestyle_xp = medium_lifestyle_xp
|
||||
add_character_modifier = {
|
||||
modifier = tgp_distribution_of_food_character_modifier
|
||||
years = 10
|
||||
}
|
||||
change_influence = minor_influence_loss
|
||||
every_vassal = {
|
||||
limit = {
|
||||
is_adult = yes
|
||||
}
|
||||
add_stress = minor_stress_impact_gain
|
||||
remove_short_term_gold = minor_gold_value
|
||||
}
|
||||
}
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_distribution_of_food_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
pay_from_own_pocket = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
add_learning_lifestyle_xp = minor_lifestyle_xp
|
||||
add_piety = minor_piety_gain
|
||||
add_character_modifier = {
|
||||
modifier = tgp_pay_from_own_pocket_character_modifier
|
||||
years = 10
|
||||
}
|
||||
remove_short_term_gold = medium_gold_value
|
||||
}
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_pay_from_own_pocket_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
haggle_with_merchants = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
send_interface_toast = {
|
||||
title = tgp_natural_disaster_contract_event.0002.c.tt.success
|
||||
left_icon = scope:task_contract.task_contract_taker
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_haggle_with_merchants_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
add_stewardship_lifestyle_xp = medium_lifestyle_xp
|
||||
remove_short_term_gold = minor_gold_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
haggle_with_merchants_failure = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker ?= {
|
||||
send_interface_toast = {
|
||||
title = tgp_natural_disaster_contract_event.0002.c.tt.failure
|
||||
left_icon = scope:task_contract.task_contract_taker
|
||||
add_prestige = minor_prestige_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
demand_food_from_nobles = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
change_influence = minor_influence_loss
|
||||
add_diplomacy_lifestyle_xp = minor_lifestyle_xp
|
||||
}
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_demand_food_from_nobles_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
change_influence = {
|
||||
value = medium_influence_loss
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
add_piety = {
|
||||
value = minor_piety_loss
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tgp_ravaged_buildings = { #Destroyed by Nature
|
||||
group = admin_governance_group
|
||||
icon = "gfx/interface/icons/situation_types/natural_disaster_generic.dds"
|
||||
|
||||
valid_to_create = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
task_contract_taker = { valid_governor_contract_trigger = yes }
|
||||
valid_governor_contract_basic_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_governor_contract_trigger = yes
|
||||
custom_tooltip = {
|
||||
text = has_active_governance_issue
|
||||
num_taken_task_contracts < 1
|
||||
}
|
||||
is_available = yes
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
task_contract_taker = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
root.task_contract_location.barony = {
|
||||
save_scope_as = task_contract_location
|
||||
}
|
||||
trigger_event = tgp_natural_disaster_contract_event.0005
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
if = {
|
||||
limit = { governor_contract_invalidated_message_trigger = yes }
|
||||
governor_contract_invalidated_message_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success = {
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_natural_disaster_tt_rewards
|
||||
}
|
||||
}
|
||||
failure = {
|
||||
positive = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_natural_disaster_failure_tt
|
||||
}
|
||||
}
|
||||
rebuild_settlement = { # Good governance option
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 10 }
|
||||
add_stewardship_lifestyle_xp = medium_lifestyle_xp
|
||||
add_character_modifier = {
|
||||
modifier = tgp_rebuild_settlement_character_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_rebuild_settlement_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
temporary_shelters = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
add_diplomacy_lifestyle_xp = minor_lifestyle_xp
|
||||
add_piety = minor_piety_gain
|
||||
}
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_temporary_shelters_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
remove_debris = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
send_interface_toast = {
|
||||
title = tgp_natural_disaster_contract_event.0006.c.tt.success
|
||||
left_icon = scope:task_contract.task_contract_taker
|
||||
add_piety = minor_piety_gain
|
||||
add_stewardship_lifestyle_xp = minor_lifestyle_xp
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_remove_debris_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
remove_debris_failure = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker ?= {
|
||||
send_interface_toast = {
|
||||
title = tgp_natural_disaster_contract_event.0006.c.tt.failure
|
||||
left_icon = root
|
||||
change_influence = minor_influence_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
labor_exchange = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
add_character_modifier = {
|
||||
modifier = tgp_labor_exchange_character_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
change_influence = {
|
||||
value = medium_influence_loss
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
add_piety = {
|
||||
value = minor_piety_loss
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tgp_medieval_medicine = { #Treating the Unfortunate
|
||||
group = admin_governance_group
|
||||
icon = "gfx/interface/icons/situation_types/natural_disaster_generic.dds"
|
||||
|
||||
valid_to_create = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
task_contract_taker = { valid_governor_contract_trigger = yes }
|
||||
valid_governor_contract_basic_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_governor_contract_trigger = yes
|
||||
custom_tooltip = {
|
||||
text = has_active_governance_issue
|
||||
num_taken_task_contracts < 1
|
||||
}
|
||||
is_available = yes
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
task_contract_taker = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
root.task_contract_location.barony = {
|
||||
save_scope_as = task_contract_location
|
||||
}
|
||||
trigger_event = tgp_natural_disaster_contract_event.0010
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
if = {
|
||||
limit = { governor_contract_invalidated_message_trigger = yes }
|
||||
governor_contract_invalidated_message_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success = {
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_natural_disaster_tt_rewards
|
||||
}
|
||||
}
|
||||
failure = {
|
||||
positive = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_natural_disaster_failure_tt
|
||||
}
|
||||
}
|
||||
assisting_physician = { # Good governance option
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
increase_governance_effect = { VALUE = 10 }
|
||||
if = {
|
||||
limit = {
|
||||
employs_court_position = court_physician_court_position
|
||||
}
|
||||
random = {
|
||||
chance = 50
|
||||
court_position:court_physician_court_position = {
|
||||
add_learning_skill = 1
|
||||
}
|
||||
add_learning_lifestyle_xp = medium_lifestyle_xp
|
||||
}
|
||||
}
|
||||
}
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_assisting_physician_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
medical_assistance = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
send_interface_toast = {
|
||||
title = tgp_natural_disaster_contract_event.0011.b.tt.success
|
||||
left_icon = scope:task_contract.task_contract_taker
|
||||
add_character_modifier = {
|
||||
modifier = tgp_medical_assistance_character_modifier
|
||||
years = 10
|
||||
}
|
||||
add_learning_lifestyle_xp = minor_lifestyle_xp
|
||||
add_piety = minor_piety_gain
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
medical_assistance_failure = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker ?= {
|
||||
send_interface_toast = {
|
||||
title = tgp_natural_disaster_contract_event.0011.b.tt.failure
|
||||
left_icon = scope:task_contract.task_contract_taker
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_medical_assistance_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
prayers_to_the_people = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
add_learning_lifestyle_xp = minor_lifestyle_xp
|
||||
add_piety = minor_piety_gain
|
||||
add_character_modifier = {
|
||||
modifier = tgp_prayers_to_the_people_character_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
better_pay_up = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
add_gold = medium_gold_value
|
||||
add_piety = medium_piety_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
change_influence = {
|
||||
value = medium_influence_loss
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
add_piety = {
|
||||
value = minor_piety_loss
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tgp_disaster_displacement = { #Provisional Relocation
|
||||
group = admin_governance_group
|
||||
icon = "gfx/interface/icons/situation_types/natural_disaster_generic.dds"
|
||||
|
||||
valid_to_create = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_keep = {
|
||||
task_contract_taker = { valid_governor_contract_trigger = yes }
|
||||
valid_governor_contract_basic_trigger = yes
|
||||
}
|
||||
|
||||
valid_to_accept = {
|
||||
valid_governor_contract_trigger = yes
|
||||
custom_tooltip = {
|
||||
text = has_active_governance_issue
|
||||
num_taken_task_contracts < 1
|
||||
}
|
||||
is_available = yes
|
||||
}
|
||||
|
||||
valid_to_continue = {
|
||||
task_contract_taker = {
|
||||
valid_governor_contract_trigger = yes
|
||||
}
|
||||
}
|
||||
|
||||
on_accepted = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
root.task_contract_location.barony = {
|
||||
save_scope_as = task_contract_location
|
||||
}
|
||||
trigger_event = tgp_natural_disaster_contract_event.0015
|
||||
}
|
||||
}
|
||||
|
||||
on_completed = {
|
||||
}
|
||||
|
||||
on_invalidated = {
|
||||
if = {
|
||||
limit = { governor_contract_invalidated_message_trigger = yes }
|
||||
governor_contract_invalidated_message_effect = yes
|
||||
}
|
||||
}
|
||||
|
||||
task_contract_reward = {
|
||||
success = {
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_natural_disaster_tt_rewards
|
||||
}
|
||||
}
|
||||
failure = {
|
||||
positive = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
custom_tooltip = tgp_admin_contract_natural_disaster_failure_tt
|
||||
}
|
||||
}
|
||||
deployed_troops = { # Good governance option
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
send_interface_toast = {
|
||||
title = tgp_natural_disaster_contract_event.0016.a.tt.success
|
||||
left_icon = scope:task_contract.task_contract_taker
|
||||
increase_governance_effect = { VALUE = 10 }
|
||||
add_martial_lifestyle_xp = medium_lifestyle_xp
|
||||
add_character_modifier = {
|
||||
modifier = tgp_deployed_troops_character_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
deployed_troops_failure = {
|
||||
visible = no
|
||||
effect = {
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
send_interface_toast = {
|
||||
title = tgp_natural_disaster_contract_event.0016.a.tt.failure
|
||||
left_icon = scope:task_contract.task_contract_taker
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_deployed_troops_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
setting_an_example = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
add_dread = medium_dread_gain
|
||||
add_character_modifier = {
|
||||
modifier = tgp_setting_an_example_character_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
confiscate_for_personal_inspection = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
add_gold = medium_gold_value
|
||||
add_piety = medium_piety_loss
|
||||
}
|
||||
}
|
||||
}
|
||||
paying_off_the_looters = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
remove_short_term_gold = medium_gold_value
|
||||
scope:task_contract.task_contract_location.county = {
|
||||
add_county_modifier = {
|
||||
modifier = tgp_paying_off_the_looters_modifier
|
||||
years = 10
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
failure_standard = {
|
||||
visible = no
|
||||
effect = {
|
||||
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||||
save_scope_as = task_contract
|
||||
task_contract_taker ?= {
|
||||
change_influence = {
|
||||
value = medium_influence_loss
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
add_piety = {
|
||||
value = minor_piety_loss
|
||||
multiply = governance_task_contract_tier_value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue