22296 lines
596 KiB
Text
22296 lines
596 KiB
Text
namespace = ep3_laamp_decision_event
|
|
################################
|
|
## Visit Local Settlement Decision
|
|
## ep3_laamp_decision_event.1000-1060
|
|
################################
|
|
# ep3_laamp_decision_event.1000 - Enter the Title of ProvinceName. What do you want to do?
|
|
# ep3_laamp_decision_event.1001 - Page 2
|
|
# ep3_laamp_decision_event.1010 - Stock up on supplies
|
|
# ep3_laamp_decision_event.1020 - Sell an artifact to local peddlers
|
|
# ep3_laamp_decision_event.1025 - Head to the Town Crier to spawn Contract(s)
|
|
#
|
|
# ep3_laamp_decision_event.1030 - Visit the local tavern
|
|
# ep3_laamp_decision_event.1031 - Storyteller
|
|
# ep3_laamp_decision_event.1033 - Recruitment
|
|
# ep3_laamp_decision_event.1035 - Spouse Material
|
|
# ep3_laamp_decision_event.1037 - Master Thief
|
|
#
|
|
# ep3_laamp_decision_event.1040 - Church Holding: Visit the local church grounds
|
|
# ep3_laamp_decision_event.1041 - Healer
|
|
# ep3_laamp_decision_event.1043 - Church
|
|
# ep3_laamp_decision_event.1045 - Garden
|
|
# ep3_laamp_decision_event.1047 - Recruit Physician
|
|
#
|
|
# ep3_laamp_decision_event.1050 - Castle Holding: Visit the local castle grounds
|
|
# ep3_laamp_decision_event.1051 - Training Grounds
|
|
# ep3_laamp_decision_event.1053 - Recruit at Garrison
|
|
# ep3_laamp_decision_event.1055 - Reinforce Men-at-Arms
|
|
# ep3_laamp_decision_event.1057 - Recruit Bodyguard
|
|
#
|
|
# ep3_laamp_decision_event.1060 - City Holding: Visit the local fine craftsmen
|
|
# ep3_laamp_decision_event.1061 - Weaponsmith
|
|
# ep3_laamp_decision_event.1063 - Armorsmith
|
|
# ep3_laamp_decision_event.1065 - Jeweler
|
|
# ep3_laamp_decision_event.1067 - Recruit Quartermaster
|
|
#
|
|
|
|
#The actual adding of the settlement
|
|
scripted_effect 1000_add_settlement_effect = {
|
|
#A holding is a tad bit more memorable
|
|
if = {
|
|
limit = {
|
|
location = { has_holding = yes }
|
|
}
|
|
add_to_variable_list = {
|
|
name = laamp_visited_settlements_list
|
|
target = root.location
|
|
years = 15
|
|
}
|
|
}
|
|
#Otherwise just some rural settlement
|
|
else = {
|
|
add_to_variable_list = {
|
|
name = laamp_visited_settlements_list
|
|
target = root.location
|
|
years = 10
|
|
}
|
|
}
|
|
}
|
|
|
|
#For loc flavor
|
|
scripted_effect 1000_remember_settlement_effect = {
|
|
#Do we already remember this place?
|
|
if = {
|
|
limit = {
|
|
has_variable = laamp_visited_settlements_list
|
|
any_in_list = {
|
|
variable = laamp_visited_settlements_list
|
|
this = scope:visiting_location
|
|
}
|
|
}
|
|
#Replace old entry with a new one
|
|
remove_list_variable = {
|
|
name = laamp_visited_settlements_list
|
|
target = scope:visiting_location
|
|
}
|
|
1000_add_settlement_effect = yes
|
|
}
|
|
#Otherwise just add it to the list
|
|
else = {
|
|
1000_add_settlement_effect = yes
|
|
}
|
|
}
|
|
|
|
#We return to the main event to peruse other options or leave
|
|
scripted_effect 1000_return_to_main_effect = {
|
|
custom_tooltip = ep3_laamp_decision_event.return.tt
|
|
trigger_event = ep3_laamp_decision_event.1000
|
|
}
|
|
|
|
#What was our last location?
|
|
scripted_effect 1000_update_last_location_effect = {
|
|
if = {
|
|
limit = { has_variable = return_from_location }
|
|
remove_variable = return_from_location
|
|
set_variable = {
|
|
name = return_from_location
|
|
value = $LOCATION_FLAG$
|
|
}
|
|
}
|
|
else = {
|
|
set_variable = {
|
|
name = return_from_location
|
|
value = $LOCATION_FLAG$
|
|
}
|
|
}
|
|
}
|
|
|
|
#Clean up variables when we leave the decision
|
|
scripted_effect 1000_clean_up_effect = {
|
|
#Supplies
|
|
remove_variable ?= supply_gold_cost
|
|
remove_variable ?= 1010_guards_summoned
|
|
#Artifacts
|
|
scope:1020_first_artifact_to_sell ?= { 1020_remove_sell_variables_effect = yes } #If we didn't sell any artifacts
|
|
scope:1020_second_artifact_to_sell ?= { 1020_remove_sell_variables_effect = yes }
|
|
scope:1020_third_artifact_to_sell ?= { 1020_remove_sell_variables_effect = yes }
|
|
remove_variable ?= 1021_artifact_sell_screen
|
|
#Town Crier
|
|
remove_variable ?= 1025_first_contract_desc
|
|
remove_variable ?= 1025_second_contract_desc
|
|
remove_variable ?= 1025_third_contract_desc
|
|
#Healer
|
|
scope:1041_health_artifact ?= { remove_variable ?= 1065_accessory_value }
|
|
remove_variable ?= 1041_healer_aptitude
|
|
remove_variable ?= 1041_partner_healer_aptitude
|
|
#Church
|
|
remove_variable ?= 1043_collect_gold_difficulty
|
|
#Weaponsmith
|
|
scope:1061_first_weapon ?= { remove_variable ?= 1061_weapon_value } #If we didn't buy any of the items
|
|
scope:1061_second_weapon ?= { remove_variable ?= 1061_weapon_value }
|
|
scope:1061_third_weapon ?= { remove_variable ?= 1061_weapon_value }
|
|
#Armorer
|
|
scope:1063_first_armor ?= { remove_variable ?= 1063_armor_value } #If we didn't buy any of the items
|
|
scope:1063_second_armor ?= { remove_variable ?= 1063_armor_value }
|
|
scope:1063_third_armor ?= { remove_variable ?= 1063_armor_value }
|
|
#Jeweler
|
|
scope:1065_first_accessory ?= { remove_variable ?= 1065_accessory_value } #If we didn't buy any of the items
|
|
scope:1065_second_accessory ?= { remove_variable ?= 1065_accessory_value }
|
|
scope:1065_third_accessory ?= { remove_variable ?= 1065_accessory_value }
|
|
#Main
|
|
clear_variable_list = list_of_options
|
|
remove_variable ?= list_of_options
|
|
remove_variable ?= return_from_location
|
|
#Un-engage us from the decision
|
|
remove_variable ?= ep3_laamp_decision_1000_is_visiting
|
|
}
|
|
|
|
#Find someone whos company you tolerate
|
|
scripted_trigger 1000_appropriate_visiting_partner_basic_trigger = {
|
|
location = root.location
|
|
is_available = yes
|
|
age >= 10
|
|
OR = {
|
|
opinion = {
|
|
target = root
|
|
value >= 25
|
|
}
|
|
has_any_good_relationship_with_character_trigger = { CHARACTER = root }
|
|
}
|
|
NOR = {
|
|
has_relation_potential_rival = root
|
|
has_relation_victim = root
|
|
has_relation_bully = root
|
|
#... don't bring your second-in-command while away, duh
|
|
has_court_position = second_camp_officer
|
|
has_variable = 1010_payment_child
|
|
}
|
|
}
|
|
|
|
#Are we not in a city?
|
|
scripted_trigger 1000_is_a_nomadic_holding_trigger = {
|
|
scope:visiting_location = {
|
|
is_nomadic_location_trigger = yes
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
|
|
#No options left - I tried to do this the easy way, but checking the existence of variable_lists wouldn't let me
|
|
scripted_trigger 1000_time_to_go_home_trigger = {
|
|
has_variable = return_from_location
|
|
#Did we have, and are we done with the Tribal / No Settlement option?
|
|
exists = scope:laamp_decision_finished_tavern_option
|
|
#Did we have, and are we done with the Church Holding option?
|
|
trigger_if = {
|
|
limit = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
}
|
|
exists = scope:laamp_decision_finished_church_option
|
|
}
|
|
#Did we have, and are we done with the Castle Holding option?
|
|
trigger_if = {
|
|
limit = {
|
|
scope:visiting_location = { has_holding_type = castle_holding }
|
|
}
|
|
exists = scope:laamp_decision_finished_castle_option
|
|
}
|
|
#Did we have, and are we done with the City Holding option?
|
|
trigger_if = {
|
|
limit = {
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
}
|
|
exists = scope:laamp_decision_finished_craftsmen_option
|
|
}
|
|
#Did we have, and are we done with the Sell Artifact option?
|
|
trigger_if = {
|
|
limit = {
|
|
OR = {
|
|
is_target_in_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_artifact_option
|
|
}
|
|
exists = scope:1020_first_artifact_to_sell
|
|
}
|
|
}
|
|
exists = scope:laamp_decision_sold_artifact
|
|
}
|
|
#Did we have, and are we done with the Buy Supplies option?
|
|
trigger_if = {
|
|
limit = {
|
|
domicile ?= { provisions = max_provisions }
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else = { exists = scope:laamp_decision_bought_supplies }
|
|
#Did we have, and are we done with the Contract option?
|
|
OR = {
|
|
has_variable = 1025_has_contracted_recently
|
|
exists = scope:laamp_decision_has_contracted
|
|
}
|
|
}
|
|
|
|
#Don't sell levelling banners
|
|
scripted_trigger 1000_is_unsellable_artifact_trigger = {
|
|
OR = {
|
|
has_variable = banner_house
|
|
has_variable = banner_dynasty
|
|
has_variable = 1025_treasure_map
|
|
}
|
|
}
|
|
|
|
#Prioritize sick or ill people if we're heading to a Church Holding
|
|
scripted_trigger 1000_has_illness_or_wound_to_treat_trigger = {
|
|
OR = {
|
|
has_treatable_disease_trigger = yes
|
|
has_trait = wounded_1
|
|
has_wounds_trigger = yes
|
|
}
|
|
}
|
|
|
|
#It's either this or a massive, nested trigger_if in the Main Square event :eyes:
|
|
scripted_trigger 1000_done_with_second_trigger = {
|
|
exists = scope:been_to_second
|
|
OR = {
|
|
#Only had Supply & Contract
|
|
AND = {
|
|
OR = {
|
|
exists = scope:laamp_decision_bought_supplies
|
|
domicile ?= { provisions = max_provisions }
|
|
}
|
|
NOT = {
|
|
is_target_in_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_artifact_option
|
|
}
|
|
}
|
|
OR = {
|
|
exists = scope:laamp_decision_has_contracted
|
|
has_variable = 1025_has_contracted_recently
|
|
}
|
|
}
|
|
#Done all of them
|
|
AND = {
|
|
OR = {
|
|
exists = scope:laamp_decision_bought_supplies
|
|
domicile ?= { provisions = max_provisions }
|
|
}
|
|
is_target_in_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_artifact_option
|
|
}
|
|
exists = scope:laamp_decision_sold_artifact
|
|
exists = scope:laamp_decision_has_contracted
|
|
}
|
|
}
|
|
}
|
|
|
|
#Set up some reusable trait triggers
|
|
scripted_trigger 1010_has_friendly_traits = {
|
|
OR = {
|
|
has_trait = gregarious
|
|
has_trait = trusting
|
|
has_trait = compassionate
|
|
has_trait = forgiving
|
|
has_trait = generous
|
|
has_trait = fickle
|
|
has_trait = calm
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_has_uninterested_traits = {
|
|
OR = {
|
|
has_trait = callous
|
|
has_trait = cynical
|
|
has_trait = arrogant
|
|
has_trait = fickle
|
|
has_trait = arbitrary
|
|
has_trait = patient
|
|
has_trait = sadistic
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_has_commerce_traits = {
|
|
OR = {
|
|
has_trait = greedy
|
|
has_trait = deceitful
|
|
has_trait = ambitious
|
|
has_trait = diligent
|
|
has_trait = impatient
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_has_standoffish_traits = {
|
|
OR = {
|
|
has_trait = shy
|
|
has_trait = craven
|
|
has_trait = humble
|
|
has_trait = paranoid
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_has_irrational_traits = {
|
|
OR = {
|
|
has_trait = eccentric
|
|
has_trait = lunatic
|
|
has_trait = possessed
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1011_has_no_applicable_traits = {
|
|
1010_has_friendly_traits = no
|
|
1010_has_uninterested_traits = no
|
|
1010_has_commerce_traits = no
|
|
1010_has_standoffish_traits = no
|
|
1010_has_irrational_traits = no
|
|
}
|
|
|
|
|
|
######################################################################
|
|
# MAIN
|
|
# ep3_laamp_decision_event.1000
|
|
######################################################################
|
|
# > Visit Tavern
|
|
# > Holding Option (Visit Church / Visit Castle Grounds / Visit Craftsmen District)
|
|
# > Page 2
|
|
# > Leave Settlement
|
|
|
|
|
|
|
|
#Enter the Title of BaronyName (Constantinople etc). What do you want to do?
|
|
ep3_laamp_decision_event.1000 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1000.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#INTRO: Action / Unique Location / Holding Variations
|
|
first_valid = {
|
|
##RETURN: We've returned to this scene, now what
|
|
#RETURN: We have no options left - time to go home
|
|
triggered_desc = {
|
|
trigger = { 1000_time_to_go_home_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_returned_home
|
|
}
|
|
#RETURN: Return from where?
|
|
first_valid = {
|
|
#RETURN: Unique locations
|
|
#Constantinople
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
exists = scope:is_constantinople
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_returned_constantinople_01
|
|
}
|
|
random_valid = {
|
|
#RETURN: We've returned from Page 2
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:second }
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_returned_from_second
|
|
}
|
|
#RETURN: We've returned from the Tavern
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:tavern }
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_returned_from_tavern
|
|
}
|
|
#RETURN: We've returned from the Church
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:church_grounds }
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_returned_from_church
|
|
}
|
|
#RETURN: We've returned from the Castle grounds
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:castle_grounds }
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_returned_from_castle
|
|
}
|
|
#RETURN: We've returned from the Craftsmen
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:craftsmen }
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_returned_from_craftsmen
|
|
}
|
|
#RETURN: Generics to mix in
|
|
#Generics
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
exists = scope:neighboring_county
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_returned_generic_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { has_variable = return_from_location }
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_returned_generic_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = { has_variable = return_from_location }
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_returned_generic_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
scope:visiting_location = { has_holding = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_returned_generic_04
|
|
}
|
|
}
|
|
}
|
|
##FIRST TIME: Opening scene, paint a picture
|
|
#FIRST TIME: Unique locations: Constantinople
|
|
triggered_desc = {
|
|
trigger = { exists = scope:is_constantinople }
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_constantinople
|
|
}
|
|
#FIRST TIME: Holding: Intro depending on type of holding (tribal/church/castle/city)
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_tribal_holding_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_tribal_holding_02
|
|
}
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_church_holding
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = { has_holding_type = castle_holding }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_castle_holding
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_intro_city_holding
|
|
}
|
|
}
|
|
#OUTRO: Returned to main square
|
|
first_valid = {
|
|
##RETURN HOME
|
|
#RETURN HOME: No partner, time to go home
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_time_to_go_home_trigger = yes
|
|
NOT = { exists = scope:visiting_partner }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_home
|
|
}
|
|
#RETURN HOME: Partner feels it's time to go home
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_time_to_go_home_trigger = yes
|
|
exists = scope:visiting_partner
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_partner_home
|
|
}
|
|
##RETURN
|
|
#RETURN: We've returned to this scene, what do you see
|
|
##Weather fx
|
|
first_valid = {
|
|
#RETURN: Region - Scandinavia - Summer
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location } #Block all RETURN outros for unique locations, they are handled in unique RETURN intro
|
|
middle_of_year_season_trigger = yes #Light out
|
|
NOR = {
|
|
has_variable = 1000_is_currently_raining
|
|
has_variable = 1000_is_currently_snowing
|
|
}
|
|
scope:visiting_location = { geographical_region = world_europe_north }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_scandinavia_summer_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
has_variable = 1000_is_currently_raining
|
|
scope:visiting_location = { geographical_region = world_europe_north }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_scandinavia_summer_returned_02
|
|
}
|
|
#RETURN: Region - Scandinavia - Winter
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_europe_north }
|
|
has_variable = 1000_is_currently_snowing
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_scandinavia_winter_returned_01
|
|
}
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
end_of_year_season_trigger = yes #Dark out
|
|
scope:visiting_location = { geographical_region = world_europe_north }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_scandinavia_winter_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
end_of_year_season_trigger = yes #Dark out
|
|
scope:visiting_location = { geographical_region = world_europe_north }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_scandinavia_winter_returned_03
|
|
}
|
|
}
|
|
#RETURN: Region - Britannia
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
NOR = {
|
|
has_variable = 1000_is_currently_raining
|
|
has_variable = 1000_is_currently_foggy
|
|
}
|
|
scope:visiting_location = { geographical_region = world_europe_west_britannia }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_britannia_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
has_variable = 1000_is_currently_raining
|
|
scope:visiting_location = { geographical_region = world_europe_west_britannia }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_britannia_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
has_variable = 1000_is_currently_foggy
|
|
scope:visiting_location = { geographical_region = world_europe_west_britannia }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_britannia_returned_03
|
|
}
|
|
##No Weather fx
|
|
random_valid = {
|
|
#RETURN: Region - Europe
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
middle_of_year_season_trigger = yes
|
|
scope:visiting_location = {
|
|
geographical_region = world_europe
|
|
NOT = { geographical_region = world_europe_north }
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_europe_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = {
|
|
geographical_region = world_europe
|
|
NOT = { geographical_region = world_europe_north }
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_europe_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = {
|
|
geographical_region = world_europe
|
|
NOT = { geographical_region = world_europe_north }
|
|
faith = { religion_tag = christianity_religion }
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_europe_returned_03
|
|
}
|
|
#RETURN: Region - Iberia
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_europe_west_iberia }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_iberia_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_europe_west_iberia }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_iberia_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_europe_west_iberia }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_iberia_returned_03
|
|
}
|
|
#RETURN: Region - Middle East
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_middle_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_middle_east_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_middle_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_middle_east_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_middle_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_middle_east_returned_03
|
|
}
|
|
#RETURN: Region - India
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_india_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_india_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_india_returned_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_india_returned_04
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_india_returned_05
|
|
}
|
|
|
|
#RETURN: Region - Steppe
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_steppe }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_steppe_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_steppe }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_steppe_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_steppe }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_steppe_returned_03
|
|
}
|
|
#RETURN: Region - North Africa
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
middle_of_year_season_trigger = yes
|
|
scope:visiting_location = { geographical_region = world_africa_north }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_north_africa_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_africa_north }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_north_africa_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_africa_north }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_north_africa_returned_03
|
|
}
|
|
#RETURN: Region - West Africa
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_africa_west }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_west_africa_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_africa_west }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_west_africa_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_africa_west }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_west_africa_returned_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_africa_west }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_west_africa_returned_04
|
|
}
|
|
#RETURN: Region - East Africa
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_africa_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_east_africa_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_africa_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_east_africa_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_africa_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_east_africa_returned_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_africa_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_east_africa_returned_04
|
|
}
|
|
#RETURN: Region - Generic
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
current_season_summer = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_04
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_05
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
middle_of_year_season_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_06
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
middle_of_year_season_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_07
|
|
}
|
|
#RETURN: Partner looks around
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_partner ?= {
|
|
NOR = {
|
|
has_trait = cynical
|
|
has_trait = paranoid
|
|
has_trait = callous
|
|
}
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_partner_generic_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_partner ?= { is_adult = no }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_partner_generic_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_partner ?= { is_adult = no }
|
|
NOR = {
|
|
has_trait = irritable
|
|
has_trait = wrathful
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_partner_generic_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_partner ?= {
|
|
NOR = {
|
|
has_trait = cynical
|
|
has_trait = lifestyle_reveler
|
|
any_secret = {
|
|
type = secret_non_believer
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_partner_generic_04
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_partner ?= {
|
|
OR = {
|
|
has_relation_friend = root
|
|
has_relation_lover = root
|
|
is_close_family_of = root
|
|
}
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_partner_generic_05
|
|
}
|
|
}
|
|
}
|
|
##FIRST TIME
|
|
#FIRST TIME: Revisiting Constantinople
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { has_variable = return_from_location }
|
|
exists = scope:is_constantinople
|
|
any_in_list = {
|
|
variable = laamp_visited_settlements_list
|
|
this = scope:visiting_location
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_revisit_constantinople
|
|
}
|
|
#FIRST TIME: It's Constantinople
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { has_variable = return_from_location }
|
|
exists = scope:is_constantinople
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_constantinople
|
|
}
|
|
#FIRST TIME: Our visiting partner flavor
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { has_variable = return_from_location }
|
|
NOT = { exists = scope:is_unique_location }
|
|
exists = scope:visiting_partner
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_partner_01
|
|
}
|
|
}
|
|
#FIRST TIME: We've been to this settlement before
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { has_variable = return_from_location }
|
|
NOT = { exists = scope:is_unique_location }
|
|
any_in_list = {
|
|
variable = laamp_visited_settlements_list
|
|
this = scope:visiting_location
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_revisit
|
|
}
|
|
#FIRST TIME: New place
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { has_variable = return_from_location }
|
|
NOT = { exists = scope:is_unique_location }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_new
|
|
}
|
|
}
|
|
}
|
|
theme = landless_adventurer
|
|
#Backgrounds & fx
|
|
#Church Holding
|
|
override_sound = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
}
|
|
reference = "event:/SFX/Events/Themes/sfx_event_theme_type_faith"
|
|
}
|
|
#Castle Holding
|
|
override_sound = {
|
|
trigger = {
|
|
scope:visiting_location = { has_holding_type = castle_holding }
|
|
}
|
|
reference = "event:/SFX/Events/Themes/sfx_event_theme_type_martial"
|
|
}
|
|
#City Holding
|
|
override_sound = {
|
|
trigger = {
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
}
|
|
reference = "event:/SFX/Events/Themes/sfx_event_theme_type_stewardship"
|
|
}
|
|
#Swedish summer
|
|
override_effect_2d = {
|
|
trigger = { has_variable = 1000_is_currently_raining }
|
|
reference = rain
|
|
}
|
|
widget = {
|
|
is_shown = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_europe_north }
|
|
has_variable = 1000_is_currently_snowing
|
|
}
|
|
gui = "event_window_widget_vfx_snow"
|
|
container = "foreground_shader_vfx_container"
|
|
}
|
|
#HOME: Tribe
|
|
override_background = {
|
|
trigger = {
|
|
1000_time_to_go_home_trigger = yes
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
reference = bp1_bonfire
|
|
}
|
|
#HOME
|
|
override_background = {
|
|
trigger = { 1000_time_to_go_home_trigger = yes}
|
|
reference = alley_night
|
|
}
|
|
#Snowing in tribal Scandinavia
|
|
override_background = {
|
|
trigger = { is_snowy_rural_scandinavia_location_trigger = yes }
|
|
reference = ep2_hunt_snowy_forest
|
|
}
|
|
#Tribal Holding
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = { has_holding_type = tribal_holding }
|
|
}
|
|
reference = village
|
|
}
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
reference = mpo_camp_steppe
|
|
}
|
|
#Constantinople
|
|
override_background = {
|
|
trigger = { exists = scope:is_constantinople }
|
|
reference = ep3_constantinople
|
|
}
|
|
#Church Holding
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
}
|
|
reference = holy_site_generic
|
|
}
|
|
#Castle Holding
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = { has_holding_type = castle_holding }
|
|
}
|
|
reference = courtyard_location
|
|
}
|
|
#City Holding
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
}
|
|
reference = ep3_city_gate
|
|
}
|
|
#Fallback
|
|
override_background = { reference = market }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#Time to go home
|
|
triggered_animation = {
|
|
trigger = { 1000_time_to_go_home_trigger = yes }
|
|
animation = boredom
|
|
}
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = personality_forgiving
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = personality_greedy
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = personality_cynical
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = personality_irrational
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = personality_coward
|
|
}
|
|
animation = personality_compassionate
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = { 1010_has_irrational_traits = yes }
|
|
animation = personality_irrational
|
|
}
|
|
triggered_animation = {
|
|
trigger = { 1010_has_standoffish_traits = yes }
|
|
animation = personality_coward
|
|
}
|
|
triggered_animation = {
|
|
trigger = { 1010_has_uninterested_traits = yes }
|
|
animation = personality_callous
|
|
}
|
|
animation = personality_content
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#For loc purposes
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:visiting_location }
|
|
}
|
|
location = { save_scope_as = visiting_location }
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:neighboring_county }
|
|
}
|
|
location = {
|
|
random_neighboring_province = {
|
|
limit = { is_location_valid_for_travel_event_on_land = yes }
|
|
save_scope_as = neighboring_county
|
|
}
|
|
}
|
|
}
|
|
random_dummy_gender_effect = yes
|
|
#To rain or not to rain
|
|
if = {
|
|
limit = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
middle_of_year_season_trigger = yes
|
|
location_has_winter_trigger = no
|
|
scope:visiting_location = {
|
|
OR = {
|
|
geographical_region = world_europe_north
|
|
geographical_region = world_europe_west_britannia
|
|
}
|
|
}
|
|
}
|
|
random_list = {
|
|
50 = {
|
|
#No rain
|
|
}
|
|
50 = {
|
|
set_variable = 1000_is_currently_raining
|
|
}
|
|
}
|
|
}
|
|
#To snow or not to snow
|
|
if = {
|
|
limit = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
end_of_year_season_trigger = yes
|
|
location_has_winter_trigger = yes
|
|
scope:visiting_location = { geographical_region = world_europe_north }
|
|
}
|
|
random_list = {
|
|
50 = {
|
|
#No rain
|
|
}
|
|
50 = {
|
|
set_variable = 1000_is_currently_snowing
|
|
}
|
|
}
|
|
}
|
|
#To fog or not to fog
|
|
if = {
|
|
limit = {
|
|
has_variable = return_from_location
|
|
NOT = { exists = scope:is_unique_location }
|
|
scope:visiting_location = { geographical_region = world_europe_west_britannia }
|
|
}
|
|
random_list = {
|
|
50 = {
|
|
#No rain
|
|
}
|
|
50 = {
|
|
set_variable = 1000_is_currently_foggy
|
|
}
|
|
}
|
|
}
|
|
#This. Is. _Constantinople_
|
|
if = {
|
|
limit = { scope:visiting_location.barony = title:b_constantinople }
|
|
save_scope_as = is_constantinople
|
|
save_scope_as = is_unique_location #In case we add more unique locations
|
|
}
|
|
#Assemble the list of options the first time this window pops
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:first_pass }
|
|
}
|
|
#Buy supply option - not really any gate since it might change during your visit
|
|
|
|
#Sell artifact option
|
|
if = {
|
|
#We actually have an artifact to sell
|
|
limit = {
|
|
any_character_artifact = {
|
|
count >= 1
|
|
1000_is_unsellable_artifact_trigger = no
|
|
}
|
|
}
|
|
add_to_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_artifact_option
|
|
}
|
|
}
|
|
#Town Crier option - not really any gate, as long as we don't cap amount of contracts I guess?
|
|
|
|
#Visit the local tavern, added for all holding types
|
|
add_to_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_tavern_option
|
|
}
|
|
#Church Holding: Visit the local church grounds
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
}
|
|
add_to_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_church_option
|
|
}
|
|
}
|
|
#Castle Holding: Visit the local castle grounds
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = { has_holding_type = castle_holding }
|
|
}
|
|
add_to_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_castle_option
|
|
}
|
|
}
|
|
#City Holding: Visit the local fine craftsmen
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
}
|
|
add_to_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_craftsman_option
|
|
}
|
|
}
|
|
#Also find someone to bring with you from your crew to display in the bottom-left corner - Spouse/Friend/Marshal/Bodyguard
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:visiting_partner }
|
|
}
|
|
if = {
|
|
limit = {
|
|
any_courtier = { 1000_appropriate_visiting_partner_basic_trigger = yes }
|
|
}
|
|
random_courtier = {
|
|
limit = { 1000_appropriate_visiting_partner_basic_trigger = yes }
|
|
weight = {
|
|
base = 1
|
|
#If we desparately want to bring sick relatives to the doctor
|
|
modifier = {
|
|
add = 1000
|
|
is_close_family_of = root
|
|
1000_has_illness_or_wound_to_treat_trigger = yes
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 500
|
|
is_spouse_of = root
|
|
1000_has_illness_or_wound_to_treat_trigger = yes
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 100
|
|
has_relation_lover = root
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 20
|
|
is_spouse_of = root
|
|
}
|
|
modifier = {
|
|
add = 15
|
|
is_primary_heir_of = root
|
|
}
|
|
modifier = {
|
|
add = 10
|
|
OR = {
|
|
has_court_position = bodyguard_court_position
|
|
has_court_position = quartermaster_camp_officer
|
|
has_court_position = master_of_spoils_camp_officer
|
|
}
|
|
}
|
|
modifier = {
|
|
add = 5
|
|
is_close_family_of = root
|
|
}
|
|
modifier = {
|
|
add = 2
|
|
has_trait = ambitious
|
|
}
|
|
modifier = {
|
|
add = -5
|
|
has_trait = lazy
|
|
}
|
|
}
|
|
save_scope_as = visiting_partner
|
|
}
|
|
|
|
}
|
|
}
|
|
save_scope_as = first_pass
|
|
}
|
|
}
|
|
#Church Holding Option: Visit the local church grounds
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to look at the church
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_church_grounds }
|
|
desc = ep3_laamp_decision_event.1000.b_second
|
|
}
|
|
#First time looking at the church
|
|
desc = ep3_laamp_decision_event.1000.b
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#Do we actually have the church option available
|
|
custom_tooltip = {
|
|
text = tapped_out.tt
|
|
is_target_in_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_church_option
|
|
}
|
|
NOT = { exists = scope:laamp_decision_finished_church_option }
|
|
}
|
|
}
|
|
show_as_unavailable = {
|
|
#Hide the options when we're _all_ done
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:laamp_decision_finished_church_option
|
|
1000_time_to_go_home_trigger = no
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
reason = church_holding
|
|
#Actual transition event
|
|
custom_tooltip = ep3_laamp_decision_event.1000.b.tt
|
|
trigger_event = ep3_laamp_decision_event.1040
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Castle Holding Option: Visit the local castle grounds
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to look at the castle
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_castle_grounds }
|
|
desc = ep3_laamp_decision_event.1000.c_second
|
|
}
|
|
#First time looking at the castle
|
|
desc = ep3_laamp_decision_event.1000.c
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#Do we actually have the castle option available
|
|
custom_tooltip = {
|
|
text = tapped_out.tt
|
|
is_target_in_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_castle_option
|
|
}
|
|
NOT = { exists = scope:laamp_decision_finished_castle_option }
|
|
}
|
|
}
|
|
show_as_unavailable = {
|
|
#Hide the options when we're _all_ done
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:laamp_decision_finished_castle_option
|
|
1000_time_to_go_home_trigger = no
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
reason = castle_holding
|
|
#Actual transition event
|
|
custom_tooltip = ep3_laamp_decision_event.1000.c.tt
|
|
trigger_event = ep3_laamp_decision_event.1050
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#City Holding Option: Visit the local fine craftsmen
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to look at the craftsmen
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_craftsmen }
|
|
desc = ep3_laamp_decision_event.1000.d_second
|
|
}
|
|
#First time looking at craftsmen
|
|
desc = ep3_laamp_decision_event.1000.d
|
|
}
|
|
}
|
|
}
|
|
#Do we have few enough options to display this option on the main page
|
|
trigger = {
|
|
#Do we actually have the craftsmenned option available
|
|
custom_tooltip = {
|
|
text = tapped_out.tt
|
|
is_target_in_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_craftsman_option
|
|
}
|
|
NOT = { exists = scope:laamp_decision_finished_craftsmen_option }
|
|
}
|
|
}
|
|
show_as_unavailable = {
|
|
#Hide the options when we're _all_ done
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:laamp_decision_finished_craftsmen_option
|
|
1000_time_to_go_home_trigger = no
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
reason = city_holding
|
|
#We got kick-off!
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:main_square }
|
|
#Actual transition event
|
|
custom_tooltip = ep3_laamp_decision_event.1000.d.tt
|
|
trigger_event = ep3_laamp_decision_event.1060
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Tribal Holding Option: Visit the local tavern
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to the tavern
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_tavern }
|
|
desc = ep3_laamp_decision_event.1000.a_second
|
|
}
|
|
#They're nomads
|
|
triggered_desc = {
|
|
trigger = { 1000_is_a_nomadic_holding_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1000.a_nomads
|
|
}
|
|
#First time visiting the tavern
|
|
desc = ep3_laamp_decision_event.1000.a_tavern
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#Do we actually have the tavern option available
|
|
custom_tooltip = {
|
|
text = tapped_out.tt
|
|
is_target_in_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_tavern_option
|
|
}
|
|
NOT = { exists = scope:laamp_decision_finished_tavern_option }
|
|
}
|
|
}
|
|
show_as_unavailable = {
|
|
#Hide the options when we're _all_ done
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:laamp_decision_finished_tavern_option
|
|
1000_time_to_go_home_trigger = no
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
reason = visit_tavern
|
|
#Actual transition event
|
|
if = {
|
|
limit = { 1000_is_a_nomadic_holding_trigger = yes }
|
|
custom_tooltip = ep3_laamp_decision_event.1000.a_nomads.tt
|
|
}
|
|
else = { custom_tooltip = ep3_laamp_decision_event.1000.a.tt }
|
|
trigger_event = ep3_laamp_decision_event.1030
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Page 2: Consider additional options
|
|
option = {
|
|
name = ep3_laamp_decision_event.1000.h
|
|
trigger = {
|
|
#If we were initially maxed out on provisions but lost provisions while visiting other parts...
|
|
trigger_if = {
|
|
limit = {
|
|
NOT = { exists = scope:been_to_second }
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else_if = {
|
|
limit = { exists = scope:been_to_second }
|
|
custom_tooltip = {
|
|
text = tapped_out.tt
|
|
1000_done_with_second_trigger = no
|
|
}
|
|
}
|
|
#Otherwise we're just done here
|
|
trigger_else = {
|
|
custom_tooltip = {
|
|
text = tapped_out.tt
|
|
NOT = { exists = scope:laamp_decision_second_finished }
|
|
}
|
|
}
|
|
#Nothing here for the AI
|
|
is_ai = no
|
|
}
|
|
show_as_unavailable = {
|
|
#Hide the options when we're _all_ done
|
|
trigger_if = {
|
|
limit = {
|
|
OR = {
|
|
AND = {
|
|
exists = scope:laamp_decision_second_finished
|
|
1000_time_to_go_home_trigger = no
|
|
}
|
|
AND = {
|
|
exists = scope:been_to_second
|
|
1000_time_to_go_home_trigger = no
|
|
}
|
|
}
|
|
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
#We got kick-off!
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:main_square }
|
|
#Actual transition event
|
|
custom_tooltip = ep3_laamp_decision_event.1000.h.tt
|
|
trigger_event = ep3_laamp_decision_event.1001
|
|
}
|
|
#Let's go back to the camp
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#No options left, partner flavor
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_time_to_go_home_trigger = yes
|
|
exists = scope:visiting_partner
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.i_home_partner
|
|
}
|
|
#No options left
|
|
triggered_desc = {
|
|
trigger = { 1000_time_to_go_home_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1000.i_home
|
|
}
|
|
#Let's get outta here
|
|
desc = ep3_laamp_decision_event.1000.i
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = ep3_laamp_decision_event.1000.i.tt
|
|
#For loc reasons
|
|
1000_remember_settlement_effect = yes
|
|
1000_clean_up_effect = yes
|
|
ai_chance = { base = 50 }
|
|
}
|
|
after = {
|
|
remove_variable ?= 1000_is_currently_raining
|
|
remove_variable ?= 1000_is_currently_snowing
|
|
remove_variable ?= 1000_is_currently_foggy
|
|
#For all options that are NOT Page 2
|
|
if = {
|
|
limit = {
|
|
has_variable = return_from_location
|
|
NOT = { var:return_from_location = flag:main_square }
|
|
}
|
|
#We got kick-off!
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:main_square }
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
######################################################################
|
|
# PAGE 2
|
|
# ep3_laamp_decision_event.1001
|
|
######################################################################
|
|
# > Buy Supplies
|
|
# > Sell Artifact
|
|
# > Town Crier
|
|
# > Back to Main Square
|
|
|
|
#Return to Page 2
|
|
scripted_effect 1001_return_to_second_effect = {
|
|
custom_tooltip = ep3_laamp_decision_event.return.tt
|
|
trigger_event = ep3_laamp_decision_event.1001
|
|
}
|
|
|
|
scripted_effect 1001_been_to_second_effect = {
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:been_to_second }
|
|
}
|
|
save_scope_as = been_to_second
|
|
}
|
|
}
|
|
|
|
|
|
#Page 2 - Consider additional options
|
|
ep3_laamp_decision_event.1001 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1000.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#INTRO
|
|
first_valid = {
|
|
##RETURN: We've returned to this scene, now what
|
|
#RETURN: We have no options left - time to go home
|
|
triggered_desc = {
|
|
trigger = { 1000_done_with_second_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1001.desc_intro_return_finished
|
|
}
|
|
#RETURN: You just returned from assaulting the supply merchant
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:supply_merchant
|
|
has_variable = 1010_guards_summoned
|
|
}
|
|
desc = ep3_laamp_decision_event.1001.desc_intro_returned_from_assaulting_supplies
|
|
}
|
|
#RETURN: Return from where?
|
|
random_valid = {
|
|
#RETURN: We've returned from Supply Merchant
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:supply_merchant }
|
|
desc = ep3_laamp_decision_event.1001.desc_intro_returned_from_supplies
|
|
}
|
|
#RETURN: We've returned from Artifact Peddler
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:artifact_peddler }
|
|
desc = ep3_laamp_decision_event.1001.desc_intro_returned_from_artifacts
|
|
}
|
|
#RETURN: We've returned from Town Crier
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:contract }
|
|
desc = ep3_laamp_decision_event.1001.desc_intro_returned_from_contract
|
|
}
|
|
#RETURN: Generics to mix in
|
|
random_valid = {
|
|
#Generics
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_second }
|
|
desc = ep3_laamp_decision_event.1001.desc_intro_returned_generic_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_second }
|
|
desc = ep3_laamp_decision_event.1001.desc_intro_returned_generic_02
|
|
}
|
|
}
|
|
}
|
|
#FIRST TIME
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
NOT = { exists = scope:been_to_second }
|
|
}
|
|
desc = ep3_laamp_decision_event.1001.desc_intro_nomads
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_second }
|
|
}
|
|
desc = ep3_laamp_decision_event.1001.desc_intro
|
|
}
|
|
}
|
|
#OUTRO
|
|
first_valid = {
|
|
##RETURN HOME
|
|
#RETURN HOME: No partner, time to go home
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_done_with_second_trigger = yes
|
|
NOT = { exists = scope:visiting_partner }
|
|
}
|
|
desc = ep3_laamp_decision_event.1001.desc_outro_return_finished
|
|
}
|
|
#RETURN HOME: Partner feels it's time to go home
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_done_with_second_trigger = yes
|
|
exists = scope:visiting_partner
|
|
}
|
|
desc = ep3_laamp_decision_event.1001.desc_outro_return_partner_finished
|
|
}
|
|
#RETURN: Virtually re-using the ones from Main Square
|
|
random_valid = {
|
|
#RETURN: Region - Europe
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
middle_of_year_season_trigger = yes
|
|
scope:visiting_location = {
|
|
geographical_region = world_europe
|
|
NOT = { geographical_region = world_europe_north }
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_europe_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = {
|
|
geographical_region = world_europe
|
|
NOT = { geographical_region = world_europe_north }
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_europe_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = {
|
|
geographical_region = world_europe
|
|
NOT = { geographical_region = world_europe_north }
|
|
faith = { religion_tag = christianity_religion }
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_europe_returned_03
|
|
}
|
|
#RETURN: Region - Iberia
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_europe_west_iberia }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_iberia_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_europe_west_iberia }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_iberia_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_europe_west_iberia }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_iberia_returned_03
|
|
}
|
|
#RETURN: Region - Middle East
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_middle_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_middle_east_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_middle_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_middle_east_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_middle_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_middle_east_returned_03
|
|
}
|
|
#RETURN: Region - India
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_india_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_india_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_india_returned_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_india_returned_04
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_india_returned_05
|
|
}
|
|
|
|
#RETURN: Region - Steppe
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_steppe }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_steppe_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_steppe }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_steppe_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_steppe }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_steppe_returned_03
|
|
}
|
|
#RETURN: Region - North Africa
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
middle_of_year_season_trigger = yes
|
|
scope:visiting_location = { geographical_region = world_africa_north }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_north_africa_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_africa_north }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_north_africa_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_africa_north }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_north_africa_returned_03
|
|
}
|
|
#RETURN: Region - West Africa
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_africa_west }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_west_africa_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_africa_west }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_west_africa_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_africa_west }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_west_africa_returned_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_africa_west }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_west_africa_returned_04
|
|
}
|
|
#RETURN: Region - East Africa
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_africa_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_east_africa_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_africa_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_east_africa_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_africa_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_east_africa_returned_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_location = { geographical_region = world_africa_east }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_regional_east_africa_returned_04
|
|
}
|
|
#RETURN: Region - Generic
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_second }
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_second }
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
middle_of_year_season_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_second }
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_04
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_second }
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_05
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
middle_of_year_season_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_06
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
middle_of_year_season_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_generic_07
|
|
}
|
|
#RETURN: Partner looks around
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_partner ?= {
|
|
NOR = {
|
|
has_trait = cynical
|
|
has_trait = paranoid
|
|
has_trait = callous
|
|
}
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_partner_generic_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_partner ?= { is_adult = no }
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_partner_generic_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_partner ?= { is_adult = no }
|
|
NOR = {
|
|
has_trait = irritable
|
|
has_trait = wrathful
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_partner_generic_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_partner ?= {
|
|
NOR = {
|
|
has_trait = cynical
|
|
has_trait = lifestyle_reveler
|
|
any_secret = {
|
|
type = secret_non_believer
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_partner_generic_04
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_second
|
|
scope:visiting_partner ?= {
|
|
OR = {
|
|
has_relation_friend = root
|
|
has_relation_lover = root
|
|
is_close_family_of = root
|
|
}
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1000.desc_outro_returned_partner_generic_05
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
theme = landless_adventurer
|
|
override_sound = { reference = "event:/SFX/Events/Themes/sfx_event_theme_type_generic" }
|
|
#Indenting backgrounds for easier folding
|
|
#HOME: Tribe
|
|
override_background = {
|
|
trigger = {
|
|
1000_time_to_go_home_trigger = yes
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
reference = bp1_bonfire
|
|
}
|
|
#HOME
|
|
override_background = {
|
|
trigger = { 1000_time_to_go_home_trigger = yes}
|
|
reference = alley_night
|
|
}
|
|
#Snowing in tribal Scandinavia
|
|
override_background = {
|
|
trigger = { is_snowy_rural_scandinavia_location_trigger = yes }
|
|
reference = ep2_hunt_snowy_forest
|
|
}
|
|
#Tribe Holding
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = { has_holding_type = tribal_holding }
|
|
}
|
|
reference = village
|
|
}
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
reference = mpo_camp_steppe
|
|
}
|
|
#Constantinople
|
|
override_background = {
|
|
trigger = { exists = scope:is_constantinople }
|
|
reference = ep3_constantinople
|
|
}
|
|
#Church Holding
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
}
|
|
reference = holy_site_generic
|
|
}
|
|
#Castle Holding
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = { has_holding_type = castle_holding }
|
|
}
|
|
reference = courtyard_location
|
|
}
|
|
#City Holding
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
}
|
|
reference = ep3_city_gate
|
|
}
|
|
#Fallback
|
|
override_background = { reference = market }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#Time to go home
|
|
triggered_animation = {
|
|
trigger = { 1000_time_to_go_home_trigger = yes }
|
|
animation = boredom
|
|
}
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = personality_content
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = thinking
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = personality_callous
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = eccentric
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = shame
|
|
}
|
|
animation = personality_bold
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = { 1010_has_irrational_traits = yes }
|
|
animation = personality_irrational
|
|
}
|
|
triggered_animation = {
|
|
trigger = { 1010_has_standoffish_traits = yes }
|
|
animation = personality_coward
|
|
}
|
|
triggered_animation = {
|
|
trigger = { 1010_has_uninterested_traits = yes }
|
|
animation = personality_cynical
|
|
}
|
|
animation = personality_rational
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#It just works. (To get the appropriate loc when you snub the artifact vendor at the last minute, then refresh when we exit & re-enter)
|
|
remove_variable ?= 1021_artifact_sell_screen
|
|
}
|
|
#Option: Stock up on supplies
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to look at supplies
|
|
triggered_desc = {
|
|
trigger = { exists = scope:did_not_buy_supplies }
|
|
desc = ep3_laamp_decision_event.1001.a_second
|
|
}
|
|
#First time looking at supplies
|
|
desc = ep3_laamp_decision_event.1001.a
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#You recently botched threatening this merchant
|
|
trigger_if = {
|
|
limit = { has_variable = 1010_guards_summoned }
|
|
custom_tooltip = {
|
|
text = guards_were_summoned.tt
|
|
NOT = { has_variable = 1010_guards_summoned }
|
|
}
|
|
}
|
|
#Already got a hand-out from this merchant
|
|
trigger_else_if = {
|
|
limit = { scope:laamp_decision_bought_supplies ?= flag:handout }
|
|
custom_tooltip = {
|
|
text = already_received_supplies.tt
|
|
NOT = { scope:laamp_decision_bought_supplies ?= flag:handout }
|
|
}
|
|
}
|
|
#Already bought provisions this visit
|
|
trigger_else_if = {
|
|
limit = { exists = scope:laamp_decision_bought_supplies }
|
|
custom_tooltip = {
|
|
text = already_bought_supplies.tt
|
|
NOT = { exists = scope:laamp_decision_bought_supplies }
|
|
}
|
|
}
|
|
#Already at max provisions
|
|
trigger_else = {
|
|
custom_tooltip = {
|
|
text = full_on_supplies.tt
|
|
NOT = {
|
|
domicile ?= { provisions = max_provisions }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Since this is semi-dynamic, show it always
|
|
show_as_unavailable = { always = yes }
|
|
reason = buy_provisions
|
|
#For loc
|
|
1001_been_to_second_effect = yes
|
|
#Actual transition event
|
|
custom_tooltip = ep3_laamp_decision_event.1001.a.tt
|
|
trigger_event = ep3_laamp_decision_event.1010
|
|
}
|
|
#Option: Sell an artifact to local peddlers
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to sell artifacts
|
|
triggered_desc = {
|
|
trigger = { exists = scope:did_not_sell_artifact }
|
|
desc = ep3_laamp_decision_event.1001.b_second
|
|
}
|
|
#First time selling artifacts
|
|
desc = ep3_laamp_decision_event.1001.b
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#Do we actually have the artifact option available
|
|
trigger_if = {
|
|
limit = {
|
|
is_target_in_variable_list = {
|
|
name = list_of_options
|
|
target = flag:has_artifact_option
|
|
}
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else_if = {
|
|
limit = { exists = scope:laamp_decision_sold_artifact }
|
|
custom_tooltip = {
|
|
text = already_sold_artifact.tt
|
|
#We haven't already sold an artifact
|
|
NOT = { exists = scope:laamp_decision_sold_artifact }
|
|
}
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
show_as_unavailable = {
|
|
#Only show it if it was available from the start
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_decision_sold_artifact }
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
reason = sell_artifacts
|
|
#For loc
|
|
1001_been_to_second_effect = yes
|
|
#Actual transition event
|
|
custom_tooltip = ep3_laamp_decision_event.1001.b.tt
|
|
#Back to smirk-town with you
|
|
if = {
|
|
limit = { exists = scope:attempted_artifact_haggle }
|
|
trigger_event = ep3_laamp_decision_event.1021
|
|
}
|
|
#Otherwise regular peddler
|
|
else = { trigger_event = ep3_laamp_decision_event.1020 }
|
|
}
|
|
#Option: Head to the Town Crier for contracts
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to look at contracts
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_contract }
|
|
desc = ep3_laamp_decision_event.1001.c_second
|
|
}
|
|
#First time looking at contracts
|
|
desc = ep3_laamp_decision_event.1001.c
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#You are still on cooldown (you can go in to the board once to realize the board is empty, then the option greys out)
|
|
trigger_if = {
|
|
limit = { scope:laamp_decision_has_contracted ?= flag:no }
|
|
custom_tooltip = {
|
|
text = no_contracts.tt
|
|
always = no
|
|
}
|
|
}
|
|
#You have spawned contracts during this visit
|
|
trigger_else_if = {
|
|
limit = {
|
|
OR = {
|
|
has_variable = 1025_has_contracted_recently
|
|
scope:laamp_decision_has_contracted ?= flag:yes
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = already_spawned_contracts.tt
|
|
always = no
|
|
}
|
|
}
|
|
#Otherwise, have a look (except for the AI, who take contracts through a different system)
|
|
trigger_else = { is_ai = no }
|
|
}
|
|
#Notice board can be empty, so no real cooldown?
|
|
show_as_unavailable = { always = yes }
|
|
reason = spawn_contracts
|
|
#For loc
|
|
1001_been_to_second_effect = yes
|
|
#Actual transition event
|
|
custom_tooltip = ep3_laamp_decision_event.1001.c.tt
|
|
trigger_event = ep3_laamp_decision_event.1025
|
|
}
|
|
#Go back to Main Square
|
|
option = {
|
|
name = ep3_laamp_decision_event.1001.d
|
|
#Time to close off the option?
|
|
if = {
|
|
limit = { 1000_done_with_second_trigger = yes }
|
|
save_scope_as = laamp_decision_second_finished
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
NOT = { exists = scope:been_to_second }
|
|
}
|
|
save_scope_as = been_to_second
|
|
}
|
|
#We got kick-off!
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:second }
|
|
#Go back to the main event
|
|
1000_return_to_main_effect = yes
|
|
}
|
|
}
|
|
|
|
|
|
######################################################################
|
|
# BUY SUPPLIES
|
|
# ep3_laamp_decision_event.1010
|
|
######################################################################
|
|
|
|
#Remember merchant for loc
|
|
scripted_effect 1010_remember_vendor_character_effect = {
|
|
#Do we already remember them?
|
|
if = {
|
|
limit = {
|
|
has_variable = laamp_remembered_$GUILD$s_list #Notice the 's' right after GUILD (= 'merchants' instead of 'merchant')
|
|
any_in_list = {
|
|
variable = laamp_remembered_$GUILD$s_list
|
|
this = $CHARACTER$
|
|
}
|
|
}
|
|
#Replace old entry with a new one
|
|
remove_list_variable = {
|
|
name = laamp_remembered_$GUILD$s_list
|
|
target = $CHARACTER$
|
|
}
|
|
add_to_variable_list = {
|
|
name = laamp_remembered_$GUILD$s_list
|
|
target = $CHARACTER$
|
|
years = 10
|
|
}
|
|
}
|
|
#Otherwise just add 'em to the list
|
|
else = {
|
|
add_to_variable_list = {
|
|
name = laamp_remembered_$GUILD$s_list
|
|
target = $CHARACTER$
|
|
years = 10
|
|
}
|
|
}
|
|
}
|
|
|
|
#Set the correct variable to adjust loc for the Buy Supply option
|
|
scripted_effect 1010_bought_supplies_effect = {
|
|
save_scope_value_as = {
|
|
name = laamp_decision_bought_supplies
|
|
value = flag:none
|
|
}
|
|
#Go back to the main event
|
|
hidden_effect = { 1001_return_to_second_effect = yes }
|
|
}
|
|
|
|
#No prisoners. No rivals. No service.
|
|
scripted_trigger 1010_basic_merchant_checks_trigger = {
|
|
NOT = {
|
|
has_any_bad_relationship_with_character_trigger = { CHARACTER = root }
|
|
}
|
|
is_available_adult = yes
|
|
#No double-dipping
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_supply_merchant }
|
|
this != scope:laamp_supply_merchant
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_artifact_peddler }
|
|
this != scope:laamp_artifact_peddler
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_town_crier }
|
|
this != scope:laamp_town_crier
|
|
}
|
|
|
|
#Tavern
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_storyteller }
|
|
this != scope:laamp_storyteller
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_first_recruit }
|
|
this != scope:laamp_first_recruit
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_second_recruit }
|
|
this != scope:laamp_second_recruit
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_third_recruit }
|
|
this != scope:laamp_third_recruit
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_generic_jane }
|
|
this != scope:laamp_generic_jane
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_spouse_material }
|
|
this != scope:laamp_spouse_material
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_hooded_figure }
|
|
this != scope:laamp_hooded_figure
|
|
}
|
|
|
|
#Church
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_healer_character }
|
|
this != scope:laamp_healer_character
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_clergy_character }
|
|
this != scope:laamp_clergy_character
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_physician_recruit }
|
|
this != scope:laamp_physician_recruit
|
|
}
|
|
|
|
#Castle
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_plain_guard }
|
|
this != scope:laamp_plain_guard
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_talented_guard }
|
|
this != scope:laamp_talented_guard
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_disgruntled_moa }
|
|
this != scope:laamp_disgruntled_moa
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_maa_reinforcer }
|
|
this != scope:laamp_maa_reinforcer
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_bodyguard_recruit }
|
|
this != scope:laamp_bodyguard_recruit
|
|
}
|
|
|
|
#City
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_weaponsmith_craftsman }
|
|
this != scope:laamp_weaponsmith_craftsman
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_armorer_craftsman}
|
|
this != scope:laamp_armorer_craftsman
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_jeweler_craftsman }
|
|
this != scope:laamp_jeweler_craftsman
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_quartermaster_recruit }
|
|
this != scope:laamp_quartermaster_recruit
|
|
}
|
|
}
|
|
|
|
#Scripty-scripted repeat triggers to check if we already saved this character
|
|
scripted_trigger 1010_is_a_saved_merchant_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_merchants_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_is_a_saved_peddler_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_peddlers_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_is_a_saved_crier_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_criers_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
#Tavern
|
|
scripted_trigger 1010_is_a_saved_storyteller_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_storytellers_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_is_a_saved_thief_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_thiefs_list #Don't judge me, 'thiefs' is most consequential
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
#Church
|
|
scripted_trigger 1010_is_a_saved_healer_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_healers_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_is_a_saved_clergy_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_clergys_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_is_a_saved_physician_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_physicians_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
#Castle
|
|
scripted_trigger 1010_is_a_saved_bodyguard_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_bodyguards_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
#Craftsmen
|
|
scripted_trigger 1010_is_a_saved_weaponsmith_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_weaponsmiths_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_is_a_saved_armorer_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_armorers_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_is_a_saved_jeweler_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_jewelers_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_is_a_saved_quartermaster_trigger = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_remembered_quartermasters_list
|
|
target = scope:saved_character_check
|
|
}
|
|
}
|
|
}
|
|
|
|
#Can we actually?
|
|
scripted_trigger 1010_would_trade_child_for_supplies_trigger = {
|
|
OR = {
|
|
AND = {
|
|
#Normal people wouldn't trade away a child for a 'top-up'
|
|
OR = {
|
|
has_trait = greedy
|
|
has_trait = callous
|
|
}
|
|
scope:1010_supply_less_than ?= flag:1010_less_than_100_supply
|
|
}
|
|
AND = {
|
|
exists = scope:1010_supply_less_than
|
|
OR = {
|
|
scope:1010_supply_less_than = flag:1010_less_than_20_supply
|
|
scope:1010_supply_less_than = flag:1010_less_than_40_supply
|
|
scope:1010_supply_less_than = flag:1010_less_than_60_supply
|
|
scope:1010_supply_less_than = flag:1010_less_than_80_supply
|
|
}
|
|
}
|
|
}
|
|
exists = scope:payment_child
|
|
}
|
|
|
|
#Don't trade away your heir
|
|
scripted_trigger 1010_payment_child_trigger = {
|
|
age >= 2
|
|
age <= 15
|
|
is_courtier_of = root
|
|
NOT = { is_primary_heir_of = root }
|
|
save_temporary_scope_as = child_check
|
|
root.primary_title = {
|
|
place_in_line_of_succession = {
|
|
target = scope:child_check
|
|
value >= 3
|
|
}
|
|
}
|
|
is_available = yes
|
|
location = scope:visiting_location
|
|
#Let's just avoid some technical headaches if we brought a kid along
|
|
trigger_if = {
|
|
limit = { exists = scope:visiting_partner }
|
|
this != scope:visiting_partner
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1010_is_thieving_character_trigger = {
|
|
#intrigue >= extremely_high_skill_rating
|
|
NOR = {
|
|
has_trait = honest
|
|
has_trait = just
|
|
}
|
|
is_adult = yes
|
|
}
|
|
|
|
#Mark that child
|
|
scripted_effect 1010_mark_chosen_child_effect = {
|
|
scope:payment_child = {
|
|
if = {
|
|
limit = { has_variable = 1010_payment_child }
|
|
remove_variable ?= 1010_payment_child
|
|
set_variable = {
|
|
name = 1010_payment_child
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
else = {
|
|
set_variable = {
|
|
name = 1010_payment_child
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Supply duel for your highest skill stat
|
|
scripted_effect 1010_highest_skill_duel_effect = {
|
|
if = {
|
|
limit = { highest_skill = diplomacy }
|
|
1010_duel_effect = { SKILL = diplomacy }
|
|
}
|
|
else_if = {
|
|
limit = { highest_skill = stewardship }
|
|
1010_duel_effect = { SKILL = stewardship }
|
|
}
|
|
else_if = {
|
|
limit = { highest_skill = intrigue }
|
|
1010_duel_effect = { SKILL = intrigue }
|
|
}
|
|
else_if = {
|
|
limit = { highest_skill = learning }
|
|
1010_duel_effect = { SKILL = learning }
|
|
}
|
|
else_if = {
|
|
limit = { highest_skill = martial }
|
|
1010_duel_effect = { SKILL = martial }
|
|
}
|
|
else_if = {
|
|
limit = { highest_skill_including_prowess = prowess }
|
|
1010_duel_effect = { SKILL = prowess }
|
|
}
|
|
}
|
|
|
|
#Actual supply duel effect
|
|
scripted_effect 1010_duel_effect = {
|
|
duel = {
|
|
skill = $SKILL$
|
|
target = scope:laamp_supply_merchant
|
|
#Success: Half supply for free
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.a_$SKILL$.success
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1010.a_$SKILL$.success
|
|
left_icon = root
|
|
right_icon = scope:laamp_supply_merchant
|
|
#Get 1/4 of your way to 100% (So if max is 100 and you have 20 provisions, you should gain 40 provisions)
|
|
domicile ?= { change_provisions = quarter_to_max_provisions_value }
|
|
#Set up the cooldown for the convince-ction
|
|
set_variable = {
|
|
name = 1010_has_convinced_recently
|
|
value = flag:success
|
|
days = visit_settlement_minimum_cooldown_days #Sync this with fail & critical_fail
|
|
}
|
|
#Determine why we can't return to this option
|
|
save_scope_value_as = {
|
|
name = laamp_decision_bought_supplies
|
|
value = flag:handout
|
|
}
|
|
#Go back to the main event
|
|
hidden_effect = { 1001_return_to_second_effect = yes }
|
|
}
|
|
}
|
|
#Failure: Increased price for supplies
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -20
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.a_$SKILL$.failure
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1010.a_$SKILL$.failure
|
|
left_icon = root
|
|
right_icon = scope:laamp_supply_merchant
|
|
custom_tooltip = ep3_laamp_decision_event.1010.a.failure.tt
|
|
#Set up the cooldown for the convince-ction
|
|
set_variable = {
|
|
name = 1010_has_convinced_recently
|
|
value = flag:fail
|
|
days = visit_settlement_minimum_cooldown_days #Sync this with success, critical_fail & the tooltip, currently displayed in 'months' (plural)
|
|
}
|
|
#Price increased - try again
|
|
1001_return_to_second_effect = yes
|
|
}
|
|
}
|
|
#Critical Failure: The local guards are summoned
|
|
5 = {
|
|
trigger = {
|
|
root = {
|
|
OR = {
|
|
highest_skill = martial
|
|
highest_skill_including_prowess = prowess
|
|
}
|
|
}
|
|
}
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
}
|
|
min = 5
|
|
desc = ep3_laamp_decision_event.1010.a_$SKILL$.critical_failure
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1010.a_$SKILL$.critical_failure
|
|
left_icon = root
|
|
right_icon = scope:laamp_supply_merchant
|
|
custom_tooltip = ep3_laamp_decision_event.1010.a.failure.tt
|
|
#Set up the cooldown for the convince-ction
|
|
set_variable = {
|
|
name = 1010_has_convinced_recently
|
|
value = flag:fail
|
|
days = visit_settlement_minimum_cooldown_days #Sync this with success & critical_fail
|
|
}
|
|
#Quite the tussle
|
|
increase_wounds_effect = { REASON = fight }
|
|
#This merchant doesn't want to see you again
|
|
progress_towards_rival_effect = {
|
|
REASON = rival_tried_to_intimidate_merchant
|
|
CHARACTER = scope:laamp_supply_merchant
|
|
OPINION = default_rival_opinion
|
|
}
|
|
#And you will not be going back to supply merchant, but feel free to look at the greyed out option
|
|
set_variable = 1010_guards_summoned
|
|
#Determine why we can't return to this option
|
|
save_scope_value_as = {
|
|
name = laamp_decision_bought_supplies
|
|
value = flag:none
|
|
}
|
|
#Go back to the main event
|
|
1001_return_to_second_effect = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
#Stock 'Em Up
|
|
ep3_laamp_decision_event.1010 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1010.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#Intro
|
|
first_valid = {
|
|
#This is a CITY HOLDING, aschually. More refined buyers.
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_buy_supplies }
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_posh_stalls
|
|
}
|
|
#We've returned to this scene
|
|
triggered_desc = {
|
|
trigger = { exists = scope:did_not_buy_supplies }
|
|
desc = ep3_laamp_decision_event.1010.desc_returned
|
|
}
|
|
#First time in this scene
|
|
desc = ep3_laamp_decision_event.1010.desc
|
|
}
|
|
#Returning customer
|
|
#FIRST TIME: The merchant remembers you
|
|
random_valid = {
|
|
#Friendly
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_buy_supplies }
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_friendly_supply_merchant }
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_reused_merchant_reaction_01
|
|
}
|
|
#Slightly standoff-ish
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_buy_supplies }
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_antagonistic_supply_merchant }
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_reused_merchant_reaction_02
|
|
}
|
|
}
|
|
#FIRST TIME: The merchant remembers you: First INTRO part of DIALOGUE
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_buy_supplies }
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_reused_merchant_intro
|
|
}
|
|
#FIRST TIME: The merchant remembers you: Random MID part of DIALOGUE
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_buy_supplies }
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_reused_merchant_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_buy_supplies }
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_reused_merchant_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_buy_supplies }
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_reused_merchant_03
|
|
}
|
|
}
|
|
#FIRST TIME: The merchant remembers you: Random OUTRO part of DIALOGUE
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_buy_supplies }
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_reused_merchant_outro_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_buy_supplies }
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_reused_merchant_outro_02
|
|
}
|
|
}
|
|
#First time meeting merchant
|
|
#FIRST TIME: Merchant REACTION
|
|
first_valid = {
|
|
#Friendly
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOR = {
|
|
exists = scope:did_not_buy_supplies
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
scope:laamp_supply_merchant = { 1010_has_friendly_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_trait_gregarious_new
|
|
}
|
|
#Uninterested
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOR = {
|
|
exists = scope:did_not_buy_supplies
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
scope:laamp_supply_merchant = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_trait_callous_new
|
|
}
|
|
#Business-minded
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOR = {
|
|
exists = scope:did_not_buy_supplies
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
scope:laamp_supply_merchant = { 1010_has_commerce_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_trait_greedy_new
|
|
}
|
|
#A bit awkward
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOR = {
|
|
exists = scope:did_not_buy_supplies
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
scope:laamp_supply_merchant = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_trait_shy_new
|
|
}
|
|
#Irrational
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOR = {
|
|
exists = scope:did_not_buy_supplies
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
scope:laamp_supply_merchant = { 1010_has_irrational_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_trait_eccentric_new
|
|
}
|
|
#Generic
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOR = {
|
|
exists = scope:did_not_buy_supplies
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
scope:laamp_supply_merchant = { 1011_has_no_applicable_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_generic_new_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOR = {
|
|
exists = scope:did_not_buy_supplies
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
scope:laamp_supply_merchant = { 1011_has_no_applicable_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_generic_new_01
|
|
}
|
|
}
|
|
}
|
|
#FIRST TIME in this scene: Random DIALOGUE
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = {
|
|
exists = scope:did_not_buy_supplies
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_new_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = {
|
|
exists = scope:did_not_buy_supplies
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_new_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = {
|
|
exists = scope:did_not_buy_supplies
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_new_03
|
|
}
|
|
#"Cruel world innit?"
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = {
|
|
exists = scope:did_not_buy_supplies
|
|
exists = scope:laamp_recurring_supply_merchant
|
|
}
|
|
scope:laamp_supply_merchant = {
|
|
OR = {
|
|
has_trait = compassionate
|
|
AND = {
|
|
age >= 30
|
|
age >= root.age_plus_25
|
|
}
|
|
}
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_special_new_04
|
|
}
|
|
}
|
|
#Return to scene
|
|
#RETURN: Merchant REACTION
|
|
first_valid = {
|
|
#Friendly
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_friendly_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_trait_gregarious_return
|
|
}
|
|
#Uninterested
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_trait_callous_return
|
|
}
|
|
#Business-minded
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_commerce_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_trait_greedy_return
|
|
}
|
|
#A bit awkward
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_trait_shy_return
|
|
}
|
|
#Irrational
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_irrational_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_trait_eccentric_return
|
|
}
|
|
#Generic
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1011_has_no_applicable_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_generic_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1011_has_no_applicable_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_generic_returned_02
|
|
}
|
|
}
|
|
}
|
|
#RETURN: Random DIALOGUE
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_irrational_traits = no } #For some quirkyness
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_irrational_traits = no } #For some quirkyness
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_irrational_traits = no } #For some quirkyness
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_returned_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
#Irrational is seeing you for the first time (again)
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_irrational_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_new_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
#Irrational is seeing you for the first time (again)
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_irrational_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_new_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
#Irrational is seeing you for the first time (again)
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_irrational_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_new_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
#Irrational is seeing you for the first time (again)
|
|
exists = scope:did_not_buy_supplies
|
|
scope:laamp_supply_merchant = { 1010_has_irrational_traits = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_special_new_04
|
|
}
|
|
}
|
|
first_valid = {
|
|
#RETURN: Sneaky Partner
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:1010_potentiaL_thievery
|
|
exists = scope:did_not_buy_supplies
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_sneaky_partner_returned
|
|
}
|
|
#FIRST TIME: Sneaky Partner
|
|
triggered_desc = {
|
|
trigger = { exists = scope:1010_potentiaL_thievery }
|
|
desc = ep3_laamp_decision_event.1010.desc_outro_sneaky_partner
|
|
}
|
|
}
|
|
}
|
|
theme = stewardship
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
reference = army_camp
|
|
}
|
|
override_background = { reference = market }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#Potential thief
|
|
triggered_animation = {
|
|
trigger = { exists = scope:1010_potentiaL_thievery }
|
|
animation = personality_dishonorable
|
|
}
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = personality_forgiving
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = personality_greedy
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = personality_cynical
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = personality_irrational
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = personality_coward
|
|
}
|
|
animation = personality_content
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
camera = camera_event_scheme_center_look_semi_right
|
|
animation = steward
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_supply_merchant
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_supply_merchant = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = personality_compassionate
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_supply_merchant = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = personality_callous
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_supply_merchant = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = admiration
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_supply_merchant = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = personality_coward
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_supply_merchant = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = personality_irrational
|
|
}
|
|
animation = steward
|
|
}
|
|
lower_left_portrait = {
|
|
trigger = { exists = scope:payment_child }
|
|
character = scope:payment_child
|
|
}
|
|
lower_center_portrait = {
|
|
trigger = {
|
|
exists = scope:other_parent
|
|
trigger_if = {
|
|
limit = { exists = scope:visiting_partner }
|
|
scope:other_parent != scope:visiting_partner
|
|
}
|
|
}
|
|
character = scope:other_parent
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Find our merchant
|
|
if = {
|
|
#Do we already have a merchant?
|
|
limit = {
|
|
NOT = { exists = scope:laamp_supply_merchant }
|
|
}
|
|
#Has this person been our supply merchant in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_merchant_trigger = yes
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
}
|
|
save_scope_as = laamp_supply_merchant
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_supply_merchant
|
|
scope:laamp_supply_merchant = {
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
has_trait = greedy
|
|
has_trait = craven
|
|
has_trait = wrathful
|
|
has_trait = deceitful
|
|
1010_has_uninterested_traits = yes
|
|
}
|
|
}
|
|
save_scope_as = laamp_antagonistic_supply_merchant
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_antagonistic_supply_merchant }
|
|
OR = {
|
|
has_trait = gregarious
|
|
has_trait = compassionate
|
|
has_trait = honest
|
|
has_trait = eccentric
|
|
has_trait = forgiving
|
|
has_trait = trusting
|
|
}
|
|
}
|
|
save_scope_as = laamp_friendly_supply_merchant
|
|
}
|
|
}
|
|
}
|
|
#Otherwise find a merchant in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_supply_merchant }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
}
|
|
save_scope_as = laamp_supply_merchant
|
|
}
|
|
}
|
|
#Otherwise create a merchant
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_supply_merchant }
|
|
}
|
|
#Create merchant to stuff in pool
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_supply_merchant
|
|
}
|
|
}
|
|
#Remember the merchant
|
|
1010_remember_vendor_character_effect = { GUILD = merchant CHARACTER = scope:laamp_supply_merchant }
|
|
}
|
|
#Determine how much supply we are buying, reflect this in cost and options available (don't trade away children for 5% supply...)
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
#If we haven't bought provisions already
|
|
NOT = { exists = scope:1010_supply_value }
|
|
#Or if we went here, then used provisions elsewhere in the holding and came back
|
|
AND = {
|
|
exists = scope:1010_supply_value
|
|
NOR = {
|
|
scope:1010_supply_value = domicile.max_provisions
|
|
scope:1010_supply_value = domicile.provisions
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
#Less than 20% supply
|
|
limit = {
|
|
domicile ?= { provisions <= twenty_percent_provisions_value }
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1010_supply_less_than
|
|
value = flag:1010_less_than_20_supply
|
|
}
|
|
}
|
|
else_if = {
|
|
#Less than 40% supply
|
|
limit = {
|
|
domicile ?= { provisions <= forty_percent_provisions_value }
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1010_supply_less_than
|
|
value = flag:1010_less_than_40_supply
|
|
}
|
|
}
|
|
else_if = {
|
|
#Less than 60% supply
|
|
limit = {
|
|
domicile ?= { provisions <= sixty_percent_provisions_value }
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1010_supply_less_than
|
|
value = flag:1010_less_than_60_supply
|
|
}
|
|
}
|
|
else_if = {
|
|
#Less than 80% supply
|
|
limit = {
|
|
domicile ?= { provisions <= eighty_percent_provisions_value }
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1010_supply_less_than
|
|
value = flag:1010_less_than_80_supply
|
|
}
|
|
}
|
|
else_if = {
|
|
#Less than 100% supply
|
|
limit = {
|
|
domicile ?= { provisions < max_provisions }
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1010_supply_less_than
|
|
value = flag:1010_less_than_100_supply
|
|
}
|
|
}
|
|
set_variable = {
|
|
name = supply_gold_cost
|
|
value = {
|
|
value = domicile.max_provisions
|
|
subtract = domicile.provisions
|
|
#Now we have the missing provisions value
|
|
multiply = 0.05
|
|
round = yes
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1010_supply_value
|
|
value = domicile.provisions
|
|
}
|
|
}
|
|
#Find a suitable child. Don't trade away your heir.
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:payment_child }
|
|
1010_would_trade_child_for_supplies_trigger = yes
|
|
}
|
|
#Did we already pick a child and are actually decision-scumming?
|
|
if = {
|
|
limit = {
|
|
any_child = {
|
|
1010_payment_child_trigger = yes
|
|
has_variable = 1010_payment_child
|
|
}
|
|
}
|
|
random_child = {
|
|
limit = {
|
|
1010_payment_child_trigger = yes
|
|
has_variable = 1010_payment_child
|
|
}
|
|
save_scope_as = payment_child
|
|
#Refresh the mark
|
|
1010_mark_chosen_child_effect = yes
|
|
}
|
|
}
|
|
#Otherwise pick a child
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:payment_child }
|
|
any_child = { 1010_payment_child_trigger = yes }
|
|
}
|
|
every_child = {
|
|
limit = { 1010_payment_child_trigger = yes }
|
|
add_to_list = list_of_unimportant_children
|
|
}
|
|
random_in_list = {
|
|
list = list_of_unimportant_children
|
|
weight = {
|
|
base = 0
|
|
#Look for children who can't inherit first
|
|
modifier = {
|
|
is_female = yes
|
|
root = {
|
|
OR = {
|
|
faith = { has_doctrine_parameter = male_dominated_law }
|
|
has_realm_law = male_only_law
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
modifier = {
|
|
is_male = yes
|
|
root = {
|
|
OR = {
|
|
faith = { has_doctrine_parameter = female_dominated_law }
|
|
has_realm_law = female_only_law
|
|
}
|
|
}
|
|
add = 50
|
|
}
|
|
#Then the ones you like less
|
|
modifier = {
|
|
opinion = {
|
|
target = root
|
|
value <= 50
|
|
}
|
|
add = 25
|
|
}
|
|
modifier = {
|
|
opinion = {
|
|
target = root
|
|
value <= 30
|
|
}
|
|
add = 25
|
|
}
|
|
modifier = {
|
|
opinion = {
|
|
target = root
|
|
value <= 10
|
|
}
|
|
add = 25
|
|
}
|
|
modifier = {
|
|
opinion = {
|
|
target = root
|
|
value < 0
|
|
}
|
|
add = 25
|
|
}
|
|
modifier = {
|
|
has_relation_friend = root
|
|
factor = 0
|
|
}
|
|
}
|
|
save_scope_as = payment_child
|
|
#No decision-scumming
|
|
1010_mark_chosen_child_effect = yes
|
|
}
|
|
}
|
|
#Find the other parent of the child - should be adequately upset that you traded away their kid. You monster.
|
|
if = {
|
|
limit = { exists = scope:payment_child }
|
|
if = {
|
|
limit = { is_female = yes }
|
|
if = {
|
|
limit = {
|
|
scope:payment_child.father = { is_alive = yes }
|
|
}
|
|
scope:payment_child.father = { save_scope_as = other_parent }
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
scope:payment_child.mother = { is_alive = yes }
|
|
}
|
|
scope:payment_child.mother = { save_scope_as = other_parent }
|
|
}
|
|
}
|
|
}
|
|
#Is our partner actually a bit thieving?
|
|
if = {
|
|
#This looks a bit weird, localization-wise.
|
|
limit = {
|
|
#We're not a master thief
|
|
NOT = { highest_skill = intrigue }
|
|
#But our friend is a competent thief
|
|
scope:visiting_partner ?= { 1010_is_thieving_character_trigger = yes }
|
|
NOT = { exists = scope:1010_potentiaL_thievery }
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { has_variable = 1010_calculated_thievery_punishment }
|
|
}
|
|
set_variable = {
|
|
name = 1010_calculated_thievery_punishment
|
|
value = {
|
|
integer_range = {
|
|
min = medium_trait_xp
|
|
max = major_trait_xp
|
|
}
|
|
}
|
|
days = visit_settlement_small_cooldown_days
|
|
}
|
|
}
|
|
save_scope_as = 1010_potentiaL_thievery
|
|
}
|
|
#Price tweaks!
|
|
if = {
|
|
limit = { exists = var:supply_gold_cost }
|
|
#You botched a convince duel, price increased
|
|
if = {
|
|
limit = {
|
|
var:1010_has_convinced_recently ?= flag:fail
|
|
NOT = { exists = scope:1010_adjusted_provision_cost }
|
|
}
|
|
change_variable = {
|
|
name = supply_gold_cost
|
|
multiply = 1.3
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1010_adjusted_provision_cost
|
|
value = flag:yes
|
|
}
|
|
}
|
|
#Random selection of price reductions
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1010_applied_price_reductions }
|
|
}
|
|
#Perk discount
|
|
if = {
|
|
limit = {
|
|
root = { has_perk = war_profiteer_perk }
|
|
}
|
|
change_variable = {
|
|
name = supply_gold_cost
|
|
multiply = 0.75
|
|
}
|
|
}
|
|
#Cheaper supplies in City Holding
|
|
if = {
|
|
limit = {
|
|
root.location = { has_holding_type = city_holding }
|
|
}
|
|
change_variable = {
|
|
name = supply_gold_cost
|
|
multiply = 0.7
|
|
}
|
|
}
|
|
#Cheaper supplies from Camp Party
|
|
if = {
|
|
limit = {
|
|
has_character_flag = cheaper_provisions_visit_holding_flag
|
|
}
|
|
change_variable = {
|
|
name = supply_gold_cost
|
|
multiply = 0.6
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1010_applied_price_reductions
|
|
value = flag:yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Trade gold
|
|
option = {
|
|
name = ep3_laamp_decision_event.1010.b
|
|
trigger = { short_term_gold >= var:supply_gold_cost }
|
|
show_as_unavailable = { always = yes }
|
|
#Pay gold
|
|
remove_short_term_gold = var:supply_gold_cost
|
|
#Get supplies
|
|
domicile ?= {
|
|
change_provisions = {
|
|
value = {
|
|
value = max_provisions
|
|
subtract = provisions
|
|
}
|
|
}
|
|
}
|
|
#Set correct variables and reroute us to main square
|
|
1010_bought_supplies_effect = yes
|
|
}
|
|
#Convince them to give you some supply for free
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { highest_skill = diplomacy }
|
|
desc = ep3_laamp_decision_event.1010.a_diplomacy
|
|
}
|
|
triggered_desc = {
|
|
trigger = { highest_skill = stewardship }
|
|
desc = ep3_laamp_decision_event.1010.a_stewardship
|
|
}
|
|
triggered_desc = {
|
|
trigger = { highest_skill = intrigue }
|
|
desc = ep3_laamp_decision_event.1010.a_intrigue
|
|
}
|
|
triggered_desc = {
|
|
trigger = { highest_skill = learning }
|
|
desc = ep3_laamp_decision_event.1010.a_learning
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
highest_skill = martial
|
|
highest_skill_including_prowess = prowess
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.a_martial
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#Are we on cooldown?
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1010.a.cooldown.tt
|
|
NOT = { has_variable = 1010_has_convinced_recently }
|
|
}
|
|
}
|
|
#Keep you informed of the cooldown
|
|
show_as_unavailable = { always = yes }
|
|
#Duel effect
|
|
1010_highest_skill_duel_effect = yes
|
|
}
|
|
#Triggered Option: Trade child
|
|
option = {
|
|
name = {
|
|
trigger = { has_trait = callous }
|
|
text = ep3_laamp_decision_event.1010.c_callous
|
|
}
|
|
name = ep3_laamp_decision_event.1010.c
|
|
flavor = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { has_trait = callous }
|
|
desc = ep3_laamp_decision_event.1010.c.flavor_callous
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.c.flavor
|
|
}
|
|
}
|
|
trigger = {
|
|
exists = scope:payment_child
|
|
#For sanity reasons
|
|
is_ai = no
|
|
}
|
|
highlight_portrait = scope:payment_child
|
|
#Pay child
|
|
scope:payment_child = {
|
|
add_opinion = {
|
|
modifier = traded_me_away_opinion
|
|
target = root
|
|
opinion = -50
|
|
}
|
|
progress_towards_rival_effect = {
|
|
REASON = rival_traded_away_child
|
|
CHARACTER = root
|
|
OPINION = default_rival_opinion
|
|
}
|
|
move_to_pool = yes
|
|
}
|
|
if = {
|
|
limit = { exists = scope:other_parent }
|
|
scope:other_parent = {
|
|
add_opinion = {
|
|
modifier = traded_away_child_opinion
|
|
target = root
|
|
opinion = -50
|
|
}
|
|
}
|
|
}
|
|
#Get supplies
|
|
domicile ?= { change_provisions = max_provisions }
|
|
#Give appropriate amounts of stress
|
|
stress_impact = {
|
|
compassionate = major_stress_impact_gain
|
|
}
|
|
#Set correct variables and reroute us to main square
|
|
1010_bought_supplies_effect = yes
|
|
}
|
|
#Triggered Option: Intrigue-y visiting partner steals some supply for you
|
|
option = {
|
|
name = ep3_laamp_decision_event.1010.d
|
|
trigger = {
|
|
exists = scope:1010_potentiaL_thievery
|
|
#Are we on cooldown?
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1010.d.cooldown.tt
|
|
NOT = { has_variable = 1010_has_stolen_recently }
|
|
}
|
|
}
|
|
flavor = ep3_laamp_decision_event.1010.d.flavor
|
|
show_as_unavailable = { exists = scope:1010_potentiaL_thievery }
|
|
scope:visiting_partner = {
|
|
duel = {
|
|
skill = intrigue
|
|
target = scope:laamp_supply_merchant
|
|
#Success: Supplies!
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
desc = ep3_laamp_decision_event.1010.d.success
|
|
root = {
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1010.d.success
|
|
left_icon = scope:visiting_partner
|
|
right_icon = scope:laamp_supply_merchant
|
|
#Successful theft!
|
|
domicile ?= { change_provisions = half_to_max_provisions_value }
|
|
#Set up the cooldown for the convince-action
|
|
set_variable = {
|
|
name = 1010_has_stolen_recently
|
|
value = flag:success
|
|
days = visit_settlement_minimum_cooldown_days #Sync this with fail
|
|
}
|
|
#Determine why we can't return to this option
|
|
save_scope_value_as = {
|
|
name = laamp_decision_bought_supplies
|
|
value = flag:none
|
|
}
|
|
#Go back to the main event
|
|
hidden_effect = { 1001_return_to_second_effect = yes }
|
|
}
|
|
}
|
|
|
|
}
|
|
#Failure: The local guards are summoned
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
}
|
|
min = 5
|
|
desc = ep3_laamp_decision_event.1010.d.failure
|
|
root = {
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1010.d.failure
|
|
left_icon = scope:visiting_partner
|
|
right_icon = scope:laamp_supply_merchant
|
|
#Quite the tussle
|
|
scope:visiting_partner = {
|
|
increase_wounds_effect = { REASON = fight }
|
|
}
|
|
custom_tooltip = ep3_laamp_decision_event.1010.a.failure.tt
|
|
#Set up the cooldown for the convince-action
|
|
set_variable = {
|
|
name = 1010_has_stolen_recently
|
|
value = flag:fail
|
|
days = visit_settlement_minimum_cooldown_days #Sync this with success
|
|
}
|
|
#This merchant doesn't want to see you again
|
|
progress_towards_rival_effect = {
|
|
REASON = rival_tried_to_steal_supplies
|
|
CHARACTER = scope:laamp_supply_merchant
|
|
OPINION = default_rival_opinion
|
|
}
|
|
#And you will not be going back to supply merchant, but feel free to look at the greyed out option
|
|
set_variable = 1010_guards_summoned
|
|
#Determine why we can't return to this option
|
|
save_scope_value_as = {
|
|
name = laamp_decision_bought_supplies
|
|
value = flag:none
|
|
}
|
|
#Go back to the main event
|
|
1001_return_to_second_effect = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#I want to do something else
|
|
option = {
|
|
name = ep3_laamp_decision_event.1010.e
|
|
#For desc flavor
|
|
save_scope_as = did_not_buy_supplies
|
|
#Go back to the main event
|
|
1001_return_to_second_effect = yes
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:supply_merchant }
|
|
}
|
|
}
|
|
|
|
|
|
######################################################################
|
|
# SELL ARTIFACT
|
|
# ep3_laamp_decision_event.1020
|
|
######################################################################
|
|
|
|
scripted_effect 1020_suppress_artifact_notifications_effect = {
|
|
#Don't need no notification about this
|
|
set_variable = {
|
|
name = suppress_artifact_notifications
|
|
value = yes
|
|
days = 2
|
|
}
|
|
}
|
|
|
|
scripted_effect 1020_remove_sell_variables_effect = {
|
|
remove_variable ?= 1020_artifact_sell_value
|
|
remove_variable ?= 1020_artifact_sell_high_value
|
|
remove_variable ?= 1020_artifact_sell_low_value
|
|
}
|
|
|
|
#Set the correct variable to block off the Artifact option and remove the desc flavor variable
|
|
scripted_effect 1020_sold_artifact_effect = {
|
|
scope:1020_first_artifact_to_sell ?= { 1020_remove_sell_variables_effect = yes }
|
|
scope:1020_second_artifact_to_sell ?= { 1020_remove_sell_variables_effect = yes }
|
|
scope:1020_third_artifact_to_sell ?= { 1020_remove_sell_variables_effect = yes }
|
|
remove_list_variable = {
|
|
name = list_of_options
|
|
target = flag:has_artifact_option
|
|
}
|
|
remove_variable ?= 1021_artifact_sell_screen
|
|
save_scope_as = laamp_decision_sold_artifact
|
|
#Go back to the main event
|
|
hidden_effect = { 1001_return_to_second_effect = yes }
|
|
}
|
|
|
|
#Reused effect to set the variable
|
|
scripted_effect 1020_set_artifact_value_variables_effect = {
|
|
#Regular price
|
|
set_variable = {
|
|
name = 1020_artifact_sell_value
|
|
value = {
|
|
value = $GOLD_VALUE$
|
|
#Better buyers in City Holding
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
}
|
|
multiply = { 1.15 1.25 }
|
|
}
|
|
multiply = { 0.90 1.1 }
|
|
}
|
|
}
|
|
#Haggle success / Outraged partner price
|
|
set_variable = {
|
|
name = 1020_artifact_sell_high_value
|
|
value = {
|
|
value = var:1020_artifact_sell_value
|
|
#Better buyers in City Holding
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
}
|
|
multiply = { 1.15 1.25 }
|
|
}
|
|
#Haggle success / Outraged partner price
|
|
multiply = { 1.15 1.25 }
|
|
}
|
|
}
|
|
#Haggle failed price
|
|
set_variable = {
|
|
name = 1020_artifact_sell_low_value
|
|
value = {
|
|
value = var:1020_artifact_sell_value
|
|
#Better buyers in City Holding
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
}
|
|
multiply = { 1.15 1.25 }
|
|
}
|
|
#Haggle failed price
|
|
multiply = { 0.55 0.8 }
|
|
}
|
|
}
|
|
}
|
|
|
|
#Calculate how much the artifact is worth
|
|
scripted_effect 1020_calculate_artifact_value_effect = {
|
|
#Very expensive
|
|
if = {
|
|
limit = { rarity = illustrious }
|
|
1020_set_artifact_value_variables_effect = { GOLD_VALUE = root.massive_gold_value }
|
|
}
|
|
#Expensive
|
|
else_if = {
|
|
limit = { rarity = famed }
|
|
1020_set_artifact_value_variables_effect = { GOLD_VALUE = root.major_gold_value }
|
|
}
|
|
#OK price
|
|
else_if = {
|
|
limit = { rarity = masterwork }
|
|
1020_set_artifact_value_variables_effect = { GOLD_VALUE = root.medium_gold_value }
|
|
}
|
|
#Cheap
|
|
else_if = {
|
|
limit = { rarity = common }
|
|
1020_set_artifact_value_variables_effect = { GOLD_VALUE = root.minor_gold_value }
|
|
}
|
|
}
|
|
|
|
|
|
#Sell an artifact to local peddlers
|
|
ep3_laamp_decision_event.1020 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1020.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#Intro
|
|
first_valid = {
|
|
#FIRST TIME: We've seen this peddler before
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
exists = scope:laamp_recurring_artifact_peddler
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_intro_reused_peddler
|
|
}
|
|
#FIRST TIME: This is a CITY HOLDING, aschually. More refined buyers.
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_intro_posh_stalls
|
|
}
|
|
#RETURN SELL SCREEN: Guess we're thinking very hard
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = { has_variable = 1021_artifact_sell_screen }
|
|
desc = ep3_laamp_decision_event.1020.desc_intro_intermediate_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { has_variable = 1021_artifact_sell_screen }
|
|
desc = ep3_laamp_decision_event.1020.desc_intro_intermediate_returned_02
|
|
}
|
|
}
|
|
#RETURN: We've returned to this scene, now what
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = { exists = scope:did_not_sell_artifact }
|
|
desc = ep3_laamp_decision_event.1020.desc_intro_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:did_not_sell_artifact }
|
|
desc = ep3_laamp_decision_event.1020.desc_intro_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME: Intro
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_intro_new_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_intro_new_02
|
|
}
|
|
}
|
|
}
|
|
#FIRST TIME: Artifact Flavor
|
|
first_valid = {
|
|
#FIRST TIME: One artifact
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
exists = scope:1020_first_artifact_to_sell
|
|
NOT = { exists = scope:1020_second_artifact_to_sell }
|
|
NOT = { exists = scope:1020_third_artifact_to_sell }
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_one_artifact_new_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
exists = scope:1020_first_artifact_to_sell
|
|
NOT = { exists = scope:1020_second_artifact_to_sell }
|
|
NOT = { exists = scope:1020_third_artifact_to_sell }
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_one_artifact_new_02
|
|
}
|
|
}
|
|
#FIRST TIME: Two artifacts
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
exists = scope:1020_first_artifact_to_sell
|
|
exists = scope:1020_second_artifact_to_sell
|
|
NOT = { exists = scope:1020_third_artifact_to_sell }
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_two_artifacts_new_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
exists = scope:1020_first_artifact_to_sell
|
|
exists = scope:1020_second_artifact_to_sell
|
|
NOT = { exists = scope:1020_third_artifact_to_sell }
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_two_artifacts_new_02
|
|
}
|
|
}
|
|
#FIRST TIME: Three artifacts
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
exists = scope:1020_first_artifact_to_sell
|
|
exists = scope:1020_second_artifact_to_sell
|
|
exists = scope:1020_third_artifact_to_sell
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_three_artifacts_new_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
exists = scope:1020_first_artifact_to_sell
|
|
exists = scope:1020_second_artifact_to_sell
|
|
exists = scope:1020_third_artifact_to_sell
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_three_artifacts_new_02
|
|
}
|
|
}
|
|
}
|
|
#Visiting Partner flavor
|
|
first_valid = {
|
|
#RETURN: We've returned with our outraged clever partner
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:did_not_sell_artifact
|
|
exists = scope:1020_outraged_partner
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_outraged_partner_returned
|
|
}
|
|
#FIRST TIME: Outraged clever partner
|
|
triggered_desc = {
|
|
trigger = { exists = scope:1020_outraged_partner }
|
|
desc = ep3_laamp_decision_event.1020.desc_outraged_partner_new
|
|
}
|
|
}
|
|
}
|
|
theme = stewardship
|
|
override_background = { reference = ep2_village_festival }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#Outraged
|
|
triggered_animation = {
|
|
trigger = { exists = scope:1020_outraged_partner }
|
|
animation = rage
|
|
}
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = personality_forgiving
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = personality_greedy
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = personality_cynical
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = personality_irrational
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = personality_coward
|
|
}
|
|
animation = personality_compassionate
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
animation = thinking
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_artifact_peddler
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_artifact_peddler = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = personality_compassionate
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_artifact_peddler = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = personality_callous
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_artifact_peddler = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = admiration
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_artifact_peddler = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = personality_coward
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_artifact_peddler = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = personality_irrational
|
|
}
|
|
animation = personality_forgiving
|
|
}
|
|
artifact = {
|
|
trigger = { exists = scope:1020_first_artifact_to_sell }
|
|
target = scope:1020_first_artifact_to_sell
|
|
position = lower_left_portrait
|
|
}
|
|
artifact = {
|
|
trigger = { exists = scope:1020_second_artifact_to_sell }
|
|
target = scope:1020_second_artifact_to_sell
|
|
position = lower_center_portrait
|
|
}
|
|
artifact = {
|
|
trigger = { exists = scope:1020_third_artifact_to_sell }
|
|
target = scope:1020_third_artifact_to_sell
|
|
position = lower_right_portrait
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Do we have someone more clever in our company?
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1020_outraged_partner }
|
|
scope:visiting_partner ?= {
|
|
stewardship > root.stewardship
|
|
stewardship >= average_skill_rating
|
|
}
|
|
}
|
|
#Save outraged clever partner
|
|
save_scope_as = 1020_outraged_partner
|
|
}
|
|
#Find our peddler
|
|
if = {
|
|
#Do we already have a peddler?
|
|
limit = {
|
|
NOT = { exists = scope:laamp_artifact_peddler }
|
|
}
|
|
#Has this person been our artifact peddler in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_peddler_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
}
|
|
save_scope_as = laamp_artifact_peddler
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_artifact_peddler
|
|
}
|
|
#Otherwise find a peddler in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_artifact_peddler }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
}
|
|
save_scope_as = laamp_artifact_peddler
|
|
}
|
|
}
|
|
#Otherwise create a peddler
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_artifact_peddler }
|
|
}
|
|
#Create peddler to stuff in pool
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_artifact_peddler
|
|
}
|
|
}
|
|
#Remember the peddler
|
|
1010_remember_vendor_character_effect = { GUILD = peddler CHARACTER = scope:laamp_artifact_peddler }
|
|
}
|
|
#What artifacts are we selling?
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1020_first_artifact_to_sell }
|
|
}
|
|
every_character_artifact = {
|
|
limit = { 1000_is_unsellable_artifact_trigger = no }
|
|
add_to_list = list_of_potential_artifacts_to_sell
|
|
}
|
|
#Pick a random artifact in the list so we have a starting point
|
|
random_in_list = {
|
|
list = list_of_potential_artifacts_to_sell
|
|
limit = { has_variable = 1020_interesting_artifact_to_sell }
|
|
alternative_limit = {
|
|
#Empty, just pick an artifact from the list already
|
|
}
|
|
#Remember the artifact for next visit
|
|
set_variable = {
|
|
name = 1020_interesting_artifact_to_sell
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
save_scope_as = 1020_first_artifact_to_sell
|
|
}
|
|
#Pick something the peddler saw on your character
|
|
if = {
|
|
limit = {
|
|
any_in_list = {
|
|
list = list_of_potential_artifacts_to_sell
|
|
this != scope:1020_first_artifact_to_sell
|
|
}
|
|
}
|
|
random_in_list = {
|
|
list = list_of_potential_artifacts_to_sell
|
|
limit = {
|
|
has_variable = 1020_interesting_artifact_to_sell
|
|
this != scope:1020_first_artifact_to_sell
|
|
is_equipped = yes
|
|
}
|
|
alternative_limit = {
|
|
this != scope:1020_first_artifact_to_sell
|
|
is_equipped = no
|
|
}
|
|
alternative_limit = {
|
|
this != scope:1020_first_artifact_to_sell
|
|
}
|
|
#Remember the artifact for next visit
|
|
set_variable = {
|
|
name = 1020_interesting_artifact_to_sell
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
save_scope_as = 1020_second_artifact_to_sell
|
|
}
|
|
|
|
}
|
|
#Pick something that isn't whatever old court artifact from when you used to be someone
|
|
if = {
|
|
limit = {
|
|
any_in_list = {
|
|
list = list_of_potential_artifacts_to_sell
|
|
NOT = {
|
|
this = scope:1020_first_artifact_to_sell
|
|
this = scope:1020_second_artifact_to_sell
|
|
}
|
|
}
|
|
}
|
|
random_in_list = {
|
|
list = list_of_potential_artifacts_to_sell
|
|
limit = {
|
|
has_variable = 1020_interesting_artifact_to_sell
|
|
NOT = {
|
|
this = scope:1020_first_artifact_to_sell
|
|
this = scope:1020_second_artifact_to_sell
|
|
}
|
|
ep1_artifact_is_court_artifact_trigger = no
|
|
is_unique = no
|
|
}
|
|
alternative_limit = {
|
|
NOT = {
|
|
this = scope:1020_first_artifact_to_sell
|
|
this = scope:1020_second_artifact_to_sell
|
|
}
|
|
ep1_artifact_is_court_artifact_trigger = no
|
|
}
|
|
alternative_limit = {
|
|
NOT = {
|
|
this = scope:1020_first_artifact_to_sell
|
|
this = scope:1020_second_artifact_to_sell
|
|
}
|
|
is_unique = no
|
|
}
|
|
alternative_limit = {
|
|
NOT = {
|
|
this = scope:1020_first_artifact_to_sell
|
|
this = scope:1020_second_artifact_to_sell
|
|
}
|
|
}
|
|
#Remember the artifact for next visit
|
|
set_variable = {
|
|
name = 1020_interesting_artifact_to_sell
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
save_scope_as = 1020_third_artifact_to_sell
|
|
}
|
|
}
|
|
}
|
|
#Set the prices
|
|
if = {
|
|
#Always exists
|
|
limit = {
|
|
scope:1020_first_artifact_to_sell = {
|
|
NOT = { has_variable = 1020_artifact_sell_value }
|
|
}
|
|
}
|
|
scope:1020_first_artifact_to_sell = {
|
|
1020_calculate_artifact_value_effect = yes
|
|
#Don't need no notifications about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
}
|
|
#2nd Artifact
|
|
if = {
|
|
limit = { exists = scope:1020_second_artifact_to_sell }
|
|
scope:1020_second_artifact_to_sell = {
|
|
1020_calculate_artifact_value_effect = yes
|
|
#Don't need no notifications about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
}
|
|
}
|
|
#3rd Artifact
|
|
if = {
|
|
limit = { exists = scope:1020_third_artifact_to_sell }
|
|
scope:1020_third_artifact_to_sell = {
|
|
1020_calculate_artifact_value_effect = yes
|
|
#Don't need no notifications about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
}
|
|
}
|
|
#Let's not do this twice
|
|
}
|
|
}
|
|
#Go to sell screen
|
|
option = {
|
|
name = ep3_laamp_decision_event.1020.a
|
|
#Inform player
|
|
custom_tooltip = ep3_laamp_decision_event.1020.a.tt
|
|
#Show the current estimated prices so that you can compare
|
|
custom_tooltip = ep3_laamp_decision_event.1020.a.first_artifact.tt
|
|
#2nd Artifact
|
|
if = {
|
|
limit = { exists = scope:1020_second_artifact_to_sell }
|
|
custom_tooltip = ep3_laamp_decision_event.1020.a.second_artifact.tt
|
|
}
|
|
#3rd Artifact
|
|
if = {
|
|
limit = { exists = scope:1020_third_artifact_to_sell }
|
|
custom_tooltip = ep3_laamp_decision_event.1020.a.third_artifact.tt
|
|
}
|
|
if = { # Eagle
|
|
limit = {
|
|
can_laamp_sell_eagle_trigger = yes
|
|
}
|
|
custom_tooltip = ep3_laamp_decision_event.1020.eagle.tt
|
|
custom_tooltip = ep3_laamp_decision_event.1020.eagle.price_tt
|
|
}
|
|
remove_variable ?= 1021_artifact_sell_screen
|
|
#Go to sell screen
|
|
trigger_event = ep3_laamp_decision_event.1021
|
|
}
|
|
#Attempt a haggle
|
|
option = {
|
|
name = ep3_laamp_decision_event.1020.b
|
|
trigger = {
|
|
#You're on cooldown
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1020.b.cooldown.tt
|
|
NOT = { has_variable = 1020_has_haggled_recently }
|
|
}
|
|
}
|
|
duel = {
|
|
skill = stewardship
|
|
target = scope:laamp_artifact_peddler
|
|
#Success: Artifact merchant looks contemplatively at you, increased price
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.b.success
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1020.b.success
|
|
left_icon = root
|
|
right_icon = scope:laamp_artifact_peddler
|
|
#For loc and effects
|
|
save_scope_value_as = {
|
|
name = attempted_artifact_haggle
|
|
value = flag:success
|
|
}
|
|
#Show the estimated success prices so that you can compare
|
|
custom_tooltip = ep3_laamp_decision_event.1020.b.success.first_artifact.tt
|
|
#2nd Artifact
|
|
if = {
|
|
limit = { exists = scope:1020_second_artifact_to_sell }
|
|
custom_tooltip = ep3_laamp_decision_event.1020.b.success.second_artifact.tt
|
|
}
|
|
#3rd Artifact
|
|
if = {
|
|
limit = { exists = scope:1020_third_artifact_to_sell }
|
|
custom_tooltip = ep3_laamp_decision_event.1020.b.success.third_artifact.tt
|
|
}
|
|
if = {
|
|
limit = { has_lifestyle = stewardship_lifestyle }
|
|
add_stewardship_lifestyle_xp = medium_lifestyle_xp
|
|
}
|
|
stress_impact = {
|
|
greedy = minor_stress_impact_loss
|
|
ambitious = minor_stress_impact_loss
|
|
}
|
|
#Go to sell screen with modified costs
|
|
trigger_event = ep3_laamp_decision_event.1021
|
|
}
|
|
}
|
|
#Failure: Artifact merchant smirks at you, decreased price
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -20
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.b.failure
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1020.b.failure
|
|
left_icon = root
|
|
right_icon = scope:laamp_artifact_peddler
|
|
#For loc and effects
|
|
save_scope_value_as = {
|
|
name = attempted_artifact_haggle
|
|
value = flag:failure
|
|
}
|
|
#Show the estimated failure prices so that you can compare
|
|
custom_tooltip = ep3_laamp_decision_event.1020.b.failure.first_artifact.tt
|
|
#2nd Artifact
|
|
if = {
|
|
limit = { exists = scope:1020_second_artifact_to_sell }
|
|
custom_tooltip = ep3_laamp_decision_event.1020.b.failure.second_artifact.tt
|
|
}
|
|
#3rd Artifact
|
|
if = {
|
|
limit = { exists = scope:1020_third_artifact_to_sell }
|
|
custom_tooltip = ep3_laamp_decision_event.1020.b.failure.third_artifact.tt
|
|
}
|
|
stress_impact = {
|
|
base = minor_stress_impact_gain
|
|
greedy = minor_stress_impact_gain
|
|
}
|
|
#Go to sell screen with modified costs
|
|
trigger_event = ep3_laamp_decision_event.1021
|
|
}
|
|
}
|
|
}
|
|
set_variable = {
|
|
name = 1020_has_haggled_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
}
|
|
#Triggered Option: Outraged clever partner gets you a higher price for a random artifact
|
|
option = {
|
|
name = ep3_laamp_decision_event.1020.c
|
|
#If we have an outraged clever partner
|
|
trigger = { exists = scope:1020_outraged_partner }
|
|
#... whom randomly sells one of the artifacts at a higher price
|
|
random_list = {
|
|
#This should always exist
|
|
50 = {
|
|
desc = ep3_laamp_decision_event.1020.c.first_artifact
|
|
add_gold = scope:1020_first_artifact_to_sell.var:1020_artifact_sell_high_value
|
|
scope:1020_first_artifact_to_sell = { set_owner = scope:laamp_artifact_peddler }
|
|
}
|
|
#Artifact #2
|
|
50 = {
|
|
trigger = { exists = scope:1020_second_artifact_to_sell }
|
|
desc = ep3_laamp_decision_event.1020.c.second_artifact
|
|
add_gold = scope:1020_second_artifact_to_sell.var:1020_artifact_sell_high_value
|
|
scope:1020_second_artifact_to_sell = { set_owner = scope:laamp_artifact_peddler }
|
|
}
|
|
#Artifact #3
|
|
50 = {
|
|
trigger = { exists = scope:1020_third_artifact_to_sell }
|
|
desc = ep3_laamp_decision_event.1020.c.third_artifact
|
|
add_gold = scope:1020_third_artifact_to_sell.var:1020_artifact_sell_high_value
|
|
scope:1020_third_artifact_to_sell = { set_owner = scope:laamp_artifact_peddler }
|
|
}
|
|
}
|
|
#Set correct variables and reroute us to main square
|
|
1020_sold_artifact_effect = yes
|
|
stress_impact = {
|
|
ambitious = minor_stress_impact_gain
|
|
lazy = minor_stress_impact_loss
|
|
}
|
|
#Inform the player
|
|
custom_tooltip = ep3_laamp_decision_event.return.tt
|
|
}
|
|
#I want to do something else
|
|
option = {
|
|
name = ep3_laamp_decision_event.1020.d
|
|
#For desc flavor
|
|
save_scope_as = did_not_sell_artifact
|
|
#Go back to the main event
|
|
1001_return_to_second_effect = yes
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:artifact_peddler }
|
|
}
|
|
}
|
|
|
|
|
|
#Sell (or destroy) artifact (if unique artifact)
|
|
scripted_effect ep3_laamp_decision_1021_sell_artifact_effect = {
|
|
save_temporary_scope_as = artifact_to_sell #More descriptive than 'prev'
|
|
#Get appropriate amount of gold
|
|
root = {
|
|
if = {
|
|
limit = {
|
|
exists = scope:attempted_artifact_haggle
|
|
scope:attempted_artifact_haggle = flag:success
|
|
}
|
|
add_gold = scope:artifact_to_sell.var:1020_artifact_sell_high_value
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
exists = scope:attempted_artifact_haggle
|
|
scope:attempted_artifact_haggle = flag:failure
|
|
}
|
|
add_gold = scope:artifact_to_sell.var:1020_artifact_sell_low_value
|
|
}
|
|
else = { add_gold = scope:artifact_to_sell.var:1020_artifact_sell_value }
|
|
}
|
|
#Set the artifact owner
|
|
if = {
|
|
limit = {
|
|
scope:artifact_to_sell = { is_unique = yes }
|
|
}
|
|
#Destroy unique artifacts so they don't get stuck with the Pool People
|
|
hidden_effect = { destroy_artifact = scope:artifact_to_sell }
|
|
}
|
|
else = { set_owner = scope:laamp_artifact_peddler }
|
|
}
|
|
|
|
|
|
#Actual sell screen
|
|
ep3_laamp_decision_event.1021 = {
|
|
type = character_event
|
|
window = visit_settlement_window
|
|
title = {
|
|
first_valid = {
|
|
#Haggle Success
|
|
triggered_desc = {
|
|
trigger = { scope:attempted_artifact_haggle ?= flag:success }
|
|
desc = ep3_laamp_decision_event.1021.t_success
|
|
}
|
|
#Haggle Failure
|
|
triggered_desc = {
|
|
trigger = { scope:attempted_artifact_haggle ?= flag:failure }
|
|
desc = ep3_laamp_decision_event.1021.t_failure
|
|
}
|
|
desc = ep3_laamp_decision_event.1021.t
|
|
}
|
|
}
|
|
desc = {
|
|
first_valid = {
|
|
#FIRST TIME: Haggle Success
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_haggled_artifact }
|
|
scope:attempted_artifact_haggle ?= flag:success
|
|
}
|
|
desc = ep3_laamp_decision_event.1021.desc_success
|
|
}
|
|
#FIRST TIME: Haggle Failure
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_haggled_artifact }
|
|
scope:attempted_artifact_haggle ?= flag:failure
|
|
}
|
|
desc = ep3_laamp_decision_event.1021.desc_failure
|
|
}
|
|
#FIRST TIME: Generic first-strings
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
}
|
|
desc = ep3_laamp_decision_event.1021.desc_moment_of_purchase_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
}
|
|
desc = ep3_laamp_decision_event.1021.desc_moment_of_purchase_02
|
|
}
|
|
}
|
|
#RETURN: Same as the generic first-strings
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { has_variable = 1021_artifact_sell_screen }
|
|
}
|
|
desc = ep3_laamp_decision_event.1021.desc_moment_of_purchase_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { has_variable = 1021_artifact_sell_screen }
|
|
}
|
|
desc = ep3_laamp_decision_event.1021.desc_moment_of_purchase_02
|
|
}
|
|
}
|
|
#RETURN: Same as the return-strings in ep3_laamp_decision_event.1020
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
exists = scope:did_not_sell_haggled_artifact
|
|
exists = scope:did_not_sell_artifact
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_intro_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
exists = scope:did_not_sell_haggled_artifact
|
|
exists = scope:did_not_sell_artifact
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1020.desc_intro_returned_02
|
|
}
|
|
}
|
|
}
|
|
}
|
|
theme = stewardship
|
|
override_background = { reference = ep2_village_festival }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#Outraged
|
|
triggered_animation = {
|
|
trigger = { exists = scope:1020_outraged_partner }
|
|
animation = rage
|
|
}
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = personality_forgiving
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = personality_greedy
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = personality_cynical
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = personality_irrational
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = personality_coward
|
|
}
|
|
animation = personality_compassionate
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:attempted_artifact_haggle
|
|
scope:attempted_artifact_haggle = flag:failure
|
|
}
|
|
animation = shame
|
|
}
|
|
triggered_animation = {
|
|
trigger = {
|
|
can_laamp_sell_eagle_trigger = yes
|
|
}
|
|
animation = hunting_falcon
|
|
}
|
|
animation = thinking
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_artifact_peddler
|
|
triggered_animation = {
|
|
trigger = { exists = scope:attempted_artifact_haggle }
|
|
animation = disapproval
|
|
}
|
|
animation = steward
|
|
}
|
|
artifact = {
|
|
trigger = { exists = scope:1020_first_artifact_to_sell }
|
|
target = scope:1020_first_artifact_to_sell
|
|
position = lower_left_portrait
|
|
}
|
|
artifact = {
|
|
trigger = { exists = scope:1020_second_artifact_to_sell }
|
|
target = scope:1020_second_artifact_to_sell
|
|
position = lower_center_portrait
|
|
}
|
|
artifact = {
|
|
trigger = { exists = scope:1020_third_artifact_to_sell }
|
|
target = scope:1020_third_artifact_to_sell
|
|
position = lower_right_portrait
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
}
|
|
#Sell artifact #1
|
|
option = {
|
|
name = ep3_laamp_decision_event.1021.a
|
|
#Sell the artifact, price depending on if you haggled or not etc
|
|
scope:1020_first_artifact_to_sell = { ep3_laamp_decision_1021_sell_artifact_effect = yes }
|
|
#Set correct variables and reroute us to main square
|
|
1020_sold_artifact_effect = yes
|
|
}
|
|
#Sell artifact #2
|
|
option = {
|
|
name = ep3_laamp_decision_event.1021.b
|
|
trigger = { exists = scope:1020_second_artifact_to_sell }
|
|
#Sell the artifact, price depending on if you haggled or not etc
|
|
scope:1020_second_artifact_to_sell = { ep3_laamp_decision_1021_sell_artifact_effect = yes }
|
|
#Set correct variables and reroute us to main square
|
|
1020_sold_artifact_effect = yes
|
|
}
|
|
#Sell artifact #3
|
|
option = {
|
|
name = ep3_laamp_decision_event.1021.c
|
|
trigger = { exists = scope:1020_third_artifact_to_sell }
|
|
#Sell the artifact, price depending on if you haggled or not etc
|
|
scope:1020_third_artifact_to_sell = { ep3_laamp_decision_1021_sell_artifact_effect = yes }
|
|
#Set correct variables and reroute us to main square
|
|
1020_sold_artifact_effect = yes
|
|
}
|
|
option = {
|
|
name = ep3_laamp_decision_event.1021.eagle
|
|
trigger = {
|
|
can_laamp_sell_eagle_trigger = yes
|
|
}
|
|
#Sell eagle :(
|
|
add_character_flag = is_selling_eagle_flag
|
|
show_as_tooltip = {
|
|
sell_eagle_effect = {
|
|
PRICE = hunting_eagle_sell_value
|
|
RECIPIENT = scope:laamp_artifact_peddler
|
|
SELLER = root
|
|
}
|
|
}
|
|
|
|
#Stress
|
|
stress_impact = {
|
|
base = minor_stress_impact_gain
|
|
greedy = minor_stress_impact_loss
|
|
callous = minor_stress_impact_loss
|
|
compassionate = minor_stress_impact_gain
|
|
loyal = minor_stress_impact_gain
|
|
}
|
|
|
|
#Set correct variables and reroute us to main square
|
|
1020_sold_artifact_effect = yes
|
|
|
|
ai_chance = {
|
|
base = 15 # No one is really doing this unless they're giga broke
|
|
modifier = {
|
|
factor = 1.7
|
|
short_term_gold <= 5
|
|
}
|
|
modifier = {
|
|
add = 1.2
|
|
has_character_modifier = weak_eagle_modifier
|
|
}
|
|
modifier = {
|
|
add = 1.5
|
|
has_character_modifier = very_weak_eagle_modifier
|
|
}
|
|
modifier = {
|
|
add = 1.5
|
|
eagle_is_old_trigger = yes
|
|
}
|
|
modifier = {
|
|
add = 0.75
|
|
OR = {
|
|
has_character_modifier = strong_eagle_modifier
|
|
has_eagle_personality_trait_trigger = yes
|
|
}
|
|
}
|
|
ai_value_modifier = {
|
|
ai_greed = 0.5
|
|
ai_compassion = -0.5
|
|
}
|
|
}
|
|
}
|
|
#I've changed my mind
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Go back to main
|
|
triggered_desc = {
|
|
trigger = { exists = scope:attempted_artifact_haggle }
|
|
desc = ep3_laamp_decision_event.1020.d
|
|
}
|
|
#Go back to the previous screen
|
|
desc = ep3_laamp_decision_event.1021.d
|
|
}
|
|
}
|
|
}
|
|
#For desc flavor
|
|
if = {
|
|
#We came through here the first time
|
|
limit = {
|
|
NOT = { exists = scope:did_not_sell_artifact }
|
|
}
|
|
save_scope_as = did_not_sell_artifact
|
|
}
|
|
#We came through here via haggling
|
|
if = {
|
|
limit = { exists = scope:attempted_artifact_haggle }
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:did_not_sell_haggled_artifact }
|
|
}
|
|
save_scope_as = did_not_sell_haggled_artifact
|
|
}
|
|
#Go back to main
|
|
custom_tooltip = ep3_laamp_decision_event.return.tt
|
|
trigger_event = ep3_laamp_decision_event.1000
|
|
}
|
|
else = {
|
|
#Go back to the previous screen
|
|
trigger_event = ep3_laamp_decision_event.1020
|
|
}
|
|
}
|
|
after = {
|
|
#For loc
|
|
if = {
|
|
limit = {
|
|
NOT = { has_variable = 1021_artifact_sell_screen }
|
|
}
|
|
set_variable = 1021_artifact_sell_screen
|
|
}
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:artifact_peddler }
|
|
hidden_effect = {
|
|
# Put eagle selling option on cooldown
|
|
if = {
|
|
limit = {
|
|
has_available_eagle_trigger = yes
|
|
}
|
|
add_character_flag = {
|
|
flag = cant_sell_eagle
|
|
months = 6
|
|
}
|
|
}
|
|
# Actually sell the eagle if applicable
|
|
if = {
|
|
limit = {
|
|
has_character_flag = is_selling_eagle_flag
|
|
}
|
|
sell_eagle_effect = {
|
|
PRICE = hunting_eagle_sell_value
|
|
RECIPIENT = scope:laamp_artifact_peddler
|
|
SELLER = root
|
|
}
|
|
remove_character_flag = is_selling_eagle_flag
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
######################################################################
|
|
# TOWN CRIER
|
|
# ep3_laamp_decision_event.1025
|
|
######################################################################
|
|
|
|
#For hubs. All events that use this need to account for loc in relation to the value being 0, 1, or 2 (e.g. scope:church_grounds_loc_tracker ?= 0 )
|
|
scripted_effect 1025_set_and_check_hub_loc_tracker_scope_effect = {
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:$HUB$_loc_tracker } #e.g. scope:church_grounds_loc_tracker
|
|
}
|
|
save_scope_value_as = {
|
|
name = $HUB$_loc_tracker
|
|
value = 0
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:$HUB$_loc_tracker ?= 2 }
|
|
save_scope_value_as = {
|
|
name = $HUB$_loc_tracker
|
|
value = 0
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:$HUB$_loc_tracker ?= 0 }
|
|
save_scope_value_as = {
|
|
name = $HUB$_loc_tracker
|
|
value = 1
|
|
}
|
|
}
|
|
else = {
|
|
save_scope_value_as = {
|
|
name = $HUB$_loc_tracker
|
|
value = 2
|
|
}
|
|
}
|
|
}
|
|
|
|
#Technically these could be rolled into the HUB variant if we add a 3rd random loc for all current SCENEs
|
|
#For scenes. All events that use this need to account for loc in relation to the value being 0 or 1 (e.g. scope:weaponsmith_loc_tracker ?= 0 )
|
|
scripted_effect 1025_set_and_check_scene_loc_tracker_scope_effect = {
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:$SCENE$_loc_tracker } #e.g. scope:weaponsmith_loc_tracker
|
|
}
|
|
save_scope_value_as = {
|
|
name = $SCENE$_loc_tracker
|
|
value = 0
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:$SCENE$_loc_tracker ?= 1 }
|
|
save_scope_value_as = {
|
|
name = $SCENE$_loc_tracker
|
|
value = 0
|
|
}
|
|
}
|
|
else = {
|
|
save_scope_value_as = {
|
|
name = $SCENE$_loc_tracker
|
|
value = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
#Set the correct variable to block off the Contract option and remove the desc flavor variable
|
|
scripted_effect 1025_finished_contract_effect = {
|
|
#Set up the cooldown for the contract action
|
|
set_variable = {
|
|
name = 1025_has_contracted_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#We're done here
|
|
save_scope_value_as = {
|
|
name = laamp_decision_has_contracted
|
|
value = flag:yes
|
|
}
|
|
#Go back to the main event
|
|
hidden_effect = { 1001_return_to_second_effect = yes }
|
|
}
|
|
|
|
#Used in enough places
|
|
scripted_effect 1025_save_random_county_province_effect = {
|
|
random_county_in_region = {
|
|
region = $REGION$
|
|
random_county_province = { save_scope_as = contract_province }
|
|
}
|
|
}
|
|
|
|
#Not too far away... Should probably be revisited sometime in the future. Use distance instead?
|
|
scripted_effect 1025_set_contract_location_effect = {
|
|
random_list = {
|
|
#North Europe
|
|
10 = {
|
|
trigger = {
|
|
scope:visiting_location = { geographical_region = world_europe_north }
|
|
}
|
|
1025_save_random_county_province_effect = { REGION = world_europe_north }
|
|
}
|
|
#West Europe
|
|
10 = {
|
|
trigger = {
|
|
scope:visiting_location = { geographical_region = world_europe_west }
|
|
}
|
|
1025_save_random_county_province_effect = { REGION = world_europe_west }
|
|
}
|
|
#East Europe
|
|
10 = {
|
|
trigger = {
|
|
scope:visiting_location = { geographical_region = world_europe_east }
|
|
}
|
|
1025_save_random_county_province_effect = { REGION = world_europe_east }
|
|
}
|
|
#South Europe
|
|
10 = {
|
|
trigger = {
|
|
scope:visiting_location = { geographical_region = world_europe_south }
|
|
}
|
|
1025_save_random_county_province_effect = { REGION = world_europe_south }
|
|
}
|
|
#Middle East
|
|
10 = {
|
|
trigger = {
|
|
scope:visiting_location = { geographical_region = world_middle_east }
|
|
}
|
|
1025_save_random_county_province_effect = { REGION = world_middle_east }
|
|
}
|
|
#India
|
|
10 = {
|
|
trigger = {
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
1025_save_random_county_province_effect = { REGION = world_india }
|
|
}
|
|
#North Africa
|
|
10 = {
|
|
trigger = {
|
|
scope:visiting_location = { geographical_region = world_africa_north }
|
|
}
|
|
1025_save_random_county_province_effect = { REGION = world_africa_north }
|
|
}
|
|
#West Africa
|
|
10 = {
|
|
trigger = {
|
|
scope:visiting_location = { geographical_region = world_africa_west }
|
|
}
|
|
1025_save_random_county_province_effect = { REGION = world_africa_west }
|
|
}
|
|
#East Africa
|
|
10 = {
|
|
trigger = {
|
|
scope:visiting_location = { geographical_region = world_africa_east }
|
|
}
|
|
1025_save_random_county_province_effect = { REGION = world_africa_east }
|
|
}
|
|
#West Steppe
|
|
10 = {
|
|
trigger = {
|
|
scope:visiting_location = { geographical_region = world_steppe_west }
|
|
}
|
|
1025_save_random_county_province_effect = { REGION = world_steppe_west }
|
|
}
|
|
#East Steppe
|
|
10 = {
|
|
trigger = {
|
|
scope:visiting_location = { geographical_region = world_steppe_east }
|
|
}
|
|
1025_save_random_county_province_effect = { REGION = world_steppe_east }
|
|
}
|
|
}
|
|
}
|
|
|
|
#Set contract type
|
|
scripted_effect 1025_randomize_and_remember_contract_type_effect = {
|
|
#Find an employer to check the trigger against
|
|
scope:visiting_location.county = {
|
|
holder ?= {
|
|
if = {
|
|
limit = { 1025_is_appropriate_landed_contract_employer_trigger = yes }
|
|
add_to_temporary_list = potential_contract_employers
|
|
}
|
|
every_vassal_or_below ?= {
|
|
limit = { 1025_is_appropriate_landed_contract_employer_trigger = yes }
|
|
add_to_temporary_list = potential_contract_employers
|
|
}
|
|
top_liege ?= {
|
|
if = {
|
|
limit = { 1025_is_appropriate_landed_contract_employer_trigger = yes }
|
|
add_to_temporary_list = potential_contract_employers
|
|
}
|
|
every_vassal_or_below ?= {
|
|
limit = { 1025_is_appropriate_landed_contract_employer_trigger = yes }
|
|
add_to_temporary_list = potential_contract_employers
|
|
}
|
|
}
|
|
}
|
|
every_neighboring_county ?= {
|
|
holder ?= {
|
|
if = {
|
|
limit = { 1025_is_appropriate_landed_contract_employer_trigger = yes }
|
|
}
|
|
add_to_temporary_list = potential_contract_employers
|
|
every_vassal_or_below ?= {
|
|
limit = { 1025_is_appropriate_landed_contract_employer_trigger = yes }
|
|
add_to_temporary_list = potential_contract_employers
|
|
}
|
|
top_liege ?= {
|
|
if = {
|
|
limit = { 1025_is_appropriate_landed_contract_employer_trigger = yes }
|
|
add_to_temporary_list = potential_contract_employers
|
|
}
|
|
every_vassal_or_below ?= {
|
|
limit = { 1025_is_appropriate_landed_contract_employer_trigger = yes }
|
|
add_to_temporary_list = potential_contract_employers
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Pick actual contract groups
|
|
random_list = {
|
|
#Nothing at all!
|
|
10 = {
|
|
modifier = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
factor = 2
|
|
}
|
|
modifier = {
|
|
num_offered_task_contracts > 5
|
|
add = 20
|
|
}
|
|
modifier = {
|
|
num_offered_task_contracts > 10
|
|
add = 20
|
|
}
|
|
#No contracts
|
|
}
|
|
#Treasure Map
|
|
5 = {
|
|
#Do we already have a treasure map contract?
|
|
trigger = {
|
|
NOR = {
|
|
#Is this contract type already saved from our last visit?
|
|
trigger_if = {
|
|
limit = { 1025_location_has_a_saved_contract_type_trigger = yes }
|
|
1025_saved_location_contract_type_matches_this_type_trigger = { CONTRACT_TYPE_FLAG = flag:treasure_map_contract }
|
|
}
|
|
trigger_else = { always = no }
|
|
#Do we already have an active Treasure Map contract?
|
|
any_character_artifact = { has_variable = 1025_treasure_map }
|
|
any_character_task_contract = { task_contract_type = laamp_treasure_map_contract }
|
|
#Are we on cooldown?
|
|
has_variable = 1025_had_treasure_map_contract_recently
|
|
#Has this contract type already been assigned to another contract scope this visit?
|
|
1025_contract_type_is_assigned_trigger = { CONTRACT_TYPE_FLAG = flag:treasure_map_contract }
|
|
}
|
|
}
|
|
#Set the type
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:treasure_map_contract
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:treasure_map_contract
|
|
}
|
|
}
|
|
#Legendary Contract
|
|
5 = {
|
|
#Did we spawn a legendary contract recently?
|
|
trigger = {
|
|
prestige_level >= tier_kingdom
|
|
1025_can_create_legendary_contract_trigger = yes
|
|
NOR = {
|
|
#Are we on cooldown?
|
|
has_variable = 1025_had_legendary_contract_recently
|
|
#Has this contract type already been assigned to another contract scope this visit?
|
|
1025_contract_type_is_assigned_trigger = { CONTRACT_TYPE_FLAG = flag:legendary_contract }
|
|
}
|
|
}
|
|
#Set the type
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:legendary_contract
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:legendary_contract
|
|
}
|
|
#Yes, I will whack you with a double cooldown on legendaries. It's shorter if you don't pick the option though
|
|
set_variable = {
|
|
name = 1025_had_legendary_contract_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
}
|
|
#Transport Contracts
|
|
20 = {
|
|
#Did we spawn transport contracts recently?
|
|
trigger = {
|
|
NOR = {
|
|
#Is this contract type already saved from our last visit?
|
|
trigger_if = {
|
|
limit = { 1025_location_has_a_saved_contract_type_trigger = yes }
|
|
1025_saved_location_contract_type_matches_this_type_trigger = { CONTRACT_TYPE_FLAG = flag:transport_contracts }
|
|
}
|
|
trigger_else = { always = no }
|
|
#Are we on cooldown?
|
|
has_variable = 1025_had_transport_contracts_recently
|
|
#Has this contract type already been assigned to another contract scope this visit?
|
|
1025_contract_type_is_assigned_trigger = { CONTRACT_TYPE_FLAG = flag:transport_contracts }
|
|
}
|
|
#Can we actually spawn any transport contracts?
|
|
any_in_List = {
|
|
list = potential_contract_employers
|
|
save_temporary_scope_as = considered_employer
|
|
can_create_transport_contract_trigger = { LAAMP = root EMPLOYER = scope:considered_employer }
|
|
}
|
|
}
|
|
#More transports for the baggage train
|
|
modifier = {
|
|
domicile ?= { has_domicile_building = baggage_train_01 }
|
|
factor = 2
|
|
}
|
|
#Set the type
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:transport_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:transport_contracts
|
|
}
|
|
}
|
|
#Criminal Contracts
|
|
20 = {
|
|
#Did we spawn criminal contracts recently?
|
|
trigger = {
|
|
NOR = {
|
|
#Is this contract type already saved from our last visit?
|
|
trigger_if = {
|
|
limit = { 1025_location_has_a_saved_contract_type_trigger = yes }
|
|
1025_saved_location_contract_type_matches_this_type_trigger = { CONTRACT_TYPE_FLAG = flag:criminal_contracts }
|
|
}
|
|
trigger_else = { always = no }
|
|
#Are we on cooldown?
|
|
has_variable = 1025_had_criminal_contracts_recently
|
|
#Has this contract type already been assigned to another contract scope this visit?
|
|
1025_contract_type_is_assigned_trigger = { CONTRACT_TYPE_FLAG = flag:criminal_contracts }
|
|
}
|
|
#Can we actually spawn any criminal contracts?
|
|
any_in_list = {
|
|
list = potential_contract_employers
|
|
save_temporary_scope_as = considered_employer
|
|
can_create_criminal_contract_trigger = { LAAMP = root EMPLOYER = scope:considered_employer }
|
|
}
|
|
}
|
|
#More criminals... if corrupt location
|
|
modifier = {
|
|
scope:visiting_location.county = { has_county_corruption_trigger = yes }
|
|
add = 10
|
|
}
|
|
modifier = {
|
|
scope:visiting_location.county = { county_control <= 50 }
|
|
add = 10
|
|
}
|
|
#Are you actually looking for criminal contracts?
|
|
modifier = {
|
|
has_trait = honest
|
|
factor = 0.5
|
|
}
|
|
modifier = {
|
|
has_trait = deceitful
|
|
factor = 2
|
|
}
|
|
#Set the type
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:criminal_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:criminal_contracts
|
|
}
|
|
}
|
|
#Justicar Contracts
|
|
20 = {
|
|
#Did we spawn justicar contracts recently?
|
|
trigger = {
|
|
NOR = {
|
|
#Is this contract type already saved from our last visit?
|
|
trigger_if = {
|
|
limit = { 1025_location_has_a_saved_contract_type_trigger = yes }
|
|
1025_saved_location_contract_type_matches_this_type_trigger = { CONTRACT_TYPE_FLAG = flag:justicar_contracts }
|
|
}
|
|
trigger_else = { always = no }
|
|
#Are we on cooldown?
|
|
has_variable = 1025_had_justicar_contracts_recently
|
|
#Has this contract type already been assigned to another contract scope this visit?
|
|
1025_contract_type_is_assigned_trigger = { CONTRACT_TYPE_FLAG = flag:justicar_contracts }
|
|
}
|
|
#Can we actually spawn any justicar contracts?
|
|
any_in_list = {
|
|
list = potential_contract_employers
|
|
save_temporary_scope_as = considered_employer
|
|
can_create_justicar_contract_trigger = { LAAMP = root EMPLOYER = scope:considered_employer }
|
|
}
|
|
}
|
|
#More criminals... if corrupt location
|
|
modifier = {
|
|
scope:visiting_location.county = { has_county_corruption_trigger = yes }
|
|
add = 10
|
|
}
|
|
modifier = {
|
|
scope:visiting_location.county = { county_control <= 50 }
|
|
add = 10
|
|
}
|
|
#You're pretty law-abiding?
|
|
modifier = {
|
|
OR = {
|
|
has_trait = honest
|
|
has_trait = just
|
|
has_trait = gallant
|
|
has_focus = martial_chivalry_focus
|
|
}
|
|
factor = 2
|
|
}
|
|
modifier = {
|
|
has_trait = deceitful
|
|
factor = 0.5
|
|
}
|
|
#Set the type
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:justicar_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:justicar_contracts
|
|
}
|
|
}
|
|
#Hireling Contracts
|
|
20 = {
|
|
#Did we spawn hireling contracts recently?
|
|
trigger = {
|
|
NOR = {
|
|
#Is this contract type already saved from our last visit?
|
|
trigger_if = {
|
|
limit = { 1025_location_has_a_saved_contract_type_trigger = yes }
|
|
1025_saved_location_contract_type_matches_this_type_trigger = { CONTRACT_TYPE_FLAG = flag:hireling_contracts }
|
|
}
|
|
trigger_else = { always = no }
|
|
#Are we on cooldown?
|
|
has_variable = 1025_had_hireling_contracts_recently
|
|
#Has this contract type already been assigned to another contract scope this visit?
|
|
1025_contract_type_is_assigned_trigger = { CONTRACT_TYPE_FLAG = flag:hireling_contracts }
|
|
}
|
|
#Can we actually spawn any hireling contracts?
|
|
any_in_list = {
|
|
list = potential_contract_employers
|
|
save_temporary_scope_as = considered_employer
|
|
can_create_hireling_contract_trigger = { LAAMP = root EMPLOYER = scope:considered_employer }
|
|
}
|
|
}
|
|
#Set the type
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:hireling_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:hireling_contracts
|
|
}
|
|
}
|
|
#Diplomacy Contracts
|
|
20 = {
|
|
#Did we spawn diplomacy contracts recently?
|
|
trigger = {
|
|
NOR = {
|
|
#Is this contract type already saved from our last visit?
|
|
trigger_if = {
|
|
limit = { 1025_location_has_a_saved_contract_type_trigger = yes }
|
|
1025_saved_location_contract_type_matches_this_type_trigger = { CONTRACT_TYPE_FLAG = flag:diplomacy_contracts }
|
|
}
|
|
trigger_else = { always = no }
|
|
#Are we on cooldown?
|
|
has_variable = 1025_had_diplomacy_contracts_recently
|
|
#Has this contract type already been assigned to another contract scope this visit?
|
|
1025_contract_type_is_assigned_trigger = { CONTRACT_TYPE_FLAG = flag:diplomacy_contracts }
|
|
}
|
|
#Can we actually spawn any diplomacy contracts?
|
|
any_in_list = {
|
|
list = potential_contract_employers
|
|
save_temporary_scope_as = considered_employer
|
|
can_create_diplomacy_contract_trigger = { LAAMP = root EMPLOYER = scope:considered_employer }
|
|
}
|
|
}
|
|
#Set the type
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:diplomacy_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:diplomacy_contracts
|
|
}
|
|
}
|
|
#Stewardship Contracts
|
|
20 = {
|
|
#Did we spawn stewardship contracts recently?
|
|
trigger = {
|
|
NOR = {
|
|
#Is this contract type already saved from our last visit?
|
|
trigger_if = {
|
|
limit = { 1025_location_has_a_saved_contract_type_trigger = yes }
|
|
1025_saved_location_contract_type_matches_this_type_trigger = { CONTRACT_TYPE_FLAG = flag:stewardship_contracts }
|
|
}
|
|
trigger_else = { always = no }
|
|
#Are we on cooldown?
|
|
has_variable = 1025_had_stewardship_contracts_recently
|
|
#Has this contract type already been assigned to another contract scope this visit?
|
|
1025_contract_type_is_assigned_trigger = { CONTRACT_TYPE_FLAG = flag:stewardship_contracts }
|
|
}
|
|
#Can we actually spawn any stewardship contracts?
|
|
any_in_list = {
|
|
list = potential_contract_employers
|
|
save_temporary_scope_as = considered_employer
|
|
can_create_stewardship_contract_trigger = { LAAMP = root EMPLOYER = scope:considered_employer }
|
|
}
|
|
}
|
|
#More organization in highly developed areas
|
|
modifier = {
|
|
scope:visiting_location.county = { development_level > bad_development_level }
|
|
add = 10
|
|
}
|
|
modifier = {
|
|
scope:visiting_location.county = { development_level > medium_development_level }
|
|
add = 10
|
|
}
|
|
#You're shrewd?
|
|
modifier = {
|
|
OR = {
|
|
has_trait = governor
|
|
has_trait = diligent
|
|
has_trait = administrator
|
|
}
|
|
factor = 2
|
|
}
|
|
#Set the type
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:stewardship_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:stewardship_contracts
|
|
}
|
|
}
|
|
#Learning Contracts
|
|
20 = {
|
|
#Did we spawn learning contracts recently?
|
|
trigger = {
|
|
NOR = {
|
|
#Is this contract type already saved from our last visit?
|
|
trigger_if = {
|
|
limit = { 1025_location_has_a_saved_contract_type_trigger = yes }
|
|
1025_saved_location_contract_type_matches_this_type_trigger = { CONTRACT_TYPE_FLAG = flag:learning_contracts }
|
|
}
|
|
trigger_else = { always = no }
|
|
#Are we on cooldown?
|
|
has_variable = 1025_had_learning_contracts_recently
|
|
#Has this contract type already been assigned to another contract scope this visit?
|
|
1025_contract_type_is_assigned_trigger = { CONTRACT_TYPE_FLAG = flag:learning_contracts }
|
|
}
|
|
#Can we actually spawn any learning contracts?
|
|
any_in_list = {
|
|
list = potential_contract_employers
|
|
save_temporary_scope_as = considered_employer
|
|
can_create_learning_contract_trigger = { LAAMP = root EMPLOYER = scope:considered_employer }
|
|
}
|
|
}
|
|
modifier = {
|
|
scope:visiting_location.county = { development_level > medium_development_level }
|
|
add = 10
|
|
}
|
|
modifier = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
#You're... academic?
|
|
modifier = {
|
|
has_trait = scholar
|
|
factor = 2
|
|
}
|
|
#Set the type
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:learning_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:learning_contracts
|
|
}
|
|
}
|
|
#Intrigue Contracts
|
|
20 = {
|
|
#Did we spawn intrigue contracts recently?
|
|
trigger = {
|
|
NOR = {
|
|
#Is this contract type already saved from our last visit?
|
|
trigger_if = {
|
|
limit = { 1025_location_has_a_saved_contract_type_trigger = yes }
|
|
1025_saved_location_contract_type_matches_this_type_trigger = { CONTRACT_TYPE_FLAG = flag:intrigue_contracts }
|
|
}
|
|
trigger_else = { always = no }
|
|
#Are we on cooldown?
|
|
has_variable = 1025_had_intrigue_contracts_recently
|
|
#Has this contract type already been assigned to another contract scope this visit?
|
|
1025_contract_type_is_assigned_trigger = { CONTRACT_TYPE_FLAG = flag:intrigue_contracts }
|
|
}
|
|
#Can we actually spawn any intrigue contracts?
|
|
any_in_list = {
|
|
list = potential_contract_employers
|
|
save_temporary_scope_as = considered_employer
|
|
can_create_intrigue_contract_trigger = { LAAMP = root EMPLOYER = scope:considered_employer }
|
|
}
|
|
}
|
|
modifier = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
add = 10
|
|
}
|
|
#You're... schemer?
|
|
modifier = {
|
|
has_trait = schemer
|
|
factor = 2
|
|
}
|
|
#Set the type
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:intrigue_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:intrigue_contracts
|
|
}
|
|
}
|
|
#Add more contract types below VV
|
|
}
|
|
scope:visiting_location = {
|
|
#Clean up any old variables
|
|
if = {
|
|
limit = { has_variable = 1025_saved_$NUM$_contract_type }
|
|
remove_variable = 1025_saved_$NUM$_contract_type
|
|
}
|
|
#We will not be saving legendary contracts as those are more volatile (does employer still exist? etc)
|
|
if = {
|
|
limit = { scope:1025_$NUM$_contract ?= flag:legendary_contract }
|
|
#Nothing
|
|
}
|
|
else_if = {
|
|
limit = { exists = scope:1025_$NUM$_contract }
|
|
#Remember this to avoid decision-scumming
|
|
set_variable = {
|
|
name = 1025_saved_$NUM$_contract_type #i.e. 1025_saved_first_contract_type
|
|
value = scope:1025_$NUM$_contract #i.e. flag:treasure_map_contract
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
}
|
|
else = {
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_no_contract
|
|
value = flag:no_contract
|
|
}
|
|
#Remember this to avoid decision-scumming
|
|
set_variable = {
|
|
name = 1025_saved_$NUM$_contract_type
|
|
value = scope:1025_$NUM$_no_contract
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Do we need an employer?
|
|
scripted_effect 1025_generate_employer_effect = {
|
|
#Treasure Map
|
|
if = {
|
|
limit = { scope:1025_$NUM$_contract = flag:treasure_map_contract }
|
|
#Find an employer for the treasure map contract
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1025_is_old_and_unable_trigger = yes
|
|
1025_appropriate_contract_employer_trigger = yes
|
|
}
|
|
save_scope_as = 1025_$NUM$_contract_employer
|
|
}
|
|
#Or create someone
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1025_$NUM$_contract_employer }
|
|
}
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
age = { 50 70 }
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = 1025_$NUM$_contract_employer
|
|
}
|
|
scope:1025_$NUM$_contract_employer = {
|
|
random_list = {
|
|
10 = { add_trait = blind }
|
|
10 = { add_trait = one_legged }
|
|
10 = { add_trait = one_eyed }
|
|
10 = { add_trait = infirm }
|
|
10 = { add_trait = wounded_2 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#This is where the lagg-ic happens... Probably needs revisiting later on.
|
|
scripted_effect 1025_find_ruler_and_spawn_legendary_contract_effect = {
|
|
#Saves us a scope:employing_ruler
|
|
random_county_in_region = {
|
|
region = $REGION$
|
|
limit = { 1025_region_has_suitable_employer_trigger = yes }
|
|
save_scope_as = contract_county
|
|
#Find the ruler
|
|
scope:contract_county.holder = { save_scope_as = employing_ruler }
|
|
}
|
|
#Legendary... contracts?
|
|
random_list = {
|
|
#Raid
|
|
10 = {
|
|
trigger = {
|
|
can_create_task_contract = {
|
|
type_name = laamp_raid_contract
|
|
employer = scope:employing_ruler
|
|
}
|
|
}
|
|
create_task_contract = {
|
|
task_contract_type = laamp_raid_contract
|
|
location = scope:employing_ruler.capital_province
|
|
task_contract_employer = scope:employing_ruler
|
|
task_contract_tier = task_contract_t3_value #Legendary!
|
|
save_scope_as = 1025_legendary_contract
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
can_create_task_contract = {
|
|
type_name = laamp_steal_artifact_contract
|
|
employer = scope:employing_ruler
|
|
}
|
|
}
|
|
create_task_contract = {
|
|
task_contract_type = laamp_steal_artifact_contract
|
|
location = scope:employing_ruler.capital_province
|
|
task_contract_employer = scope:employing_ruler
|
|
task_contract_tier = task_contract_t3_value #Legendary!
|
|
save_scope_as = 1025_legendary_contract
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
can_create_task_contract = {
|
|
type_name = laamp_treasure_hunting_contract
|
|
employer = scope:employing_ruler
|
|
}
|
|
}
|
|
create_task_contract = {
|
|
task_contract_type = laamp_treasure_hunting_contract
|
|
location = scope:employing_ruler.capital_province
|
|
task_contract_employer = scope:employing_ruler
|
|
task_contract_tier = task_contract_t3_value #Legendary!
|
|
save_scope_as = 1025_legendary_contract
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
can_create_task_contract = {
|
|
type_name = laamp_transport_vip
|
|
employer = scope:employing_ruler
|
|
}
|
|
}
|
|
create_task_contract = {
|
|
task_contract_type = laamp_transport_vip
|
|
location = scope:employing_ruler.capital_province
|
|
task_contract_employer = scope:employing_ruler
|
|
task_contract_tier = task_contract_t3_value #Legendary!
|
|
save_scope_as = 1025_legendary_contract
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
can_create_task_contract = {
|
|
type_name = laamp_transport_artifact
|
|
employer = scope:employing_ruler
|
|
}
|
|
}
|
|
create_task_contract = {
|
|
task_contract_type = laamp_transport_artifact
|
|
location = scope:employing_ruler.capital_province
|
|
task_contract_employer = scope:employing_ruler
|
|
task_contract_tier = task_contract_t3_value #Legendary!
|
|
save_scope_as = 1025_legendary_contract
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
can_create_task_contract = {
|
|
type_name = laamp_transport_gold
|
|
employer = scope:employing_ruler
|
|
}
|
|
}
|
|
create_task_contract = {
|
|
task_contract_type = laamp_transport_gold
|
|
location = scope:employing_ruler.capital_province
|
|
task_contract_employer = scope:employing_ruler
|
|
task_contract_tier = task_contract_t3_value #Legendary!
|
|
save_scope_as = 1025_legendary_contract
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = {
|
|
can_create_task_contract = {
|
|
type_name = laamp_transport_animal
|
|
employer = scope:employing_ruler
|
|
}
|
|
}
|
|
create_task_contract = {
|
|
task_contract_type = laamp_transport_animal
|
|
location = scope:employing_ruler.capital_province
|
|
task_contract_employer = scope:employing_ruler
|
|
task_contract_tier = task_contract_t3_value #Legendary!
|
|
save_scope_as = 1025_legendary_contract
|
|
}
|
|
}
|
|
}
|
|
scope:1025_legendary_contract = {
|
|
set_variable = {
|
|
name = retain_despite_distance
|
|
value = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
#Spawn the actual contracts
|
|
scripted_effect 1025_option_picked_spawn_contract_effect = {
|
|
#Treasure Map
|
|
switch = {
|
|
trigger = scope:1025_$NUM$_contract
|
|
flag:treasure_map_contract = {
|
|
hidden_effect = {
|
|
#Create treasure map contract
|
|
create_task_contract = {
|
|
task_contract_type = laamp_treasure_map_contract
|
|
location = scope:visiting_location
|
|
task_contract_employer = scope:1025_$NUM$_contract_employer
|
|
task_contract_tier = scope:1025_$NUM$_contract_employer.task_contract_tier_value
|
|
save_scope_as = 1025_treasure_map_contract
|
|
}
|
|
scope:1025_treasure_map_contract ?= {
|
|
#Pick treasure location
|
|
1025_set_contract_location_effect = yes
|
|
#Save location on contract
|
|
if = {
|
|
limit = { exists = scope:contract_province }
|
|
set_variable = {
|
|
name = contract_treasure_location
|
|
value = scope:contract_province
|
|
}
|
|
}
|
|
#Fallback
|
|
else = {
|
|
random_county_in_region = {
|
|
region = world_asia_minor #Something something Bosnia
|
|
random_county_province = { save_scope_as = treasure_province }
|
|
}
|
|
set_variable = {
|
|
name = contract_treasure_location
|
|
value = scope:treasure_province
|
|
}
|
|
}
|
|
#Save the pick-up location
|
|
set_variable = {
|
|
name = contract_picked_up_in_location
|
|
value = scope:visiting_location
|
|
}
|
|
}
|
|
}
|
|
#What do you mean _in your face_ :c
|
|
scope:1025_treasure_map_contract = {
|
|
open_view_data = {
|
|
view = task_contract
|
|
player = root
|
|
}
|
|
}
|
|
}
|
|
#Legendary Contract
|
|
flag:legendary_contract = {
|
|
hidden_effect = { #Comment out this hidden_effect = { ... } to better survey what contracts become available while debugging
|
|
#North Europe
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = { geographical_region = world_europe_north }
|
|
}
|
|
1025_find_ruler_and_spawn_legendary_contract_effect = { REGION = world_europe_north }
|
|
}
|
|
#West Europe
|
|
else_if = {
|
|
limit = {
|
|
scope:visiting_location = { geographical_region = world_europe_west }
|
|
}
|
|
1025_find_ruler_and_spawn_legendary_contract_effect = { REGION = world_europe_west }
|
|
}
|
|
#East Europe
|
|
else_if = {
|
|
limit = {
|
|
scope:visiting_location = { geographical_region = world_europe_east }
|
|
}
|
|
1025_find_ruler_and_spawn_legendary_contract_effect = { REGION = world_europe_east }
|
|
}
|
|
#South Europe
|
|
else_if = {
|
|
limit = {
|
|
scope:visiting_location = { geographical_region = world_europe_south }
|
|
}
|
|
1025_find_ruler_and_spawn_legendary_contract_effect = { REGION = world_europe_south }
|
|
}
|
|
#Middle East
|
|
else_if = {
|
|
limit = {
|
|
scope:visiting_location = { geographical_region = world_middle_east }
|
|
}
|
|
1025_find_ruler_and_spawn_legendary_contract_effect = { REGION = world_middle_east }
|
|
}
|
|
#India
|
|
else_if = {
|
|
limit = {
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
}
|
|
1025_find_ruler_and_spawn_legendary_contract_effect = { REGION = world_india }
|
|
}
|
|
#North Africa
|
|
else_if = {
|
|
limit = {
|
|
scope:visiting_location = { geographical_region = world_africa_north }
|
|
}
|
|
1025_find_ruler_and_spawn_legendary_contract_effect = { REGION = world_africa_north }
|
|
}
|
|
#West Africa
|
|
else_if = {
|
|
limit = {
|
|
scope:visiting_location = { geographical_region = world_africa_west }
|
|
}
|
|
1025_find_ruler_and_spawn_legendary_contract_effect = { REGION = world_africa_west }
|
|
}
|
|
#East Africa
|
|
else_if = {
|
|
limit = {
|
|
scope:visiting_location = { geographical_region = world_africa_east }
|
|
}
|
|
1025_find_ruler_and_spawn_legendary_contract_effect = { REGION = world_africa_east }
|
|
}
|
|
#West Steppe
|
|
else_if = {
|
|
limit = {
|
|
scope:visiting_location = { geographical_region = world_steppe_west }
|
|
}
|
|
1025_find_ruler_and_spawn_legendary_contract_effect = { REGION = world_steppe_west }
|
|
}
|
|
#East Steppe
|
|
else_if = {
|
|
limit = {
|
|
scope:visiting_location = { geographical_region = world_steppe_east }
|
|
}
|
|
1025_find_ruler_and_spawn_legendary_contract_effect = { REGION = world_steppe_east }
|
|
}
|
|
#YOLO
|
|
else = {
|
|
random_ruler = {
|
|
limit = {
|
|
save_temporary_scope_as = ruler_check
|
|
valid_laamp_basic_trigger = {
|
|
EMPLOYER = scope:ruler_check
|
|
LAAMP = root
|
|
}
|
|
}
|
|
save_scope_as = employing_ruler
|
|
}
|
|
}
|
|
}
|
|
#What do you mean _in your face_ :c
|
|
scope:1025_legendary_contract ?= {
|
|
open_view_data = {
|
|
view = task_contract
|
|
player = root
|
|
}
|
|
}
|
|
}
|
|
#Transport Contracts
|
|
flag:transport_contracts = {
|
|
hidden_effect = {
|
|
populate_task_contracts_for_area = {
|
|
location = scope:visiting_location
|
|
amount = num_contracts_spawned_value
|
|
group = { laamp_contracts_transport_group }
|
|
}
|
|
}
|
|
}
|
|
#Criminal Contracts
|
|
flag:criminal_contracts = {
|
|
hidden_effect = {
|
|
populate_task_contracts_for_area = {
|
|
location = scope:visiting_location
|
|
amount = num_contracts_spawned_value
|
|
group = { laamp_contracts_criminal_group }
|
|
}
|
|
}
|
|
}
|
|
#Justicar Contracts
|
|
flag:justicar_contracts = {
|
|
hidden_effect = {
|
|
populate_task_contracts_for_area = {
|
|
location = scope:visiting_location
|
|
amount = num_contracts_spawned_value
|
|
group = { laamp_contracts_justicar_group }
|
|
}
|
|
}
|
|
}
|
|
#Hireling Contracts
|
|
flag:hireling_contracts = {
|
|
hidden_effect = {
|
|
populate_task_contracts_for_area = {
|
|
location = scope:visiting_location
|
|
amount = num_contracts_spawned_value
|
|
group = { laamp_contracts_hireling_group laamp_contracts_martial_group } #Stashing martial here, for now
|
|
}
|
|
}
|
|
}
|
|
#Diplomacy Contracts
|
|
flag:diplomacy_contracts = {
|
|
hidden_effect = {
|
|
populate_task_contracts_for_area = {
|
|
location = scope:visiting_location
|
|
amount = num_contracts_spawned_value
|
|
group = { laamp_contracts_diplomacy_group }
|
|
}
|
|
}
|
|
}
|
|
#Stewardship Contracts
|
|
flag:stewardship_contracts = {
|
|
hidden_effect = {
|
|
populate_task_contracts_for_area = {
|
|
location = scope:visiting_location
|
|
amount = num_contracts_spawned_value
|
|
group = { laamp_contracts_stewardship_group }
|
|
}
|
|
}
|
|
}
|
|
#Learning Contracts
|
|
flag:learning_contracts = {
|
|
hidden_effect = {
|
|
populate_task_contracts_for_area = {
|
|
location = scope:visiting_location
|
|
amount = num_contracts_spawned_value
|
|
group = { laamp_contracts_learning_group }
|
|
}
|
|
}
|
|
}
|
|
#Intrigue Contracts
|
|
flag:intrigue_contracts = {
|
|
hidden_effect = {
|
|
populate_task_contracts_for_area = {
|
|
location = scope:visiting_location
|
|
amount = num_contracts_spawned_value
|
|
group = { laamp_contracts_intrigue_group }
|
|
}
|
|
}
|
|
}
|
|
#Add more contract types below VV
|
|
}
|
|
}
|
|
|
|
#Set up the tooltip, cooldown and prestige cost
|
|
scripted_effect 1025_option_tooltip_and_cooldown_contract_type_effect = {
|
|
#Contract stuff
|
|
switch = {
|
|
trigger = scope:1025_$NUM$_contract
|
|
#Treasure Map
|
|
flag:treasure_map_contract = {
|
|
custom_tooltip = ep3_laamp_decision_event.1025.treasure_map_contract_tt
|
|
#Set up the cooldown for the contract type
|
|
set_variable = {
|
|
name = 1025_had_treasure_map_contract_recently
|
|
days = visit_settlement_large_cooldown_days
|
|
}
|
|
#Prestige cost
|
|
add_prestige = minor_prestige_loss
|
|
}
|
|
#Legendary Contract
|
|
flag:legendary_contract = {
|
|
custom_tooltip = ep3_laamp_decision_event.1025.legendary_contract_tt
|
|
#Set up the cooldown for the contract type
|
|
set_variable = {
|
|
name = 1025_had_legendary_contract_recently
|
|
days = visit_settlement_large_cooldown_days
|
|
}
|
|
#Prestige cost
|
|
add_prestige = medium_prestige_loss
|
|
}
|
|
#Transport Contracts
|
|
flag:transport_contracts = {
|
|
custom_tooltip = ep3_laamp_decision_event.1025.transport_contracts_tt
|
|
#Set up the cooldown for the contract type
|
|
set_variable = {
|
|
name = 1025_had_transport_contracts_recently
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
#Prestige cost
|
|
add_prestige = minor_prestige_loss
|
|
}
|
|
#Criminal Contracts
|
|
flag:criminal_contracts = {
|
|
custom_tooltip = ep3_laamp_decision_event.1025.criminal_contracts_tt
|
|
#Set up the cooldown for the contract type
|
|
set_variable = {
|
|
name = 1025_had_criminal_contracts_recently
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
#No prestige cost
|
|
}
|
|
#Justicar Contracts
|
|
flag:justicar_contracts = {
|
|
custom_tooltip = ep3_laamp_decision_event.1025.justicar_contracts_tt
|
|
#Set up the cooldown for the contract type
|
|
set_variable = {
|
|
name = 1025_had_justicar_contracts_recently
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
#Prestige cost
|
|
add_prestige = minor_prestige_loss
|
|
}
|
|
#Hireling Contracts
|
|
flag:hireling_contracts = {
|
|
custom_tooltip = ep3_laamp_decision_event.1025.hireling_contracts_tt
|
|
#Set up the cooldown for the contract type
|
|
set_variable = {
|
|
name = 1025_had_hireling_contracts_recently
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
#Prestige cost
|
|
add_prestige = minor_prestige_loss
|
|
}
|
|
#Diplomacy Contracts
|
|
flag:diplomacy_contracts = {
|
|
custom_tooltip = ep3_laamp_decision_event.1025.diplomacy_contracts_tt
|
|
#Set up the cooldown for the contract type
|
|
set_variable = {
|
|
name = 1025_had_diplomacy_contracts_recently
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
#Prestige cost
|
|
add_prestige = minor_prestige_loss
|
|
}
|
|
#Stewardship Contracts
|
|
flag:stewardship_contracts = {
|
|
custom_tooltip = ep3_laamp_decision_event.1025.stewardship_contracts_tt
|
|
#Set up the cooldown for the contract type
|
|
set_variable = {
|
|
name = 1025_had_stewardship_contracts_recently
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
#Prestige cost
|
|
add_prestige = minor_prestige_loss
|
|
}
|
|
#Learning Contracts
|
|
flag:learning_contracts = {
|
|
custom_tooltip = ep3_laamp_decision_event.1025.learning_contracts_tt
|
|
#Set up the cooldown for the contract type
|
|
set_variable = {
|
|
name = 1025_had_learning_contracts_recently
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
#Prestige cost
|
|
add_prestige = minor_prestige_loss
|
|
}
|
|
#Intrigue Contracts
|
|
flag:intrigue_contracts = {
|
|
custom_tooltip = ep3_laamp_decision_event.1025.intrigue_contracts_tt
|
|
#Set up the cooldown for the contract type
|
|
set_variable = {
|
|
name = 1025_had_intrigue_contracts_recently
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
#Prestige cost
|
|
add_prestige = minor_prestige_loss
|
|
}
|
|
#Add more contract types below VV
|
|
}
|
|
}
|
|
|
|
#Remember, remember (... but not legendary contracts)
|
|
scripted_effect 1025_translate_variable_into_flag_effect = {
|
|
scope:visiting_location = {
|
|
#The Nothingness
|
|
if = {
|
|
limit = { var:1025_saved_$NUM$_contract_type ?= flag:no_contract }
|
|
#Nothing
|
|
}
|
|
#Treasure Map
|
|
if = {
|
|
limit = { var:1025_saved_$NUM$_contract_type ?= flag:treasure_map_contract }
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:treasure_map_contract
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
root = {
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:treasure_map_contract
|
|
}
|
|
}
|
|
}
|
|
#Transport Contracts
|
|
if = {
|
|
limit = { var:1025_saved_$NUM$_contract_type ?= flag:transport_contracts }
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:transport_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
root = {
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:transport_contracts
|
|
}
|
|
}
|
|
}
|
|
#Criminal Contracts
|
|
if = {
|
|
limit = { var:1025_saved_$NUM$_contract_type ?= flag:criminal_contracts }
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:criminal_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
root = {
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:criminal_contracts
|
|
}
|
|
}
|
|
}
|
|
#Justicar Contracts
|
|
if = {
|
|
limit = { var:1025_saved_$NUM$_contract_type ?= flag:justicar_contracts }
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:justicar_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
root = {
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:justicar_contracts
|
|
}
|
|
}
|
|
}
|
|
#Hireling Contracts
|
|
if = {
|
|
limit = { var:1025_saved_$NUM$_contract_type ?= flag:hireling_contracts }
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:hireling_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
root = {
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:hireling_contracts
|
|
}
|
|
}
|
|
}
|
|
#Diplomacy Contracts
|
|
if = {
|
|
limit = { var:1025_saved_$NUM$_contract_type ?= flag:diplomacy_contracts }
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:diplomacy_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
root = {
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:diplomacy_contracts
|
|
}
|
|
}
|
|
}
|
|
#Stewardship Contracts
|
|
if = {
|
|
limit = { var:1025_saved_$NUM$_contract_type ?= flag:stewardship_contracts }
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:stewardship_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
root = {
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:stewardship_contracts
|
|
}
|
|
}
|
|
}
|
|
#Learning Contracts
|
|
if = {
|
|
limit = { var:1025_saved_$NUM$_contract_type ?= flag:learning_contracts }
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:learning_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
root = {
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:learning_contracts
|
|
}
|
|
}
|
|
}
|
|
#Intrigue Contracts
|
|
if = {
|
|
limit = { var:1025_saved_$NUM$_contract_type ?= flag:intrigue_contracts }
|
|
save_scope_value_as = {
|
|
name = 1025_$NUM$_contract
|
|
value = flag:intrigue_contracts
|
|
}
|
|
#Save as a temporary variable that is removed after exiting the decision to avoid desc-bloat
|
|
root = {
|
|
set_variable = {
|
|
name = 1025_$NUM$_contract_desc
|
|
value = flag:intrigue_contracts
|
|
}
|
|
}
|
|
}
|
|
#Add more contract types below VV
|
|
}
|
|
}
|
|
|
|
#This location has a saved contract variable
|
|
scripted_trigger 1025_location_has_a_saved_contract_type_trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_variable = 1025_saved_first_contract_type
|
|
has_variable = 1025_saved_second_contract_type
|
|
has_variable = 1025_saved_third_contract_type
|
|
}
|
|
}
|
|
}
|
|
|
|
#The saved contract variable is of CONTRACT_TYPE_FLAG-type
|
|
scripted_trigger 1025_saved_location_contract_type_matches_this_type_trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
var:1025_saved_first_contract_type ?= $CONTRACT_TYPE_FLAG$
|
|
var:1025_saved_second_contract_type ?= $CONTRACT_TYPE_FLAG$
|
|
var:1025_saved_third_contract_type ?= $CONTRACT_TYPE_FLAG$
|
|
}
|
|
}
|
|
}
|
|
|
|
#Used more than 3 times eh
|
|
scripted_trigger 1025_region_has_suitable_employer_trigger = {
|
|
holder = {
|
|
highest_held_title_tier > tier_duchy
|
|
NOT = { is_in_list = checked_holders }
|
|
save_temporary_scope_as = holder_check
|
|
valid_laamp_basic_trigger = {
|
|
EMPLOYER = scope:holder_check
|
|
LAAMP = root
|
|
}
|
|
#Copying the special contracts from the character interaction, for now. MUST match the random_list in 1025_find_ruler_and_spawn_legendary_contract_effect
|
|
root = {
|
|
OR = {
|
|
can_create_task_contract = {
|
|
type_name = laamp_raid_contract
|
|
employer = scope:holder_check
|
|
}
|
|
can_create_task_contract = {
|
|
type_name = laamp_steal_artifact_contract
|
|
employer = scope:holder_check
|
|
}
|
|
can_create_task_contract = {
|
|
type_name = laamp_treasure_hunting_contract
|
|
employer = scope:holder_check
|
|
}
|
|
can_create_task_contract = {
|
|
type_name = laamp_transport_vip
|
|
employer = scope:holder_check
|
|
}
|
|
can_create_task_contract = {
|
|
type_name = laamp_transport_artifact
|
|
employer = scope:holder_check
|
|
}
|
|
can_create_task_contract = {
|
|
type_name = laamp_transport_gold
|
|
employer = scope:holder_check
|
|
}
|
|
can_create_task_contract = {
|
|
type_name = laamp_transport_animal
|
|
employer = scope:holder_check
|
|
}
|
|
}
|
|
}
|
|
add_to_temporary_list = checked_holders
|
|
}
|
|
}
|
|
|
|
#... well, can we?
|
|
scripted_trigger 1025_can_create_legendary_contract_trigger = {
|
|
OR = {
|
|
#North Europe
|
|
AND = {
|
|
scope:visiting_location = { geographical_region = world_europe_north }
|
|
any_county_in_region = {
|
|
region = world_europe_north
|
|
1025_region_has_suitable_employer_trigger = yes
|
|
}
|
|
}
|
|
#West Europe
|
|
AND = {
|
|
scope:visiting_location = { geographical_region = world_europe_west }
|
|
any_county_in_region = {
|
|
region = world_europe_west
|
|
1025_region_has_suitable_employer_trigger = yes
|
|
}
|
|
}
|
|
#East Europe
|
|
AND = {
|
|
scope:visiting_location = { geographical_region = world_europe_east }
|
|
any_county_in_region = {
|
|
region = world_europe_east
|
|
1025_region_has_suitable_employer_trigger = yes
|
|
}
|
|
}
|
|
#South Europe
|
|
AND = {
|
|
scope:visiting_location = { geographical_region = world_europe_south }
|
|
any_county_in_region = {
|
|
region = world_europe_south
|
|
1025_region_has_suitable_employer_trigger = yes
|
|
}
|
|
}
|
|
#Middle East
|
|
AND = {
|
|
scope:visiting_location = { geographical_region = world_middle_east }
|
|
any_county_in_region = {
|
|
region = world_middle_east
|
|
1025_region_has_suitable_employer_trigger = yes
|
|
}
|
|
}
|
|
#India
|
|
AND = {
|
|
scope:visiting_location = { geographical_region = world_india }
|
|
any_county_in_region = {
|
|
region = world_india
|
|
1025_region_has_suitable_employer_trigger = yes
|
|
}
|
|
}
|
|
#North Africa
|
|
AND = {
|
|
scope:visiting_location = { geographical_region = world_africa_north }
|
|
any_county_in_region = {
|
|
region = world_africa_north
|
|
1025_region_has_suitable_employer_trigger = yes
|
|
}
|
|
}
|
|
#West Africa
|
|
AND = {
|
|
scope:visiting_location = { geographical_region = world_africa_west }
|
|
any_county_in_region = {
|
|
region = world_africa_west
|
|
1025_region_has_suitable_employer_trigger = yes
|
|
}
|
|
}
|
|
#East Africa
|
|
AND = {
|
|
scope:visiting_location = { geographical_region = world_africa_east }
|
|
any_county_in_region = {
|
|
region = world_africa_east
|
|
1025_region_has_suitable_employer_trigger = yes
|
|
}
|
|
}
|
|
#West Steppe
|
|
AND = {
|
|
scope:visiting_location = { geographical_region = world_steppe_west }
|
|
any_county_in_region = {
|
|
region = world_steppe_west
|
|
1025_region_has_suitable_employer_trigger = yes
|
|
}
|
|
}
|
|
#East Steppe
|
|
AND = {
|
|
scope:visiting_location = { geographical_region = world_steppe_east }
|
|
any_county_in_region = {
|
|
region = world_steppe_east
|
|
1025_region_has_suitable_employer_trigger = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Don't duplicate contract types between contract scopes
|
|
scripted_trigger 1025_contract_type_is_assigned_trigger = {
|
|
OR = {
|
|
scope:1025_first_contract ?= $CONTRACT_TYPE_FLAG$
|
|
scope:1025_second_contract ?= $CONTRACT_TYPE_FLAG$
|
|
scope:1025_third_contract ?= $CONTRACT_TYPE_FLAG$
|
|
}
|
|
}
|
|
|
|
#Since the treasure map contract doesn't have a time limit, make 'em old and unfit
|
|
scripted_trigger 1025_is_old_and_unable_trigger = {
|
|
age > 50
|
|
is_imprisoned = no
|
|
OR = {
|
|
has_trait = blind
|
|
has_trait = one_legged
|
|
has_trait = one_eyed
|
|
has_trait = infirm
|
|
has_trait = wounded_1
|
|
}
|
|
}
|
|
|
|
#Standard checks
|
|
scripted_trigger 1025_appropriate_contract_employer_trigger = {
|
|
# Players shouldn't get tangled up in contracts, ever.
|
|
is_ai = yes
|
|
# Plus some standard stuff.
|
|
is_alive = yes
|
|
is_adult = yes
|
|
is_incapable = no
|
|
# Don't offer to work with those who've wronged us.
|
|
NOR = {
|
|
government_has_flag = government_is_landless_adventurer
|
|
# No one we're at war with.
|
|
is_at_war_with = root
|
|
# Rivals are cheap to grab.
|
|
has_relation_rival = root
|
|
# Expulsion
|
|
custom_tooltip = {
|
|
text = adventurer_expelled_trigger_tt
|
|
OR = {
|
|
has_opinion_modifier = {
|
|
target = root
|
|
modifier = eviction_ignored_opinion
|
|
}
|
|
any_liege_or_above = {
|
|
has_opinion_modifier = {
|
|
target = root
|
|
modifier = eviction_ignored_opinion
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Landed checks
|
|
scripted_trigger 1025_is_appropriate_landed_contract_employer_trigger = {
|
|
1025_appropriate_contract_employer_trigger = yes
|
|
this.capital_province ?= {
|
|
squared_distance = {
|
|
target = root.domicile.domicile_location
|
|
value < define:NTaskContract|ADVENTURER_DISTANCE_RESTRICTION
|
|
}
|
|
}
|
|
}
|
|
|
|
#In too deep, man
|
|
scripted_trigger 1025_is_gated_due_to_thievery_trigger = {
|
|
has_trait = gallowsbait
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value >= 60
|
|
}
|
|
}
|
|
|
|
#Should we be gated from contracts?
|
|
scripted_trigger 1025_is_renowned_thief_trigger = {
|
|
trigger_if = {
|
|
limit = { scope:1025_$NUM$_contract = flag:treasure_map_contract }
|
|
custom_tooltip = {
|
|
text = gallowsbait_thief_blocked_from_contract.tt
|
|
1025_is_gated_due_to_thievery_trigger = no
|
|
}
|
|
}
|
|
trigger_else = { always = yes }
|
|
}
|
|
|
|
#Nothing at all!
|
|
scripted_trigger 1025_no_contracts_trigger = {
|
|
OR = {
|
|
#All contract types are on cooldown, I guess
|
|
NOR = {
|
|
exists = scope:1025_first_contract
|
|
exists = scope:1025_second_contract
|
|
exists = scope:1025_third_contract
|
|
}
|
|
has_variable = 1025_has_contracted_recently
|
|
}
|
|
}
|
|
|
|
|
|
#Head to the Town Crier to spawn Contract(s)
|
|
ep3_laamp_decision_event.1025 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1025.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#What're they doing?
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#Use this when we have all contract types on cooldown. Should be a bored crier.
|
|
##COOLDOWN
|
|
triggered_desc = {
|
|
trigger = { 1025_no_contracts_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1025.desc_nothing
|
|
}
|
|
#RETURN: Tribal - Legendary contract
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
exists = scope:been_to_contract
|
|
scope:contract_loc_tracker ?= 0
|
|
OR = {
|
|
scope:1025_first_contract ?= flag:legendary_contract
|
|
scope:1025_second_contract ?= flag:legendary_contract
|
|
scope:1025_third_contract ?= flag:legendary_contract
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_tribal_legendary_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
scope:contract_loc_tracker ?= 1
|
|
OR = {
|
|
scope:1025_first_contract ?= flag:legendary_contract
|
|
scope:1025_second_contract ?= flag:legendary_contract
|
|
scope:1025_third_contract ?= flag:legendary_contract
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_tribal_legendary_returned_02
|
|
}
|
|
}
|
|
#RETURN: Legendary contract
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_contract
|
|
scope:contract_loc_tracker ?= 0
|
|
OR = {
|
|
scope:1025_first_contract ?= flag:legendary_contract
|
|
scope:1025_second_contract ?= flag:legendary_contract
|
|
scope:1025_third_contract ?= flag:legendary_contract
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_legendary_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:contract_loc_tracker ?= 1
|
|
OR = {
|
|
scope:1025_first_contract ?= flag:legendary_contract
|
|
scope:1025_second_contract ?= flag:legendary_contract
|
|
scope:1025_third_contract ?= flag:legendary_contract
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_legendary_returned_02
|
|
}
|
|
}
|
|
#RETURN: Tribal - No legendary contract
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
exists = scope:been_to_contract
|
|
scope:contract_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_tribal_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
scope:contract_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_tribal_returned_02
|
|
}
|
|
}
|
|
#RETURN: No legendary contract
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_contract
|
|
scope:contract_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:contract_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1025.desc_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME: Tribal - Legendary contract - Reused Elder
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
exists = scope:laamp_recurring_town_crier
|
|
NOR = {
|
|
exists = scope:been_to_contract
|
|
has_variable = 1025_has_contracted_recently
|
|
}
|
|
OR = {
|
|
scope:1025_first_contract ?= flag:legendary_contract
|
|
scope:1025_second_contract ?= flag:legendary_contract
|
|
scope:1025_third_contract ?= flag:legendary_contract
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_tribal_legendary_reused_crier
|
|
}
|
|
#FIRST TIME: Legendary contract - Reused Town Crier
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_town_crier
|
|
NOR = {
|
|
exists = scope:been_to_contract
|
|
has_variable = 1025_has_contracted_recently
|
|
}
|
|
OR = {
|
|
scope:1025_first_contract ?= flag:legendary_contract
|
|
scope:1025_second_contract ?= flag:legendary_contract
|
|
scope:1025_third_contract ?= flag:legendary_contract
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_legendary_reused_crier
|
|
}
|
|
#FIRST TIME: Tribal - Legendary contract
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
NOR = {
|
|
exists = scope:been_to_contract
|
|
has_variable = 1025_has_contracted_recently
|
|
}
|
|
OR = {
|
|
scope:1025_first_contract ?= flag:legendary_contract
|
|
scope:1025_second_contract ?= flag:legendary_contract
|
|
scope:1025_third_contract ?= flag:legendary_contract
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_tribal_legendary
|
|
}
|
|
#FIRST TIME: Legendary contract
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOR = {
|
|
exists = scope:been_to_contract
|
|
has_variable = 1025_has_contracted_recently
|
|
}
|
|
OR = {
|
|
scope:1025_first_contract ?= flag:legendary_contract
|
|
scope:1025_second_contract ?= flag:legendary_contract
|
|
scope:1025_third_contract ?= flag:legendary_contract
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_legendary
|
|
}
|
|
#FIRST TIME: Tribal - No legendary contract - Reused Town Crier
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
exists = scope:laamp_recurring_town_crier
|
|
NOR = {
|
|
exists = scope:been_to_contract
|
|
has_variable = 1025_has_contracted_recently
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_tribal_reused_crier
|
|
}
|
|
#FIRST TIME: No legendary contract - Reused Town Crier
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_town_crier
|
|
NOR = {
|
|
exists = scope:been_to_contract
|
|
has_variable = 1025_has_contracted_recently
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_reused_crier
|
|
}
|
|
#FIRST TIME: Tribal - No legendary contract
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
NOR = {
|
|
exists = scope:been_to_contract
|
|
has_variable = 1025_has_contracted_recently
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_tribal
|
|
}
|
|
#FIRST TIME: No legendary contract
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOR = {
|
|
exists = scope:been_to_contract
|
|
has_variable = 1025_has_contracted_recently
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc
|
|
}
|
|
}
|
|
#Concatenated and outsourced to custom_loc - trust me, this is less cursed than the alternative
|
|
#A exists
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:1025_first_contract
|
|
NOR = {
|
|
exists = scope:1025_second_contract
|
|
exists = scope:1025_third_contract
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_concatenated_A
|
|
}
|
|
#AB exists
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:1025_first_contract
|
|
exists = scope:1025_second_contract
|
|
NOT = { exists = scope:1025_third_contract }
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_concatenated_AB
|
|
}
|
|
#ABC exists
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:1025_first_contract
|
|
exists = scope:1025_second_contract
|
|
exists = scope:1025_third_contract
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_concatenated_ABC
|
|
}
|
|
#B exists
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:1025_second_contract
|
|
NOR = {
|
|
exists = scope:1025_first_contract
|
|
exists = scope:1025_third_contract
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_concatenated_B
|
|
}
|
|
#BC exists
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:1025_first_contract }
|
|
exists = scope:1025_second_contract
|
|
exists = scope:1025_third_contract
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_concatenated_BC
|
|
}
|
|
#C exists
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:1025_third_contract
|
|
NOR = {
|
|
exists = scope:1025_first_contract
|
|
exists = scope:1025_second_contract
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_concatenated_C
|
|
}
|
|
#AC exists
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:1025_first_contract
|
|
exists = scope:1025_third_contract
|
|
NOT = { exists = scope:1025_second_contract }
|
|
}
|
|
desc = ep3_laamp_decision_event.1025.desc_concatenated_AC
|
|
}
|
|
}
|
|
theme = landless_adventurer
|
|
override_sound = { reference = "event:/SFX/Events/Themes/sfx_event_theme_type_activity" }
|
|
override_background = {
|
|
trigger = { 1000_is_a_nomadic_holding_trigger = yes }
|
|
reference = mpo_camp_steppe
|
|
}
|
|
override_background = { reference = garden_location }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
animation = survey
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = { 1025_no_contracts_trigger = yes }
|
|
animation = worry
|
|
}
|
|
animation = interested
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_town_crier
|
|
triggered_animation = {
|
|
trigger = { 1025_no_contracts_trigger = yes }
|
|
animation = boredom
|
|
}
|
|
animation = debating
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = contract }
|
|
#Run all of this once
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:been_to_contract }
|
|
}
|
|
#Spawn a Town Crier
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_crier_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
#_Elder_
|
|
trigger_if = {
|
|
limit = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
age >= 50
|
|
}
|
|
}
|
|
save_scope_as = laamp_town_crier
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_town_crier
|
|
}
|
|
#Otherwise find a Town Crier in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_town_crier }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
is_available_healthy_adult = yes
|
|
NOT = { has_trait = shy }
|
|
#_Elder_
|
|
trigger_if = {
|
|
limit = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
age >= 50
|
|
}
|
|
}
|
|
save_scope_as = laamp_town_crier
|
|
}
|
|
}
|
|
#Otherwise create a Town Crier
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_town_crier }
|
|
}
|
|
#Create Elder to stuff in pool
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
age = { 50 60 }
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_town_crier
|
|
}
|
|
}
|
|
#Create Town Crier to stuff in pool
|
|
else = {
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_town_crier
|
|
}
|
|
}
|
|
}
|
|
#Remember the Town Crier
|
|
1010_remember_vendor_character_effect = { GUILD = crier CHARACTER = scope:laamp_town_crier }
|
|
#First Contract
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1025_first_contract }
|
|
}
|
|
#Did we, or someone else, check for contracts here recently?
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = { has_variable = 1025_saved_first_contract_type }
|
|
}
|
|
#Translating values from variable to flag translates to number?
|
|
1025_translate_variable_into_flag_effect = { NUM = first }
|
|
}
|
|
#Otherwise generate a new type
|
|
else = {
|
|
1025_randomize_and_remember_contract_type_effect = { NUM = first }
|
|
}
|
|
}
|
|
#Set up the employer, if necessary
|
|
if = {
|
|
limit = { exists = scope:1025_first_contract }
|
|
1025_generate_employer_effect = { NUM = first }
|
|
}
|
|
#Second Contract
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1025_second_contract }
|
|
}
|
|
#Did we, or someone else, check for contracts here recently?
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = { has_variable = 1025_saved_second_contract_type }
|
|
}
|
|
#Translating values from variable to flag
|
|
1025_translate_variable_into_flag_effect = { NUM = second }
|
|
}
|
|
#Otherwise generate a new type
|
|
else = {
|
|
1025_randomize_and_remember_contract_type_effect = { NUM = second }
|
|
}
|
|
}
|
|
#Set up the employer, if necessary
|
|
if = {
|
|
limit = { exists = scope:1025_second_contract }
|
|
1025_generate_employer_effect = { NUM = second }
|
|
}
|
|
#If no legendary contract, Third Contract
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1025_third_contract }
|
|
}
|
|
#Did we, or someone else, check for contracts here recently?
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = { has_variable = 1025_saved_third_contract_type }
|
|
}
|
|
#Translating values from variable to flag
|
|
1025_translate_variable_into_flag_effect = { NUM = third }
|
|
}
|
|
#Otherwise generate a new type
|
|
else = {
|
|
1025_randomize_and_remember_contract_type_effect = { NUM = third }
|
|
}
|
|
}
|
|
#Set up the employer, if necessary
|
|
if = {
|
|
limit = { exists = scope:1025_third_contract }
|
|
1025_generate_employer_effect = { NUM = third }
|
|
}
|
|
}
|
|
}
|
|
#Contract A
|
|
option = {
|
|
name = ep3_laamp_decision_event.1025.a
|
|
trigger = {
|
|
exists = scope:1025_first_contract
|
|
1025_is_renowned_thief_trigger = { NUM = first }
|
|
}
|
|
show_as_unavailable = { exists = scope:1025_first_contract }
|
|
#Remove the remember-variable for A
|
|
scope:visiting_location = { remove_variable ?= 1025_saved_first_contract_type }
|
|
#Spawn contract(s)
|
|
1025_option_picked_spawn_contract_effect = { NUM = first }
|
|
#Pick tooltip and set up the cooldown for the contract type
|
|
1025_option_tooltip_and_cooldown_contract_type_effect = { NUM = first }
|
|
#Done here; go back to the main event
|
|
1025_finished_contract_effect = yes
|
|
}
|
|
#Contract B
|
|
option = {
|
|
name = ep3_laamp_decision_event.1025.b
|
|
trigger = {
|
|
exists = scope:1025_second_contract
|
|
1025_is_renowned_thief_trigger = { NUM = second }
|
|
}
|
|
show_as_unavailable = { exists = scope:1025_second_contract }
|
|
#Remove the remember-variable for B
|
|
scope:visiting_location = { remove_variable ?= 1025_saved_second_contract_type }
|
|
#Spawn contract(s)
|
|
1025_option_picked_spawn_contract_effect = { NUM = second }
|
|
#Pick tooltip and set up the cooldown for the contract type
|
|
1025_option_tooltip_and_cooldown_contract_type_effect = { NUM = second }
|
|
#Done here; go back to the main event
|
|
1025_finished_contract_effect = yes
|
|
}
|
|
#Contract C
|
|
option = {
|
|
name = ep3_laamp_decision_event.1025.c
|
|
trigger = {
|
|
exists = scope:1025_third_contract
|
|
1025_is_renowned_thief_trigger = { NUM = third }
|
|
}
|
|
show_as_unavailable = { exists = scope:1025_third_contract }
|
|
#Remove the remember-variable for C
|
|
scope:visiting_location = { remove_variable ?= 1025_saved_third_contract_type }
|
|
#Spawn contract(s)
|
|
1025_option_picked_spawn_contract_effect = { NUM = third }
|
|
#Pick tooltip and set up the cooldown for the contract type
|
|
1025_option_tooltip_and_cooldown_contract_type_effect = { NUM = third }
|
|
#Done here; go back to the main event
|
|
1025_finished_contract_effect = yes
|
|
}
|
|
#I want to do something else
|
|
option = {
|
|
#Nothing here
|
|
name = {
|
|
trigger = {
|
|
NOT = {
|
|
exists = scope:been_to_contract
|
|
exists = scope:1025_first_contract
|
|
exists = scope:1025_second_contract
|
|
exists = scope:1025_third_contract
|
|
}
|
|
}
|
|
text = ep3_laamp_decision_event.1025.d_nothing
|
|
}
|
|
name = ep3_laamp_decision_event.1025.d
|
|
if = {
|
|
limit = {
|
|
NOT = {
|
|
exists = scope:1025_first_contract
|
|
exists = scope:1025_second_contract
|
|
exists = scope:1025_third_contract
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = laamp_decision_has_contracted
|
|
value = flag:no
|
|
}
|
|
}
|
|
#For desc flavor
|
|
else = { save_scope_as = been_to_contract }
|
|
#Go back to the main event
|
|
1001_return_to_second_effect = yes
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:contract }
|
|
}
|
|
}
|
|
|
|
|
|
######################################################################
|
|
# TAVERN
|
|
# ep3_laamp_decision_event.1030
|
|
######################################################################
|
|
|
|
#Withered workaround
|
|
scripted_effect 1030_save_hub_scope_effect = {
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:been_to_$HUB$ }
|
|
}
|
|
save_scope_as = been_to_$HUB$
|
|
}
|
|
}
|
|
|
|
#Set the correct variable to block off the Tavern option and remove the desc flavor variable
|
|
scripted_effect 1030_finished_tavern_effect = {
|
|
remove_list_variable = {
|
|
name = list_of_options
|
|
target = flag:has_tavern_option
|
|
}
|
|
save_scope_as = laamp_decision_finished_tavern_option
|
|
}
|
|
|
|
#Nothing left for us to do
|
|
scripted_trigger 1030_done_with_tavern_trigger = {
|
|
exists = scope:laamp_decision_has_storied
|
|
exists = scope:laamp_decision_has_recruited
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_spouse_material }
|
|
exists = scope:laamp_decision_has_spoused
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_hooded_figure }
|
|
exists = scope:laamp_decision_recruited_hood
|
|
}
|
|
}
|
|
|
|
#Should be an alright seedy fella
|
|
scripted_trigger 1030_gallowsbait_character_trigger = {
|
|
intrigue > 15
|
|
has_trait = gallowsbait
|
|
OR = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = bandit
|
|
value = medium_lifestyle_random_xp_low
|
|
}
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = trickster
|
|
value = medium_lifestyle_random_xp_low
|
|
}
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value = medium_lifestyle_random_xp_low
|
|
}
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = poacher
|
|
value = medium_lifestyle_random_xp_low
|
|
}
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = marauder
|
|
value = medium_lifestyle_random_xp_low
|
|
}
|
|
}
|
|
}
|
|
|
|
#Not Emperors and Kings, except if...
|
|
scripted_trigger 1030_appropriate_noble_trigger = {
|
|
is_available_ai_adult = yes
|
|
NOR = {
|
|
is_contact_of = root
|
|
has_variable = 1030_has_been_hooded_recently
|
|
has_any_scripted_relation = root #Remember to disable this for rival should we revisit to add some form of murder option in the future
|
|
}
|
|
#... they're eccentric
|
|
trigger_if = {
|
|
limit = {
|
|
NOT = { has_trait = eccentric }
|
|
}
|
|
highest_held_title_tier <= tier_duchy
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1030_not_already_used_character_trigger = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
}
|
|
|
|
|
|
#Visit the local tavern
|
|
ep3_laamp_decision_event.1030 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1030.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#Intro
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: We've returned from Main Square
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:main_square
|
|
1000_is_a_nomadic_holding_trigger = no
|
|
exists = scope:been_to_tavern
|
|
OR = {
|
|
scope:tavern_loc_tracker ?= 0
|
|
scope:tavern_loc_tracker ?= 2
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_returned_01
|
|
}
|
|
#Nomad variant
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:main_square
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
exists = scope:been_to_tavern
|
|
OR = {
|
|
scope:tavern_loc_tracker ?= 0
|
|
scope:tavern_loc_tracker ?= 2
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_nomad_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:main_square
|
|
scope:tavern_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_returned_02
|
|
}
|
|
}
|
|
#RETURN: We've returned from the Storyteller
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = no
|
|
var:return_from_location ?= flag:storyteller
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_returned_from_story
|
|
}
|
|
#Nomad variant
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
var:return_from_location ?= flag:storyteller
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_nomad_returned_from_story
|
|
}
|
|
#RETURN: We've returned from the Recruitment
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = no
|
|
var:return_from_location ?= flag:recruit
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_returned_from_recruit
|
|
}
|
|
#Nomad variant
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
var:return_from_location ?= flag:recruit
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_nomad_returned_from_recruit
|
|
}
|
|
#RETURN: We've returned from unwinding with the Spouse Material
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = no
|
|
var:return_from_location ?= flag:spouse
|
|
exists = scope:1035_unwinded_with_spouse_potential
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_returned_from_unwinding_spouse
|
|
}
|
|
#Nomad variant
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
var:return_from_location ?= flag:spouse
|
|
exists = scope:1035_unwinded_with_spouse_potential
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_nomad_returned_from_unwinding_spouse
|
|
}
|
|
#RETURN: We've returned from the Spouse Material
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:spouse }
|
|
desc = ep3_laamp_decision_event.1030.desc_returned_from_spouse
|
|
}
|
|
#RETURN: We failed to save noble Hooded Figure
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:hood
|
|
scope:laamp_decision_recruited_hood ?= flag:wounded
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_returned_from_hood_noble_fail
|
|
}
|
|
#RETURN: We've returned from the noble Hooded Figure
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:hood
|
|
exists = scope:laamp_disguised_noble
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_returned_from_hood_noble
|
|
}
|
|
#RETURN: We've returned from the Hooded Figure
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = no
|
|
var:return_from_location ?= flag:hood
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_returned_from_hood
|
|
}
|
|
#Nomad variant
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
var:return_from_location ?= flag:hood
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_nomad_returned_from_hood
|
|
}
|
|
#FIRST TIME: Nomad dwelling
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
NOT = { exists = scope:been_to_tavern }
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_nomad
|
|
}
|
|
#FIRST TIME: First time here
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_tavern }
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc
|
|
}
|
|
}
|
|
#MID: Is there a spouse? Do we recognize them? Have we interacted with them?
|
|
first_valid = {
|
|
#RETURN: Reused spouse is still here
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_tavern
|
|
exists = scope:laamp_recurring_spouse
|
|
NOR = {
|
|
exists = scope:been_to_spouse
|
|
exists = scope:laamp_decision_has_spoused
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_mid_return_reused_spouse
|
|
}
|
|
#FIRST TIME: You've seen this lass/lad before
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_tavern }
|
|
exists = scope:laamp_recurring_spouse
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_mid_reused_spouse
|
|
}
|
|
#RETURN: Spouse is still here
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_tavern
|
|
exists = scope:laamp_spouse_material
|
|
NOR = {
|
|
exists = scope:been_to_spouse
|
|
exists = scope:laamp_decision_has_spoused
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_mid_return_spouse
|
|
}
|
|
#FIRST TIME: Nomad dwelling
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
NOT = { exists = scope:been_to_tavern }
|
|
exists = scope:laamp_spouse_material
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_nomad_mid_spouse
|
|
}
|
|
#Otherwise just exclude them
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
NOT = { exists = scope:been_to_tavern }
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_nomad_mid
|
|
}
|
|
#FIRST TIME
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_tavern }
|
|
exists = scope:laamp_spouse_material
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_mid_spouse
|
|
}
|
|
#Otherwise just exclude them
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_tavern }
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_mid
|
|
}
|
|
}
|
|
#Outro
|
|
first_valid = {
|
|
#FIRST TIME: First time here, look at the hood
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_hooded_figure
|
|
NOT = { exists = scope:been_to_tavern }
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_hooded
|
|
}
|
|
#FIRST TIME: First time here, curious partner
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
NOT = { exists = scope:been_to_tavern }
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_partner
|
|
}
|
|
#FIRST TIME: First time here
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_tavern }
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro
|
|
}
|
|
#RETURN: Partner - there is nothing left for us here
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
1030_done_with_tavern_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_return_partner_finished
|
|
}
|
|
#RETURN: There is nothing left for us here
|
|
triggered_desc = {
|
|
trigger = { 1030_done_with_tavern_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_return_finished
|
|
}
|
|
#RETURN: Hood noble did not deviate, yet
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_hooded_figure
|
|
exists = scope:laamp_disguised_noble
|
|
NOR = {
|
|
exists = scope:laamp_decision_recruited_hood
|
|
exists = scope:been_to_hood
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_hooded_noble_return
|
|
}
|
|
#RETURN: Hood thief did not deviate, yet
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_hooded_figure
|
|
NOR = {
|
|
exists = scope:laamp_decision_recruited_hood
|
|
exists = scope:been_to_hood
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_hooded_return
|
|
}
|
|
#RETURN: We've been here before
|
|
random_valid = {
|
|
#RETURN: Partner flavor
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
exists = scope:been_to_tavern
|
|
scope:tavern_loc_tracker ?= 0
|
|
has_variable = 1030_use_partner_animation_var
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_return_partner_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
scope:tavern_loc_tracker ?= 1
|
|
has_variable = 1030_use_partner_animation_var
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_return_partner_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
scope:tavern_loc_tracker ?= 2
|
|
has_variable = 1030_use_partner_animation_var
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_return_partner_03
|
|
}
|
|
#RETURN: Generics
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_tavern
|
|
scope:tavern_loc_tracker ?= 0
|
|
NOT = { has_variable = 1030_use_partner_animation_var }
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_return_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:tavern_loc_tracker ?= 1
|
|
NOT = { has_variable = 1030_use_partner_animation_var }
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_return_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:tavern_loc_tracker ?= 2
|
|
NOT = { has_variable = 1030_use_partner_animation_var }
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.desc_outro_return_03
|
|
}
|
|
}
|
|
}
|
|
}
|
|
theme = landless_adventurer
|
|
override_sound = { reference = "event:/SFX/Events/Themes/sfx_event_theme_type_social" }
|
|
override_icon = { reference = "gfx/interface/icons/event_types/type_travel_stewardship.dds" }
|
|
override_background = {
|
|
trigger = { 1000_is_a_nomadic_holding_trigger = yes }
|
|
reference = mpo_tent_interior_mongol
|
|
}
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
has_holding_type = tribal_holding
|
|
}
|
|
}
|
|
reference = throne_room_tribal
|
|
}
|
|
override_background = { reference = tavern }
|
|
#PARTNER / ROOT
|
|
left_portrait = {
|
|
trigger = {
|
|
exists = scope:1030_first_character
|
|
#Don't display this one if ROOT is in both portraits
|
|
NAND = {
|
|
scope:1030_first_character = root
|
|
exists = scope:1030_second_character
|
|
scope:1030_second_character = root
|
|
}
|
|
}
|
|
character = scope:1030_first_character
|
|
#PARTNER: If it's our (tired) visiting partner
|
|
triggered_animation = {
|
|
trigger = {
|
|
1030_done_with_tavern_trigger = yes
|
|
scope:visiting_partner ?= scope:1030_first_character
|
|
}
|
|
animation = boredom
|
|
}
|
|
#PARTNER: Variation 01
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner ?= scope:1030_first_character
|
|
exists = scope:been_to_tavern
|
|
scope:tavern_loc_tracker ?= 0
|
|
root = { has_variable = 1030_use_partner_animation_var }
|
|
}
|
|
animation = interested
|
|
}
|
|
#PARTNER: Variation 02
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner ?= scope:1030_first_character
|
|
scope:tavern_loc_tracker ?= 1
|
|
root = { has_variable = 1030_use_partner_animation_var }
|
|
}
|
|
animation = laugh
|
|
}
|
|
#PARTNER: Variation 03
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner ?= scope:1030_first_character
|
|
scope:tavern_loc_tracker ?= 2
|
|
root = { has_variable = 1030_use_partner_animation_var }
|
|
}
|
|
animation = dancing
|
|
}
|
|
#PARTNER: If it's our visiting partner
|
|
triggered_animation = {
|
|
trigger = { scope:visiting_partner ?= scope:1030_first_character }
|
|
animation = personality_content
|
|
}
|
|
#ROOT: Hooded figure!
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1030_first_character = root
|
|
exists = scope:laamp_hooded_figure
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
animation = interested
|
|
}
|
|
#ROOT: Eyeing the vixen at the bar
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1030_first_character = root
|
|
exists = scope:laamp_spouse_material
|
|
NOT = { exists = scope:been_to_spouse }
|
|
}
|
|
animation = admiration
|
|
}
|
|
#ROOT: Eh, why not
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1030_first_character = root
|
|
OR = {
|
|
has_trait = lunatic
|
|
has_trait = possessed
|
|
has_trait = eccentric
|
|
}
|
|
}
|
|
animation = personality_irrational
|
|
}
|
|
#ROOT: That's.. a lot of people
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1030_first_character = root
|
|
OR = {
|
|
has_trait = paranoid
|
|
has_trait = shy
|
|
}
|
|
}
|
|
animation = personality_coward
|
|
}
|
|
#ROOT: My kind of people!
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1030_first_character = root
|
|
OR = {
|
|
has_trait = lifestyle_reveler
|
|
has_trait = gregarious
|
|
}
|
|
}
|
|
animation = happiness
|
|
}
|
|
#Fallback, we really shouldn't end up here
|
|
animation = happiness
|
|
}
|
|
#SPOUSE / ROOT
|
|
center_portrait = {
|
|
trigger = { exists = scope:1030_second_character }
|
|
camera = camera_event_scheme_vs_right_look_right
|
|
character = scope:1030_second_character
|
|
#SPOUSE: Untapped
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_spouse_material ?= scope:1030_second_character
|
|
NOT = { exists = scope:been_to_spouse }
|
|
}
|
|
animation = personality_rational
|
|
}
|
|
#SPOUSE: Been there
|
|
triggered_animation = {
|
|
trigger = { scope:laamp_spouse_material ?= scope:1030_second_character }
|
|
animation = personality_cynical
|
|
}
|
|
#ROOT: Hooded figure!
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1030_second_character = root
|
|
exists = scope:laamp_hooded_figure
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
animation = interested
|
|
}
|
|
#ROOT: Eyeing the vixen at the bar
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1030_second_character = root
|
|
exists = scope:laamp_spouse_material
|
|
NOT = { exists = scope:been_to_spouse }
|
|
}
|
|
animation = admiration
|
|
}
|
|
#ROOT: Eh, why not
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1030_second_character = root
|
|
OR = {
|
|
has_trait = lunatic
|
|
has_trait = possessed
|
|
has_trait = eccentric
|
|
}
|
|
}
|
|
animation = personality_irrational
|
|
}
|
|
#ROOT: That's.. a lot of people
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1030_second_character = root
|
|
OR = {
|
|
has_trait = paranoid
|
|
has_trait = shy
|
|
}
|
|
}
|
|
animation = personality_coward
|
|
}
|
|
#ROOT: My kind of people!
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1030_second_character = root
|
|
OR = {
|
|
has_trait = lifestyle_reveler
|
|
has_trait = gregarious
|
|
}
|
|
}
|
|
animation = happiness
|
|
}
|
|
#Fallback, we really shouldn't end up here
|
|
animation = personality_rational
|
|
}
|
|
#HOOD / SPOUSE
|
|
right_portrait = {
|
|
trigger = {
|
|
exists = scope:1030_third_character
|
|
#If this is root, then that means we have talked to the Hooded Figure and we don't have a Spouse to display, so let's disappear the portrait
|
|
scope:1030_third_character != root
|
|
}
|
|
camera = camera_event_scheme_vs_center_look_left
|
|
character = scope:1030_third_character
|
|
#HOOD: Hood for the hooded figure
|
|
triggered_outfit = {
|
|
trigger = { scope:laamp_hooded_figure ?= scope:1030_third_character }
|
|
outfit_tags = { western_stealth_hood }
|
|
}
|
|
#HOOD NOBLE: We've returned here and it's still the hooded noble
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_disguised_noble ?= scope:1030_third_character
|
|
exists = scope:been_to_tavern
|
|
}
|
|
animation = drink_goblet
|
|
}
|
|
#HOOD THIEF: We've returned here and it's still the hooded thief
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_hooded_figure ?= scope:1030_third_character
|
|
exists = scope:been_to_tavern
|
|
}
|
|
animation = spymaster
|
|
}
|
|
#SPOUSE: Untapped
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_spouse_material ?= scope:1030_third_character
|
|
NOT = { exists = scope:been_to_spouse }
|
|
}
|
|
animation = personality_rational
|
|
}
|
|
#SPOUSE: Been there
|
|
triggered_animation = {
|
|
trigger = { scope:laamp_spouse_material ?= scope:1030_third_character }
|
|
animation = personality_cynical
|
|
}
|
|
#Fallback, we really shouldn't end up here
|
|
animation = personality_callous
|
|
}
|
|
#Shove the Spouse / Hood here if they exist, we've visited them but we haven't actioned them yet
|
|
lower_left_portrait = {
|
|
trigger = {
|
|
NOT = { root ?= scope:1030_fourth_character }
|
|
}
|
|
character = scope:1030_fourth_character
|
|
}
|
|
lower_center_portrait = {
|
|
trigger = {
|
|
NOT = { root ?= scope:1030_fifth_character }
|
|
}
|
|
character = scope:1030_fifth_character
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Set up the ancillary portraits to remind the player of the characters
|
|
if = {
|
|
#Hood _and_ Spouse exists
|
|
limit = {
|
|
#We've been to both at least once
|
|
exists = scope:been_to_spouse
|
|
exists = scope:been_to_hood
|
|
#We're not done with them yet
|
|
AND = {
|
|
exists = scope:laamp_spouse_material
|
|
NOT = { exists = scope:laamp_decision_has_spoused }
|
|
}
|
|
AND = {
|
|
exists = scope:laamp_hooded_figure
|
|
NOT = { exists = scope:laamp_decision_recruited_hood }
|
|
}
|
|
#This isn't already the state
|
|
NAND = {
|
|
exists = scope:1030_fourth_character
|
|
scope:1030_fourth_character ?= scope:laamp_spouse_material
|
|
exists = scope:1030_fifth_character
|
|
scope:1030_fifth_character ?= scope:laamp_hooded_figure
|
|
}
|
|
}
|
|
scope:laamp_spouse_material = { save_scope_as = 1030_fourth_character }
|
|
scope:laamp_hooded_figure = { save_scope_as = 1030_fifth_character }
|
|
}
|
|
else_if = {
|
|
#Only Spouse exists
|
|
limit = {
|
|
exists = scope:laamp_spouse_material
|
|
NOR = {
|
|
#We're not done with Spouse yet
|
|
exists = scope:laamp_decision_has_spoused
|
|
#This isn't already the state
|
|
AND = {
|
|
exists = scope:1030_fourth_character
|
|
scope:1030_fourth_character ?= scope:laamp_spouse_material
|
|
}
|
|
}
|
|
#We've been to Spouse at least once
|
|
exists = scope:been_to_spouse
|
|
}
|
|
scope:laamp_spouse_material = { save_scope_as = 1030_fourth_character }
|
|
}
|
|
else_if = {
|
|
#Hood exists but Spouse either never existed or got recruited
|
|
limit = {
|
|
exists = scope:laamp_hooded_figure
|
|
NOR = {
|
|
#We're not done with Hood yet
|
|
exists = scope:laamp_decision_recruited_hood
|
|
#This isn't already the state
|
|
AND = {
|
|
exists = scope:1030_fourth_character
|
|
scope:1030_fourth_character ?= scope:laamp_hooded_figure
|
|
}
|
|
}
|
|
#We've been to Hood at least once
|
|
exists = scope:been_to_hood
|
|
OR = {
|
|
#Either the Spouse never existed
|
|
NAND = {
|
|
exists = scope:laamp_spouse_material
|
|
exists = scope:laamp_decision_has_spoused
|
|
}
|
|
#Or we've recruited the Spouse already
|
|
AND = {
|
|
exists = scope:laamp_spouse_material
|
|
exists = scope:laamp_decision_has_spoused
|
|
}
|
|
}
|
|
}
|
|
scope:laamp_hooded_figure = { save_scope_as = 1030_fourth_character }
|
|
#If we've already attached Hood to the fifth portrait, overwrite it with ROOT to hide that portrait
|
|
if = {
|
|
limit = { exists = scope:1030_fifth_character }
|
|
save_scope_as = 1030_fifth_character
|
|
}
|
|
}
|
|
#Clean up any existing fourth/fifth portrait if we're done with all who exist
|
|
if = {
|
|
limit = {
|
|
exists = scope:1030_fourth_character
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:laamp_spouse_material
|
|
exists = scope:laamp_hooded_figure
|
|
}
|
|
#We've recruited the Spouse already
|
|
AND = {
|
|
exists = scope:laamp_spouse_material
|
|
exists = scope:laamp_decision_has_spoused
|
|
}
|
|
#We've recruited the Hood already
|
|
AND = {
|
|
exists = scope:laamp_hooded_figure
|
|
exists = scope:laamp_decision_recruited_hood
|
|
}
|
|
}
|
|
trigger_else_if = {
|
|
limit = {
|
|
exists = scope:laamp_spouse_material
|
|
NOT = { exists = scope:laamp_hooded_figure }
|
|
}
|
|
#We've recruited the Spouse already
|
|
AND = {
|
|
exists = scope:laamp_spouse_material
|
|
exists = scope:laamp_decision_has_spoused
|
|
}
|
|
}
|
|
trigger_else_if = {
|
|
limit = {
|
|
exists = scope:laamp_hooded_figure
|
|
NOT = { exists = scope:laamp_spouse_material }
|
|
}
|
|
#We've recruited the Hood already
|
|
AND = {
|
|
exists = scope:laamp_hooded_figure
|
|
exists = scope:laamp_decision_recruited_hood
|
|
}
|
|
}
|
|
trigger_else = { always = no }
|
|
#This isn't already the state
|
|
scope:1030_fourth_character != root
|
|
}
|
|
#Overwrite with ROOT to hide that portrait
|
|
save_scope_as = 1030_fourth_character
|
|
}
|
|
if = {
|
|
limit = {
|
|
#We've recruited the Hood already
|
|
AND = {
|
|
exists = scope:laamp_hooded_figure
|
|
exists = scope:laamp_decision_recruited_hood
|
|
}
|
|
#This isn't already the state
|
|
exists = scope:1030_fifth_character
|
|
scope:1030_fifth_character != root
|
|
}
|
|
#Overwrite with ROOT to hide that portrait
|
|
save_scope_as = 1030_fifth_character
|
|
}
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_hub_loc_tracker_scope_effect = { HUB = tavern }
|
|
#Some animation flavor
|
|
random_list = {
|
|
75 = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_hooded_figure }
|
|
exists = scope:been_to_hood
|
|
}
|
|
}
|
|
set_variable = 1030_use_partner_animation_var
|
|
}
|
|
25 = {
|
|
#Nothing
|
|
}
|
|
}
|
|
#Create the spouse character
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
#Do we remember someone?
|
|
any_pool_character = {
|
|
province = scope:visiting_location
|
|
location = scope:visiting_location
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = 1025_remembered_spouse_potential_list
|
|
target = prev #The considered spouse character
|
|
}
|
|
}
|
|
}
|
|
#Or did we actually encounter them?
|
|
any_pool_character = {
|
|
province = scope:visiting_location
|
|
location = scope:visiting_location
|
|
is_target_in_variable_list = {
|
|
name = 1030_marked_as_spouse_material_for_list
|
|
target = root
|
|
}
|
|
}
|
|
}
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
OR = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = 1025_remembered_spouse_potential_list
|
|
target = prev #The considered spouse character
|
|
}
|
|
}
|
|
is_target_in_variable_list = {
|
|
name = 1030_marked_as_spouse_material_for_list
|
|
target = root
|
|
}
|
|
}
|
|
}
|
|
save_scope_as = laamp_spouse_material
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
if = {
|
|
#Only save them if we actually interacted with them
|
|
limit = {
|
|
root = {
|
|
is_target_in_variable_list = {
|
|
name = 1025_remembered_spouse_potential_list
|
|
target = prev #The considered spouse character
|
|
}
|
|
}
|
|
}
|
|
save_scope_as = laamp_recurring_spouse
|
|
}
|
|
}
|
|
}
|
|
#No? Then roll for a new spouse
|
|
if = {
|
|
limit = {
|
|
NOR = {
|
|
exists = scope:laamp_spouse_material
|
|
#Unless you're on local cooldown
|
|
scope:visiting_location = {
|
|
is_target_in_variable_list = {
|
|
name = laamp_decisions_1000_checked_for_spouse_list
|
|
target = root
|
|
}
|
|
}
|
|
}
|
|
allowed_more_spouses = yes
|
|
}
|
|
random_list = {
|
|
75 = {
|
|
#Maybe?
|
|
modifier = {
|
|
OR = {
|
|
has_trait = seducer
|
|
has_trait = rakish
|
|
}
|
|
add = -25
|
|
}
|
|
#No spouse
|
|
}
|
|
25 = { #Nerf this number into the ground to keep our LAAMP friends spouseless forever
|
|
#Find a spouse in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_spouse_material }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
#We can marry them
|
|
can_marry_character_trigger = { CHARACTER = root }
|
|
#We want to marry them
|
|
root = { is_attracted_to_gender_of = prev } #Prev is the spouse scope
|
|
#They might want to marry us
|
|
is_attracted_to_gender_of = root
|
|
}
|
|
save_scope_as = laamp_spouse_material
|
|
}
|
|
}
|
|
#Otherwise create 'em
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_spouse_material }
|
|
}
|
|
#Gender doesn't matter
|
|
if = {
|
|
limit = { allowed_to_marry_same_sex_trigger = yes }
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
diplomacy = { low_skill_rating high_skill_rating }
|
|
martial = { low_skill_rating high_skill_rating }
|
|
stewardship = { low_skill_rating high_skill_rating }
|
|
intrigue = { low_skill_rating high_skill_rating }
|
|
learning = { low_skill_rating high_skill_rating }
|
|
save_scope_as = laamp_spouse_material
|
|
}
|
|
}
|
|
#Straight female
|
|
else_if = {
|
|
limit = { is_female = yes }
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
gender = male
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
diplomacy = { low_skill_rating high_skill_rating }
|
|
martial = { low_skill_rating high_skill_rating }
|
|
stewardship = { low_skill_rating high_skill_rating }
|
|
intrigue = { low_skill_rating high_skill_rating }
|
|
learning = { low_skill_rating high_skill_rating }
|
|
save_scope_as = laamp_spouse_material
|
|
}
|
|
}
|
|
#Straight male
|
|
else = {
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
gender = female
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
diplomacy = { low_skill_rating high_skill_rating }
|
|
martial = { low_skill_rating high_skill_rating }
|
|
stewardship = { low_skill_rating high_skill_rating }
|
|
intrigue = { low_skill_rating high_skill_rating }
|
|
learning = { low_skill_rating high_skill_rating }
|
|
save_scope_as = laamp_spouse_material
|
|
}
|
|
}
|
|
}
|
|
#Some buffs pls?
|
|
scope:laamp_spouse_material ?= {
|
|
if = {
|
|
limit = {
|
|
NOT = { has_variable = 1030_has_rolled_for_congenital_traits }
|
|
NOR = {
|
|
has_trait = beauty_good_1
|
|
has_trait = intellect_good_1
|
|
has_trait = physique_good_1
|
|
has_trait = fecund
|
|
has_trait = strong
|
|
has_trait = shrewd
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
random = {
|
|
chance = 5
|
|
random_list = {
|
|
10 = { add_trait = beauty_good_1 }
|
|
10 = { add_trait = intellect_good_1 }
|
|
10 = { add_trait = physique_good_1 }
|
|
10 = { add_trait = fecund }
|
|
10 = { add_trait = strong }
|
|
10 = { add_trait = shrewd }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Give 'em a year
|
|
add_to_variable_list = {
|
|
name = 1030_marked_as_spouse_material_for_list
|
|
target = root
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#... no more congenital traits rolls for them
|
|
set_variable = 1030_has_rolled_for_congenital_traits
|
|
#Funny as it looks when the tooltip wanders through all possible options, this is probs what looks more WAD
|
|
if = {
|
|
limit = {
|
|
NOT = { has_variable = raunchy_compliment_noun }
|
|
}
|
|
set_raunchy_compliment_noun_effect = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Set up the cooldown per holding, so that you can hop around to different taverns
|
|
scope:visiting_location = {
|
|
add_to_variable_list = {
|
|
name = laamp_decisions_1000_checked_for_spouse_list
|
|
target = root
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
}
|
|
}
|
|
#Rare: Spawn a hooded figure
|
|
if = {
|
|
limit = {
|
|
NOT = { has_variable = laamp_decision_1000_checked_for_hood }
|
|
}
|
|
random_list = {
|
|
75 = {
|
|
#No Hooded Figure
|
|
}
|
|
#Shady Noble
|
|
25 = {
|
|
#Look for the holder first
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location.county.holder ?= {
|
|
1030_appropriate_noble_trigger = yes
|
|
location = scope:visiting_location
|
|
}
|
|
}
|
|
scope:visiting_location.county.holder = {
|
|
save_scope_as = laamp_hooded_figure
|
|
save_scope_as = laamp_disguised_noble
|
|
}
|
|
}
|
|
#Otherwise a landed or ladmin in the same location
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_hooded_figure }
|
|
}
|
|
scope:visiting_location = {
|
|
random_character_in_location = {
|
|
limit = {
|
|
1030_appropriate_noble_trigger = yes
|
|
is_landed_or_landless_administrative = yes
|
|
}
|
|
save_scope_as = laamp_hooded_figure
|
|
save_scope_as = laamp_disguised_noble
|
|
}
|
|
#... or a landed/ladmin in a neighboring province. Does this tank performance?
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_hooded_figure }
|
|
}
|
|
random_neighboring_province = {
|
|
limit = { is_sea_province = no }
|
|
random_character_in_location = {
|
|
limit = {
|
|
1030_appropriate_noble_trigger = yes
|
|
is_landed_or_landless_administrative = yes
|
|
}
|
|
save_scope_as = laamp_hooded_figure
|
|
save_scope_as = laamp_disguised_noble
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:laamp_hooded_figure ?= {
|
|
#Don't need to pull the same ruler several times
|
|
set_variable = {
|
|
name = 1030_has_been_hooded_recently
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
}
|
|
#Master Thief
|
|
25 = {
|
|
#More common in Tribal/No Settlement
|
|
modifier = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
factor = 2
|
|
}
|
|
#Has this person been our thief in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_thief_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
}
|
|
save_scope_as = laamp_hooded_figure
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_thief
|
|
}
|
|
#Otherwise find a thief in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_hooded_figure }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
is_available_healthy_adult = yes
|
|
1030_gallowsbait_character_trigger = yes
|
|
}
|
|
save_scope_as = laamp_hooded_figure
|
|
}
|
|
}
|
|
#Otherwise create a thief
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_hooded_figure }
|
|
}
|
|
#Create bodyguard to stuff in pool
|
|
create_character = {
|
|
template = bp1_yearly_2021_intrigue_person_template
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
intrigue = { decent_skill_rating high_skill_rating }
|
|
save_scope_as = laamp_hooded_figure
|
|
}
|
|
scope:laamp_hooded_figure ?= {
|
|
#Chance to add a malus trait to this spectatular being
|
|
if = {
|
|
limit = {
|
|
NOR = {
|
|
has_trait = possessed_1
|
|
has_trait = lunatic_1
|
|
has_trait = depressed_1
|
|
has_trait = drunkard
|
|
has_trait = hashishiyah
|
|
has_trait = irritable
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
random = {
|
|
chance = 20
|
|
random_list = {
|
|
10 = { add_trait = possessed_1 }
|
|
10 = { add_trait = lunatic_1 }
|
|
10 = { add_trait = depressed_1 }
|
|
10 = { add_trait = drunkard }
|
|
10 = { add_trait = hashishiyah }
|
|
10 = { add_trait = irritable }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#... also, it's a criminal, so... yeah
|
|
hidden_effect = {
|
|
if = {
|
|
limit = {
|
|
NOT = { has_trait = gallowsbait }
|
|
}
|
|
add_trait = gallowsbait
|
|
random_list = {
|
|
#Bandit
|
|
25 = {
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = bandit
|
|
value = {
|
|
integer_range = {
|
|
min = medium_lifestyle_random_xp_low
|
|
max = medium_lifestyle_random_xp_high
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Trickster
|
|
25 = {
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = trickster
|
|
value = {
|
|
integer_range = {
|
|
min = medium_lifestyle_random_xp_low
|
|
max = medium_lifestyle_random_xp_high
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Thief
|
|
25 = {
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value = {
|
|
integer_range = {
|
|
min = medium_lifestyle_random_xp_low
|
|
max = medium_lifestyle_random_xp_high
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Poacher
|
|
25 = {
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = poacher
|
|
value = {
|
|
integer_range = {
|
|
min = medium_lifestyle_random_xp_low
|
|
max = medium_lifestyle_random_xp_high
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Marauder
|
|
25 = {
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = marauder
|
|
value = {
|
|
integer_range = {
|
|
min = medium_lifestyle_random_xp_low
|
|
max = medium_lifestyle_random_xp_high
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#For the portrait
|
|
scope:laamp_hooded_figure ?= { save_scope_as = 1030_second_character }
|
|
#No decision-scumming
|
|
set_variable = {
|
|
name = laamp_decision_1000_checked_for_hood
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
#Set up the initial portraits
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1030_portraits_setup }
|
|
}
|
|
if = {
|
|
limit = {
|
|
exists = scope:laamp_spouse_material
|
|
exists = scope:laamp_hooded_figure
|
|
}
|
|
#Spouse, Hood and Partner exists
|
|
if = {
|
|
limit = { exists = scope:visiting_partner }
|
|
scope:visiting_partner = { save_scope_as = 1030_first_character }
|
|
}
|
|
scope:laamp_spouse_material = { save_scope_as = 1030_second_character }
|
|
scope:laamp_hooded_figure = { save_scope_as = 1030_third_character }
|
|
}
|
|
else_if = {
|
|
limit = { exists = scope:laamp_spouse_material }
|
|
#Spouse and Partner exists
|
|
if = {
|
|
limit = { exists = scope:visiting_partner }
|
|
scope:visiting_partner = { save_scope_as = 1030_first_character }
|
|
}
|
|
#Save ROOT
|
|
save_scope_as = 1030_second_character
|
|
scope:laamp_spouse_material = { save_scope_as = 1030_third_character }
|
|
}
|
|
else_if = {
|
|
limit = { exists = scope:laamp_hooded_figure }
|
|
#Hood and Partner exists
|
|
if = {
|
|
limit = { exists = scope:visiting_partner }
|
|
scope:visiting_partner = { save_scope_as = 1030_first_character }
|
|
}
|
|
#Save ROOT
|
|
save_scope_as = 1030_second_character
|
|
scope:laamp_hooded_figure = { save_scope_as = 1030_third_character }
|
|
}
|
|
else_if = {
|
|
limit = { exists = scope:visiting_partner }
|
|
#Only Partner exists
|
|
scope:visiting_partner = { save_scope_as = 1030_first_character }
|
|
#Save ROOT
|
|
save_scope_as = 1030_second_character
|
|
}
|
|
else = {
|
|
#You're alone - save ROOT
|
|
save_scope_as = 1030_second_character
|
|
}
|
|
save_scope_as = 1030_portraits_setup
|
|
}
|
|
}
|
|
#Listen to a story
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to the storyteller
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_storyteller }
|
|
desc = ep3_laamp_decision_event.1030.a_second
|
|
}
|
|
#First time at the storyteller's
|
|
desc = ep3_laamp_decision_event.1030.a
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1030.a.cooldown.tt
|
|
NOT = { exists = scope:laamp_decision_has_storied }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = storyteller
|
|
custom_tooltip = ep3_laamp_decision_event.1030.a.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = tavern }
|
|
#Go to the storyteller
|
|
trigger_event = ep3_laamp_decision_event.1031
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Look for someone to recruit
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to the recruits
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_recruit }
|
|
desc = ep3_laamp_decision_event.1030.b_second
|
|
}
|
|
#First time talking to recruits
|
|
desc = ep3_laamp_decision_event.1030.b
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1030.b.cooldown.tt
|
|
NOT = { exists = scope:laamp_decision_has_recruited }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = recruitment
|
|
custom_tooltip = ep3_laamp_decision_event.1030.b.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = tavern }
|
|
#Go to the recruits
|
|
trigger_event = ep3_laamp_decision_event.1033
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Check out that Spouse Material
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Already scoped out the spouse
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
exists = scope:been_to_spouse
|
|
exists = scope:laamp_recurring_spouse
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.c_second
|
|
}
|
|
#First time talking to spouse
|
|
desc = ep3_laamp_decision_event.1030.c
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
exists = scope:laamp_spouse_material
|
|
#Recently recruited a spouse, settle down there
|
|
trigger_if = {
|
|
limit = { has_variable = 1035_has_spoused_recently }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1030.c.cooldown.tt
|
|
always = no
|
|
}
|
|
}
|
|
#Loc differences
|
|
trigger_else_if = {
|
|
limit = { scope:laamp_decision_has_spoused ?= flag:no }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1030.c.failure.cooldown.tt
|
|
always = no
|
|
}
|
|
}
|
|
trigger_else = { always = yes }
|
|
}
|
|
show_as_unavailable = {
|
|
#Show it if we return here from the Spouse screen
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_spouse_material }
|
|
always = yes
|
|
}
|
|
#If we are already married, don't show it
|
|
trigger_else = { always = no }
|
|
}
|
|
reason = potential_spouse
|
|
highlight_portrait = scope:laamp_spouse_material
|
|
#Been there once already
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
exists = scope:laamp_recurring_spouse
|
|
exists = scope:been_to_spouse
|
|
}
|
|
}
|
|
custom_tooltip = ep3_laamp_decision_event.1030.c.tt_second
|
|
}
|
|
else = {
|
|
custom_tooltip = ep3_laamp_decision_event.1030.c.tt
|
|
}
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = tavern }
|
|
#Go to the spouse material
|
|
trigger_event = ep3_laamp_decision_event.1035
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Rare Option: Visit Hooded Figure
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to the Hood noble
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_hood
|
|
exists = scope:laamp_disguised_noble
|
|
}
|
|
desc = ep3_laamp_decision_event.1030.d_third
|
|
}
|
|
#Return to the Hood thief
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_hood }
|
|
desc = ep3_laamp_decision_event.1030.d_second
|
|
}
|
|
#First time at the Hood
|
|
desc = ep3_laamp_decision_event.1030.d
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
exists = scope:laamp_hooded_figure
|
|
NOT = { exists = scope:laamp_decision_recruited_hood }
|
|
is_ai = no
|
|
}
|
|
reason = hooded_character
|
|
#Been there once already
|
|
if = {
|
|
limit = { exists = scope:been_to_hood }
|
|
custom_tooltip = ep3_laamp_decision_event.1030.d.tt_second
|
|
}
|
|
else = {
|
|
custom_tooltip = ep3_laamp_decision_event.1030.d.tt
|
|
}
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = tavern }
|
|
#Go to the hooded figure screen
|
|
trigger_event = ep3_laamp_decision_event.1037
|
|
}
|
|
#I want to do something else
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Nothing left to do
|
|
triggered_desc = {
|
|
trigger = { 1030_done_with_tavern_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1030.e_second
|
|
}
|
|
#Back to main square
|
|
desc = ep3_laamp_decision_event.1030.e
|
|
}
|
|
}
|
|
}
|
|
#Have we done everything? Are we closing off the option?
|
|
if = {
|
|
limit = { 1030_done_with_tavern_trigger = yes }
|
|
#Clean up unnecessary variables and close off the option
|
|
1030_finished_tavern_effect = yes
|
|
}
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = tavern }
|
|
#Go back to the main event
|
|
1000_return_to_main_effect = yes
|
|
ai_chance = { base = 100 }
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:tavern }
|
|
remove_variable ?= 1030_use_partner_animation_var
|
|
}
|
|
}
|
|
|
|
|
|
#Return to the holding hub (church grounds, castle grounds etc) from a subsequent event
|
|
scripted_effect 1031_been_to_effect = {
|
|
#For desc flavor
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:been_to_$GUILD$ }
|
|
}
|
|
save_scope_as = been_to_$GUILD$
|
|
}
|
|
#Go back to the previous screen
|
|
if = {
|
|
limit = { var:return_from_location ?= flag:tavern }
|
|
1031_return_to_tavern_effect = yes
|
|
}
|
|
#Go back to church grounds
|
|
if = {
|
|
limit = { var:return_from_location ?= flag:church_grounds }
|
|
1041_return_to_church_grounds_effect = yes
|
|
}
|
|
#Go back to castle grounds
|
|
if = {
|
|
limit = { var:return_from_location ?= flag:castle_grounds }
|
|
1051_return_to_castle_effect = yes
|
|
}
|
|
#Go back to craftsmen district
|
|
if = {
|
|
limit = { var:return_from_location ?= flag:craftsmen }
|
|
1061_return_to_craftsmen_effect = yes
|
|
}
|
|
}
|
|
|
|
#We return to the tavern main room to peruse other options
|
|
scripted_effect 1031_return_to_tavern_effect = {
|
|
custom_tooltip = ep3_laamp_decision_event.1031.return.tt
|
|
trigger_event = ep3_laamp_decision_event.1030
|
|
}
|
|
|
|
#Set the correct variable to block off the Storyteller option and remove the desc flavor variable
|
|
scripted_effect 1031_storied_effect = {
|
|
save_scope_as = laamp_decision_has_storied
|
|
#Go back to the tavern main room
|
|
hidden_effect = { 1031_return_to_tavern_effect = yes }
|
|
}
|
|
|
|
#The one that ya want
|
|
scripted_effect 1031_actual_skill_increase_effect = {
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:diplomacy }
|
|
add_diplomacy_skill = 1
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:martial }
|
|
add_martial_skill = 1
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:stewardship }
|
|
add_stewardship_skill = 1
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:intrigue }
|
|
add_intrigue_skill = 1
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:learning }
|
|
add_learning_skill = 1
|
|
}
|
|
}
|
|
|
|
#Participation prize
|
|
scripted_effect 1031_add_skill_modifier_effect = {
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:diplomacy }
|
|
add_character_modifier = {
|
|
modifier = laamp_decision_exotic_story_diplomacy_gain_modifier
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:martial }
|
|
add_character_modifier = {
|
|
modifier = laamp_decision_exotic_story_martial_gain_modifier
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:stewardship }
|
|
add_character_modifier = {
|
|
modifier = laamp_decision_exotic_story_stewardship_gain_modifier
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:intrigue }
|
|
add_character_modifier = {
|
|
modifier = laamp_decision_exotic_story_intrigue_gain_modifier
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:learning }
|
|
add_character_modifier = {
|
|
modifier = laamp_decision_exotic_story_learning_gain_modifier
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
}
|
|
}
|
|
|
|
#Modified by how low the skill is - lower means higher chance
|
|
scripted_effect 1031_boost_lowest_skill_effect = {
|
|
random_list = {
|
|
2 = {
|
|
desc = ep3_laamp_decision_event.1031.a_success.desc
|
|
trigger = {
|
|
trigger_if = {
|
|
limit = { has_variable = 1031_skill_gain_variable }
|
|
var:1031_skill_gain_variable != visit_settlement_skill_gain_cap_value
|
|
}
|
|
trigger_else = { always = yes }
|
|
}
|
|
#Skill is less than low_skill_rating
|
|
modifier = {
|
|
scope:1031_skill_to_buff_value < low_skill_rating
|
|
add = 23
|
|
}
|
|
#Skill is less than average_skill_rating
|
|
modifier = {
|
|
scope:1031_skill_to_buff_value >= low_skill_rating
|
|
scope:1031_skill_to_buff_value < average_skill_rating
|
|
add = 18
|
|
}
|
|
#Skill is less than medium_skill_rating
|
|
modifier = {
|
|
scope:1031_skill_to_buff_value >= average_skill_rating
|
|
scope:1031_skill_to_buff_value < medium_skill_rating
|
|
add = 13
|
|
}
|
|
#Skill is less than high_skill_rating
|
|
modifier = {
|
|
scope:1031_skill_to_buff_value >= medium_skill_rating
|
|
scope:1031_skill_to_buff_value < high_skill_rating
|
|
add = 8
|
|
}
|
|
#Skill is less than very_high_skill_rating
|
|
modifier = {
|
|
scope:1031_skill_to_buff_value >= high_skill_rating
|
|
scope:1031_skill_to_buff_value < very_high_skill_rating
|
|
add = 3
|
|
}
|
|
#What do you mean, only see one side of the argument?
|
|
modifier = {
|
|
has_trait = zealous
|
|
factor = 0.8
|
|
}
|
|
#Easier time finding the silver lining. Probs.
|
|
modifier = {
|
|
has_trait = eccentric
|
|
factor = 2
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = ep3_laamp_decision_event.1031.a_success.t
|
|
desc = ep3_laamp_decision_event.1031.a_success.desc
|
|
left_icon = root
|
|
#Increase skill
|
|
1031_actual_skill_increase_effect = yes
|
|
}
|
|
#We cap the max amount of skill points gained
|
|
if = {
|
|
limit = {
|
|
NOT = { has_variable = 1031_skill_gain_variable }
|
|
}
|
|
set_variable = {
|
|
name = 1031_skill_gain_variable
|
|
value = 1
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_variable = 1031_skill_gain_variable
|
|
var:1031_skill_gain_variable != visit_settlement_skill_gain_cap_value
|
|
}
|
|
change_variable = {
|
|
name = 1031_skill_gain_variable
|
|
add = 1
|
|
}
|
|
}
|
|
else = {
|
|
#Nothing happens
|
|
}
|
|
}
|
|
25 = {
|
|
desc = ep3_laamp_decision_event.1031.a_semi_success.desc
|
|
send_interface_toast = {
|
|
type = event_toast_effect_neutral
|
|
title = ep3_laamp_decision_event.1031.a_semi_success.t
|
|
desc = ep3_laamp_decision_event.1031.a_semi_success.desc
|
|
left_icon = root
|
|
#Have some lifestyle xp
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:diplomacy }
|
|
add_diplomacy_lifestyle_xp = medium_lifestyle_xp
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:martial }
|
|
add_martial_lifestyle_xp = medium_lifestyle_xp
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:stewardship }
|
|
add_stewardship_lifestyle_xp = medium_lifestyle_xp
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:intrigue }
|
|
add_intrigue_lifestyle_xp = medium_lifestyle_xp
|
|
}
|
|
if = {
|
|
limit = { scope:1031_skill_to_buff = flag:learning }
|
|
add_learning_lifestyle_xp = medium_lifestyle_xp
|
|
}
|
|
}
|
|
}
|
|
50 = {
|
|
desc = ep3_laamp_decision_event.1031.a_failure.desc
|
|
send_interface_toast = {
|
|
type = event_toast_effect_neutral
|
|
title = ep3_laamp_decision_event.1031.a_failure.t
|
|
desc = ep3_laamp_decision_event.1031.a_failure.desc
|
|
left_icon = root
|
|
#Apply temporary skill modifier
|
|
1031_add_skill_modifier_effect = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Used often enough to warrant a trigger
|
|
scripted_trigger 1031_is_max_witty_trigger = {
|
|
has_trait = tourney_participant
|
|
has_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value = 100
|
|
}
|
|
}
|
|
|
|
|
|
#Storyteller
|
|
ep3_laamp_decision_event.1031 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1031.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#Stay a while, and listen!
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 1
|
|
var:1031_saved_storyteller_state ?= 9
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 2
|
|
var:1031_saved_storyteller_state ?= 10
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 3
|
|
var:1031_saved_storyteller_state ?= 11
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_03
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 4
|
|
var:1031_saved_storyteller_state ?= 12
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_04
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 5
|
|
var:1031_saved_storyteller_state ?= 13
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_05
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 6
|
|
var:1031_saved_storyteller_state ?= 14
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_06
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 7
|
|
var:1031_saved_storyteller_state ?= 15
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_07
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 8
|
|
var:1031_saved_storyteller_state ?= 16
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_08
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 9
|
|
var:1031_saved_storyteller_state ?= 1
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_09
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 10
|
|
var:1031_saved_storyteller_state ?= 2
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_10
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 11
|
|
var:1031_saved_storyteller_state ?= 3
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_11
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 12
|
|
var:1031_saved_storyteller_state ?= 4
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_12
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 13
|
|
var:1031_saved_storyteller_state ?= 5
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_13
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 14
|
|
var:1031_saved_storyteller_state ?= 6
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_14
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 15
|
|
var:1031_saved_storyteller_state ?= 7
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_15
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 16
|
|
var:1031_saved_storyteller_state ?= 8
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_16
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 17
|
|
var:1031_saved_storyteller_state ?= 9
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_17
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 18
|
|
var:1031_saved_storyteller_state ?= 10
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_18
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
var:1031_saved_storyteller_state ?= 19
|
|
var:1031_saved_storyteller_state ?= 11
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_19
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1031.desc_outro
|
|
}
|
|
theme = landless_adventurer
|
|
override_sound = { reference = "event:/SFX/Events/Themes/sfx_event_theme_type_learning" }
|
|
override_icon = { reference = "gfx/interface/icons/event_types/type_learning.dds" }
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = { 1000_is_a_nomadic_holding_trigger = yes }
|
|
}
|
|
reference = bp1_bonfire
|
|
}
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
reference = bp1_kitchen_western
|
|
}
|
|
override_background = { reference = relaxing_room_location }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
triggered_animation = {
|
|
trigger = { has_trait = zealous }
|
|
animation = personality_cynical
|
|
}
|
|
animation = interested
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = { has_trait = eccentric }
|
|
animation = happiness
|
|
}
|
|
triggered_animation = {
|
|
trigger = { has_trait = zealous }
|
|
animation = dismissal
|
|
}
|
|
animation = thinking
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_storyteller
|
|
camera = camera_event_scheme_far_right
|
|
animation = storyteller
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Can we _not_ repeat the loc?
|
|
if = {
|
|
limit = { has_variable = 1031_saved_storyteller_state }
|
|
#We're capped out? Reset.
|
|
if = {
|
|
limit = { var:1031_saved_storyteller_state = 19 }
|
|
remove_variable ?= 1031_saved_storyteller_state
|
|
set_variable = {
|
|
name = 1031_saved_storyteller_state
|
|
value = 1
|
|
years = 10
|
|
}
|
|
}
|
|
#No? Then just increment.
|
|
else = {
|
|
save_scope_value_as = {
|
|
name = 1031_storyteller_state_cache
|
|
value = var:1031_saved_storyteller_state
|
|
}
|
|
remove_variable ?= 1031_saved_storyteller_state
|
|
set_variable = {
|
|
name = 1031_saved_storyteller_state
|
|
value = {
|
|
value = scope:1031_storyteller_state_cache
|
|
add = 1
|
|
}
|
|
years = 10
|
|
}
|
|
}
|
|
}
|
|
#Otherwise set up the counter
|
|
else = {
|
|
set_variable = {
|
|
name = 1031_saved_storyteller_state
|
|
value = {
|
|
#Randomize where we start
|
|
integer_range = {
|
|
min = 1
|
|
max = 16
|
|
}
|
|
}
|
|
years = 10
|
|
}
|
|
}
|
|
#Find our storyteller
|
|
if = {
|
|
#Do we already have a storyteller?
|
|
limit = {
|
|
NOT = { exists = scope:laamp_storyteller }
|
|
}
|
|
#Has this person been our storyteller in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
faith = scope:visiting_location.faith
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_storyteller_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
}
|
|
save_scope_as = laamp_storyteller
|
|
}
|
|
#Otherwise find a storyteller in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_storyteller }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
has_trait = lifestyle_reveler
|
|
}
|
|
save_scope_as = laamp_storyteller
|
|
}
|
|
}
|
|
#Otherwise create a storyteller
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_storyteller }
|
|
}
|
|
#Create storyteller to stuff in pool
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
trait = lifestyle_reveler
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_storyteller
|
|
}
|
|
}
|
|
#Make 'em a Reveler
|
|
scope:laamp_storyteller ?= {
|
|
if = {
|
|
limit = {
|
|
NOT = { has_trait = lifestyle_reveler }
|
|
}
|
|
add_trait = lifestyle_reveler
|
|
add_trait_xp = {
|
|
trait = lifestyle_reveler
|
|
value = {
|
|
integer_range = {
|
|
min = small_lifestyle_random_xp_mid
|
|
max = small_lifestyle_random_xp_high
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Remember the storyteller
|
|
1010_remember_vendor_character_effect = { GUILD = storyteller CHARACTER = scope:laamp_storyteller }
|
|
}
|
|
#What skill do we buff?
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1031_skill_to_buff }
|
|
}
|
|
#Roll for which skill to boost
|
|
random_list = {
|
|
1 = {
|
|
save_scope_value_as = {
|
|
name = 1031_skill_to_buff
|
|
value = flag:diplomacy
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1031_skill_to_buff_value
|
|
value = diplomacy
|
|
}
|
|
}
|
|
1 = {
|
|
save_scope_value_as = {
|
|
name = 1031_skill_to_buff
|
|
value = flag:martial
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1031_skill_to_buff_value
|
|
value = martial
|
|
}
|
|
}
|
|
1 = {
|
|
save_scope_value_as = {
|
|
name = 1031_skill_to_buff
|
|
value = flag:stewardship
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1031_skill_to_buff_value
|
|
value = stewardship
|
|
}
|
|
}
|
|
1 = {
|
|
save_scope_value_as = {
|
|
name = 1031_skill_to_buff
|
|
value = flag:intrigue
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1031_skill_to_buff_value
|
|
value = intrigue
|
|
}
|
|
}
|
|
1 = {
|
|
save_scope_value_as = {
|
|
name = 1031_skill_to_buff
|
|
value = flag:learning
|
|
}
|
|
save_scope_value_as = {
|
|
name = 1031_skill_to_buff_value
|
|
value = learning
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Save the xp trait as a static number
|
|
if = {
|
|
limit = {
|
|
NOR = {
|
|
#We're not already maxed in Wit
|
|
1031_is_max_witty_trigger = yes
|
|
exists = scope:storyteller_xp
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = storyteller_xp
|
|
value = {
|
|
integer_range = {
|
|
min = small_lifestyle_random_xp_low
|
|
max = small_lifestyle_random_xp_mid
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Contemplate the story
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Eccentric appreciates this
|
|
triggered_desc = {
|
|
trigger = { has_trait = eccentric }
|
|
desc = ep3_laamp_decision_event.1031.a_eccentric
|
|
}
|
|
#Zealous does not appreciate this
|
|
triggered_desc = {
|
|
trigger = { has_trait = zealous }
|
|
desc = ep3_laamp_decision_event.1031.a_zealous
|
|
}
|
|
#'s alright I guess
|
|
desc = ep3_laamp_decision_event.1031.a
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1031.a.cooldown.tt
|
|
NOT = { has_variable = 1031_has_storied_recently }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
#Set the cooldown on the action
|
|
set_variable = {
|
|
name = 1031_has_storied_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Chance to boost your lowest skill
|
|
1031_boost_lowest_skill_effect = yes
|
|
if = {
|
|
limit = {
|
|
has_trait = zealous
|
|
NOT = { has_trait = eccentric }
|
|
}
|
|
stress_impact = { zealous = miniscule_stress_impact_gain }
|
|
}
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1031_storied_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
has_variable = 1031_skill_gain_variable
|
|
var:1031_skill_gain_variable < visit_settlement_skill_gain_cap_value
|
|
add = 400 #Just do it
|
|
}
|
|
}
|
|
}
|
|
#Learn revelry or strong-arm the skill gain
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#I know this one!
|
|
triggered_desc = {
|
|
trigger = { 1031_is_max_witty_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1031.b_reveler
|
|
}
|
|
#Yeeh narration!
|
|
desc = ep3_laamp_decision_event.1031.b
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#Put a cooldown on strongarming it
|
|
trigger_if = {
|
|
limit = { 1031_is_max_witty_trigger = yes }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1031.b.cooldown.tt
|
|
NOT = { has_variable = 1031_has_reveled_recently }
|
|
}
|
|
}
|
|
#If we're zealous, we also need to be eccentric
|
|
trigger_if = {
|
|
limit = { has_trait = zealous }
|
|
has_trait = eccentric
|
|
}
|
|
#Trigger for everyone else
|
|
trigger_else = {
|
|
always = yes
|
|
}
|
|
}
|
|
show_as_unavailable = {
|
|
#Hide if what you're missing is a trait
|
|
trigger_if = {
|
|
limit = {
|
|
has_trait = zealous
|
|
NOT = { has_trait = eccentric }
|
|
}
|
|
always = no
|
|
}
|
|
trigger_else = { always = yes }
|
|
}
|
|
#Strongarm it
|
|
if = {
|
|
limit = { 1031_is_max_witty_trigger = yes }
|
|
1031_actual_skill_increase_effect = yes
|
|
#Set the cooldown on the action
|
|
set_variable = {
|
|
name = 1031_has_reveled_recently
|
|
months = visit_settlement_small_cooldown_days
|
|
}
|
|
stress_impact = {
|
|
base = medium_stress_impact_gain
|
|
ambitious = minor_stress_impact_loss
|
|
}
|
|
}
|
|
#Otherwise learn something
|
|
else = {
|
|
#Pay up
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_storyteller
|
|
gold = minor_gold_laamps_value
|
|
}
|
|
#Gain trait
|
|
if = {
|
|
limit = {
|
|
NOT = { has_trait = tourney_participant }
|
|
}
|
|
add_trait = tourney_participant
|
|
add_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value = scope:storyteller_xp
|
|
}
|
|
}
|
|
#Or be educated
|
|
else = {
|
|
add_trait_xp = {
|
|
trait = tourney_participant
|
|
track = wit
|
|
value = scope:storyteller_xp
|
|
}
|
|
}
|
|
}
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1031_storied_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
1031_is_max_witty_trigger = no
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
1031_is_max_witty_trigger = yes
|
|
stress_level > 1
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Stress relief
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Blasphemy!
|
|
triggered_desc = {
|
|
trigger = { has_trait = zealous }
|
|
desc = ep3_laamp_decision_event.1031.c_zealous
|
|
}
|
|
#_I_ was entertained
|
|
desc = ep3_laamp_decision_event.1031.c
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#Put a cooldown on relaxation
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1031.c.cooldown.tt
|
|
NOT = { has_variable = 1031_has_relaxed_recently }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
#Heathens!
|
|
if = {
|
|
limit = { has_trait = zealous }
|
|
add_piety = minor_piety_gain
|
|
}
|
|
#Took my mind off of things
|
|
stress_impact = {
|
|
base = miniscule_stress_impact_loss
|
|
zealous = minor_stress_impact_loss
|
|
}
|
|
#Set the cooldown on the action
|
|
set_variable = {
|
|
name = 1031_has_relaxed_recently
|
|
months = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1031_storied_effect = yes
|
|
ai_chance = {
|
|
base = 200 #Just do it
|
|
}
|
|
}
|
|
#I want to go back
|
|
option = {
|
|
name = ep3_laamp_decision_event.1031.d
|
|
#If you can't do anything, go in here, see the cooldown dates, go out and then we grey out the option
|
|
if = {
|
|
limit = {
|
|
has_variable = 1031_has_storied_recently
|
|
has_variable = 1031_has_reveled_recently
|
|
has_variable = 1031_has_relaxed_recently
|
|
}
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1031_storied_effect = yes
|
|
}
|
|
else = {
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1031_been_to_effect = { GUILD = storyteller }
|
|
}
|
|
ai_chance = { base = 100 }
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:storyteller }
|
|
}
|
|
}
|
|
|
|
|
|
#Set the correct variable to block off the Recruitment option and remove the desc flavor variable
|
|
scripted_effect 1033_recruited_effect = {
|
|
save_scope_as = laamp_decision_has_recruited
|
|
#Go back to the tavern main room
|
|
hidden_effect = { 1031_return_to_tavern_effect = yes }
|
|
}
|
|
|
|
#Tombola!
|
|
scripted_effect 1033_generate_character_effect = {
|
|
random_list = {
|
|
#Generic
|
|
60 = {
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
diplomacy = { decent_skill_rating high_skill_rating }
|
|
save_scope_as = 1033_new_character
|
|
}
|
|
}
|
|
#Diplomacy
|
|
10 = {
|
|
#Some variation
|
|
modifier = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
factor = 2
|
|
}
|
|
create_character = {
|
|
template = bp1_yearly_2021_diplomacy_person_template
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
diplomacy = { decent_skill_rating high_skill_rating }
|
|
save_scope_as = 1033_new_character
|
|
}
|
|
}
|
|
#Martial
|
|
10 = {
|
|
modifier = {
|
|
scope:visiting_location = { has_holding_type = castle_holding }
|
|
factor = 2
|
|
}
|
|
create_character = {
|
|
template = bp1_yearly_2021_martial_person_template
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
martial = { decent_skill_rating high_skill_rating }
|
|
save_scope_as = 1033_new_character
|
|
}
|
|
}
|
|
#Stewardship
|
|
10 = {
|
|
modifier = {
|
|
scope:visiting_location = { has_holding_type = city_holding }
|
|
factor = 2
|
|
}
|
|
create_character = {
|
|
template = bp1_yearly_2021_stewardship_person_template
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
stewardship = { decent_skill_rating high_skill_rating }
|
|
save_scope_as = 1033_new_character
|
|
}
|
|
}
|
|
#Intrigue
|
|
10 = {
|
|
modifier = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
factor = 2
|
|
}
|
|
create_character = {
|
|
template = bp1_yearly_2021_intrigue_person_template
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
intrigue = { decent_skill_rating high_skill_rating }
|
|
save_scope_as = 1033_new_character
|
|
}
|
|
}
|
|
#Learning
|
|
10 = {
|
|
modifier = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = church_holding
|
|
has_holding_type = temple_citadel_holding
|
|
}
|
|
}
|
|
factor = 2
|
|
}
|
|
create_character = {
|
|
template = bp1_yearly_2021_learning_person_template
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
learning = { decent_skill_rating high_skill_rating }
|
|
save_scope_as = 1033_new_character
|
|
}
|
|
}
|
|
#... witch
|
|
5 = {
|
|
modifier = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
factor = 2
|
|
}
|
|
create_character = {
|
|
template = bp1_yearly_2021_learning_witch_template
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
learning = { decent_skill_rating high_skill_rating }
|
|
save_scope_as = 1033_new_character
|
|
}
|
|
}
|
|
}
|
|
scope:1033_new_character ?= {
|
|
#Chance to add a malus trait to this spectatular being
|
|
if = {
|
|
limit = {
|
|
NOR = {
|
|
has_trait = possessed_1
|
|
has_trait = lunatic_1
|
|
has_trait = depressed_1
|
|
has_trait = drunkard
|
|
has_trait = hashishiyah
|
|
has_trait = irritable
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
random = {
|
|
chance = 20
|
|
random_list = {
|
|
10 = { add_trait = possessed_1 }
|
|
10 = { add_trait = lunatic_1 }
|
|
10 = { add_trait = depressed_1 }
|
|
10 = { add_trait = drunkard }
|
|
10 = { add_trait = hashishiyah }
|
|
10 = { add_trait = irritable }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = { scope:laamp_first_recruit ?= $SCOPE$ }
|
|
scope:1033_new_character = { save_scope_as = laamp_first_recruit }
|
|
}
|
|
if = {
|
|
limit = { scope:laamp_second_recruit ?= $SCOPE$ }
|
|
scope:1033_new_character = { save_scope_as = laamp_second_recruit }
|
|
}
|
|
if = {
|
|
limit = { scope:laamp_third_recruit ?= $SCOPE$ }
|
|
scope:1033_new_character = { save_scope_as = laamp_third_recruit }
|
|
}
|
|
}
|
|
|
|
#Used enough to warrant an effect
|
|
scripted_effect 1033_add_courtier_with_opinion_effect = {
|
|
if = {
|
|
limit = {
|
|
has_perk = professional_workforce_perk
|
|
}
|
|
$TARGET$ = {
|
|
if = {
|
|
limit = {
|
|
highest_skill_including_prowess = prowess
|
|
}
|
|
add_prowess_skill = 5
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
highest_skill = intrigue
|
|
}
|
|
add_intrigue_skill = 5
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
highest_skill = martial
|
|
}
|
|
add_martial_skill = 5
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
highest_skill = stewardship
|
|
}
|
|
add_stewardship_skill = 5
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
highest_skill = diplomacy
|
|
}
|
|
add_diplomacy_skill = 5
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
highest_skill = learning
|
|
}
|
|
add_learning_skill = 5
|
|
}
|
|
hidden_effect = {
|
|
force_character_skill_recalculation = yes
|
|
}
|
|
}
|
|
}
|
|
add_courtier = $TARGET$
|
|
hidden_effect = {
|
|
$TARGET$ = {
|
|
add_opinion = {
|
|
modifier = recruited_me_opinion
|
|
target = root
|
|
opinion = 50
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_effect 1033_set_cost_effect = {
|
|
save_scope_value_as = {
|
|
name = $VALUE_NAME$_sum_skills
|
|
value = {
|
|
add = $CHARACTER$.diplomacy
|
|
add = $CHARACTER$.martial
|
|
add = $CHARACTER$.stewardship
|
|
add = $CHARACTER$.intrigue
|
|
add = $CHARACTER$.learning
|
|
add = $CHARACTER$.prowess
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = $VALUE_NAME$
|
|
value = {
|
|
integer_range = {
|
|
min = medium_gold_laamps_value
|
|
max = major_gold_laamps_value
|
|
}
|
|
#Cheaper out in the wilds
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
multiply = 0.6
|
|
}
|
|
if = { #They're stellar? More expensive. :elmofire:
|
|
limit = { scope:$VALUE_NAME$_sum_skills >= 120 } #Good in all skills?
|
|
multiply = 8 #20 in all skills
|
|
}
|
|
else_if = {
|
|
limit = { scope:$VALUE_NAME$_sum_skills >= 100 } #Good in four skills?
|
|
multiply = 5
|
|
}
|
|
else_if = {
|
|
limit = { scope:$VALUE_NAME$_sum_skills >= 80 } #Good in three skills?
|
|
multiply = 4
|
|
}
|
|
else_if = {
|
|
limit = { scope:$VALUE_NAME$_sum_skills >= 60 } #Good in two skills?
|
|
multiply = 3
|
|
}
|
|
else_if = {
|
|
limit = { scope:$VALUE_NAME$_sum_skills >= 40 } #Good in one-and-a-half skill? Should be roughly 90-110 gold
|
|
multiply = 2.5
|
|
}
|
|
else_if = {
|
|
limit = { scope:$VALUE_NAME$_sum_skills >= 20 } #Good in one skill?
|
|
multiply = 1.5
|
|
}
|
|
#Add perk discounts and other things here.
|
|
}
|
|
}
|
|
}
|
|
|
|
#This is a remotely interesting character
|
|
scripted_trigger 1033_has_interesting_skillset_trigger = {
|
|
OR = {
|
|
diplomacy > high_skill_rating
|
|
martial > high_skill_rating
|
|
stewardship > high_skill_rating
|
|
intrigue > high_skill_rating
|
|
learning > high_skill_rating
|
|
prowess > high_skill_rating
|
|
}
|
|
}
|
|
|
|
|
|
#Recruitment
|
|
ep3_laamp_decision_event.1033 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1033.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#What's going down in the recruitment corner
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: We have three recruits
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:laamp_generic_jane }
|
|
exists = scope:been_to_recruit
|
|
scope:recruit_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1033.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:laamp_generic_jane }
|
|
scope:recruit_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1033.desc_returned_02
|
|
}
|
|
}
|
|
#RETURN: We have two recruits, and Jane
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_recruit
|
|
scope:recruit_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1033.desc_returned_jane_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:recruit_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1033.desc_returned_jane_02
|
|
}
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_recruit }
|
|
}
|
|
desc = ep3_laamp_decision_event.1033.desc
|
|
}
|
|
}
|
|
#Do we have two or three potential recruits?
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_generic_jane
|
|
NOT = { exists = scope:been_to_recruit }
|
|
}
|
|
desc = ep3_laamp_decision_event.1033.desc_mid_two
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = {
|
|
exists = scope:been_to_recruit
|
|
exists = scope:laamp_generic_jane
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1033.desc_mid_three
|
|
}
|
|
}
|
|
#OUTRO:
|
|
first_valid = {
|
|
#We have a Visiting Partner
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
NOT = { exists = scope:laamp_generic_jane }
|
|
}
|
|
desc = ep3_laamp_decision_event.1033.desc_partner_outro
|
|
}
|
|
#We have a Generic Jane
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_generic_jane
|
|
NOT = { exists = scope:been_to_recruit }
|
|
}
|
|
desc = ep3_laamp_decision_event.1033.desc_jane_outro
|
|
}
|
|
triggered_desc = {
|
|
trigger = { exists = scope:laamp_generic_jane }
|
|
desc = ep3_laamp_decision_event.1033.desc_returned_jane_outro
|
|
}
|
|
#We have no Visiting Partner or Generic Jane
|
|
desc = ep3_laamp_decision_event.1033.desc_outro
|
|
}
|
|
}
|
|
theme = landless_adventurer
|
|
override_icon = { reference = "gfx/interface/icons/event_types/type_duty.dds" }
|
|
override_background = { reference = feast }
|
|
#Our recruits
|
|
left_portrait = {
|
|
trigger = { exists = scope:1033_first_character }
|
|
character = scope:1033_first_character
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:recruit_loc_tracker ?= 1
|
|
NOT = { scope:1033_first_character ?= scope:visiting_partner }
|
|
}
|
|
animation = flirtation
|
|
}
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_first_character = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = admiration
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_first_character = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = schadenfreude
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_first_character = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = personality_cynical
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_first_character = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = personality_irrational
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_first_character = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = shame
|
|
}
|
|
animation = interested
|
|
}
|
|
center_portrait = {
|
|
character = scope:1033_second_character
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:recruit_loc_tracker ?= 1
|
|
scope:1033_second_character != root
|
|
}
|
|
animation = worry
|
|
}
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_second_character = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = personality_compassionate
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_second_character = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = personality_dishonorable
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_second_character = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = personality_callous
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_second_character = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = laugh
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_second_character = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = disbelief
|
|
}
|
|
animation = hero_flex
|
|
}
|
|
right_portrait = {
|
|
trigger = { exists = scope:1033_third_character }
|
|
character = scope:1033_third_character
|
|
camera = camera_event_scheme_center_forward
|
|
triggered_animation = {
|
|
trigger = { exists = scope:laamp_generic_jane }
|
|
animation = personality_zealous
|
|
}
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:recruit_loc_tracker ?= 1
|
|
NOT = { exists = scope:laamp_generic_jane }
|
|
}
|
|
animation = disapproval
|
|
}
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_third_character = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = personality_forgiving
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_third_character = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = personality_greedy
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_third_character = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = disapproval
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_third_character = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = eccentric
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1033_third_character = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = personality_coward
|
|
}
|
|
animation = scheme
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#For the background
|
|
scope:visiting_location.county.holder = { save_scope_as = bg_override_char }
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = recruit }
|
|
#Create the characters
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_first_recruit }
|
|
}
|
|
#First character
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
#Remotely interesting
|
|
1033_has_interesting_skillset_trigger = yes
|
|
}
|
|
save_scope_as = laamp_first_recruit
|
|
}
|
|
#Otherwise create 'em
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_first_recruit }
|
|
}
|
|
#Create first recruit to stuff in pool
|
|
save_scope_as = laamp_first_recruit
|
|
1033_generate_character_effect = { SCOPE = scope:laamp_first_recruit }
|
|
}
|
|
#Set their cost
|
|
1033_set_cost_effect = { CHARACTER = scope:laamp_first_recruit VALUE_NAME = first_recruit_cost }
|
|
#Second character
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
#Remotely interesting
|
|
1033_has_interesting_skillset_trigger = yes
|
|
this != scope:laamp_first_recruit
|
|
}
|
|
save_scope_as = laamp_second_recruit
|
|
}
|
|
#Otherwise create 'em
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_second_recruit }
|
|
}
|
|
#Create second recruit to stuff in pool
|
|
save_scope_as = laamp_second_recruit
|
|
1033_generate_character_effect = { SCOPE = scope:laamp_second_recruit }
|
|
}
|
|
#Set their cost
|
|
1033_set_cost_effect = { CHARACTER = scope:laamp_second_recruit VALUE_NAME = second_recruit_cost }
|
|
#You have no one? Well. Have a generic Joe
|
|
if = {
|
|
limit = {
|
|
any_courtier = { count <= 2 }
|
|
}
|
|
#Grab someone random
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
is_available_healthy_adult = yes
|
|
NOR = {
|
|
this = scope:laamp_first_recruit
|
|
this = scope:laamp_second_recruit
|
|
}
|
|
}
|
|
#More fun this way
|
|
weight = {
|
|
base = 1
|
|
modifier = {
|
|
any_secret = { exists = this }
|
|
factor = 2
|
|
}
|
|
}
|
|
save_scope_as = laamp_generic_jane
|
|
}
|
|
#Otherwise create 'em
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_generic_jane }
|
|
}
|
|
#Create generic to stuff in pool
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_generic_jane
|
|
}
|
|
#... you didn't think it would be _that_ easy, right?
|
|
scope:laamp_generic_jane ?= {
|
|
hidden_effect = {
|
|
random = {
|
|
chance = 20
|
|
random_list = {
|
|
#Have a murderer
|
|
10 = {
|
|
trigger = { is_murderer_trigger = no }
|
|
#Create a victim to kill
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
culture = scope:visiting_location.location.county.culture
|
|
faith = scope:visiting_location.location.county.faith
|
|
location = scope:visiting_location.location
|
|
after_creation = { set_to_lowborn = yes }
|
|
save_scope_as = 1030_previous_victim
|
|
}
|
|
scope:1030_previous_victim = {
|
|
death = {
|
|
death_reason = death_murder
|
|
killer = scope:laamp_generic_jane
|
|
}
|
|
}
|
|
#Set up secret
|
|
scope:laamp_generic_jane = {
|
|
add_secret = {
|
|
type = secret_murder
|
|
target = scope:1030_previous_victim
|
|
}
|
|
}
|
|
}
|
|
#Or a witch
|
|
10 = {
|
|
trigger = { is_witch_trigger = no }
|
|
add_secret = { type = secret_witch }
|
|
}
|
|
#Or a cannibal
|
|
10 = {
|
|
trigger = { is_cannibal_trigger = no }
|
|
add_secret = { type = secret_cannibal }
|
|
}
|
|
#Maybe a deviant?
|
|
10 = {
|
|
trigger = { is_deviant_trigger = no }
|
|
add_secret = { type = secret_deviant }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Third character
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_generic_jane }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
#Remotely interesting
|
|
1033_has_interesting_skillset_trigger = yes
|
|
NOR = {
|
|
this = scope:laamp_first_recruit
|
|
this = scope:laamp_second_recruit
|
|
}
|
|
}
|
|
save_scope_as = laamp_third_recruit
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_third_recruit }
|
|
}
|
|
#Create third recruit to stuff in pool
|
|
save_scope_as = laamp_third_recruit
|
|
1033_generate_character_effect = { SCOPE = scope:laamp_third_recruit }
|
|
}
|
|
#Set their cost
|
|
if = {
|
|
limit = { exists = scope:laamp_third_recruit }
|
|
1033_set_cost_effect = { CHARACTER = scope:laamp_third_recruit VALUE_NAME = third_recruit_cost }
|
|
}
|
|
}
|
|
}
|
|
#Determine whom to display
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1033_second_character }
|
|
}
|
|
if = {
|
|
limit = { exists = scope:laamp_first_recruit }
|
|
scope:laamp_first_recruit = { save_scope_as = 1033_first_character }
|
|
}
|
|
if = {
|
|
limit = { exists = scope:laamp_second_recruit }
|
|
scope:laamp_second_recruit = { save_scope_as = 1033_second_character }
|
|
}
|
|
if = {
|
|
limit = { exists = scope:laamp_generic_jane }
|
|
scope:laamp_generic_jane = { save_scope_as = 1033_third_character }
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1033_third_character }
|
|
exists = scope:laamp_third_recruit
|
|
}
|
|
scope:laamp_third_recruit = { save_scope_as = 1033_third_character }
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1033_first_character }
|
|
exists = scope:visiting_partner
|
|
}
|
|
scope:visiting_partner = { save_scope_as = 1033_first_character }
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1033_second_character }
|
|
}
|
|
save_scope_as = 1033_second_character
|
|
}
|
|
}
|
|
}
|
|
#Recruit character A
|
|
option = {
|
|
name = ep3_laamp_decision_event.1033.a
|
|
#Pay gold
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_first_recruit
|
|
gold = scope:first_recruit_cost
|
|
}
|
|
#Hire wo/manpower
|
|
1033_add_courtier_with_opinion_effect = { TARGET = scope:laamp_first_recruit }
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1033_recruited_effect = yes
|
|
#Rewards for the Camp Party
|
|
hidden_effect = {
|
|
if = {
|
|
limit = {
|
|
has_character_flag = better_recruitment_visit_holding_flag
|
|
}
|
|
scope:laamp_first_recruit = {
|
|
ep3_camp_party_visit_holding_skills_boost = yes
|
|
}
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 50
|
|
modifier = {
|
|
short_term_gold < scope:first_recruit_cost
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
any_courtier = { count <= 2 }
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Recruit character B
|
|
option = {
|
|
name = ep3_laamp_decision_event.1033.b
|
|
#Pay gold
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_second_recruit
|
|
gold = scope:second_recruit_cost
|
|
}
|
|
#Hire wo/manpower
|
|
1033_add_courtier_with_opinion_effect = { TARGET = scope:laamp_second_recruit }
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1033_recruited_effect = yes
|
|
hidden_effect = {
|
|
if = {
|
|
limit = {
|
|
has_character_flag = better_recruitment_visit_holding_flag
|
|
}
|
|
scope:laamp_second_recruit = {
|
|
ep3_camp_party_visit_holding_skills_boost = yes
|
|
}
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 50
|
|
modifier = {
|
|
short_term_gold < scope:second_recruit_cost
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
any_courtier = { count <= 2 }
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Recruit character C
|
|
option = {
|
|
name = ep3_laamp_decision_event.1033.c
|
|
trigger = {
|
|
NOT = { exists = scope:laamp_generic_jane }
|
|
}
|
|
#Pay gold
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_third_recruit
|
|
gold = scope:third_recruit_cost
|
|
}
|
|
#Hire wo/manpower
|
|
1033_add_courtier_with_opinion_effect = { TARGET = scope:laamp_third_recruit }
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1033_recruited_effect = yes
|
|
hidden_effect = {
|
|
if = {
|
|
limit = {
|
|
has_character_flag = better_recruitment_visit_holding_flag
|
|
}
|
|
scope:laamp_third_recruit = {
|
|
ep3_camp_party_visit_holding_skills_boost = yes
|
|
}
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 50
|
|
modifier = {
|
|
short_term_gold < scope:third_recruit_cost
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
any_courtier = { count <= 2 }
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Generic Jane keeps waving their hand
|
|
option = {
|
|
name = ep3_laamp_decision_event.1033.d
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1033.d.cooldown.tt
|
|
NOT = { has_variable = 1033_generic_jane_cooldown }
|
|
exists = scope:laamp_generic_jane
|
|
}
|
|
}
|
|
show_as_unavailable = {
|
|
#Show that it's unavailable if it would actually be available
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:laamp_generic_jane
|
|
has_variable = 1033_generic_jane_cooldown
|
|
}
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
#Add 'em
|
|
1033_add_courtier_with_opinion_effect = { TARGET = scope:laamp_generic_jane }
|
|
set_variable = {
|
|
name = 1033_generic_jane_cooldown
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1033_recruited_effect = yes
|
|
hidden_effect = {
|
|
if = {
|
|
limit = {
|
|
has_character_flag = better_recruitment_visit_holding_flag
|
|
}
|
|
scope:laamp_generic_jane = {
|
|
ep3_camp_party_visit_holding_skills_boost = yes
|
|
}
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 1000 #Just do it
|
|
}
|
|
}
|
|
#I want to go back
|
|
option = {
|
|
name = ep3_laamp_decision_event.1033.e
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1031_been_to_effect = { GUILD = recruit }
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 2
|
|
}
|
|
}
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:recruit }
|
|
}
|
|
}
|
|
|
|
|
|
#Set the correct variable to block off the Spouse option and remove the desc flavor variable
|
|
scripted_effect 1035_spoused_effect = {
|
|
save_scope_value_as = {
|
|
name = laamp_decision_has_spoused
|
|
value = flag:yes
|
|
}
|
|
#Cooldown for prowling
|
|
set_variable = {
|
|
name = 1035_has_spoused_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Go back to the tavern main room
|
|
hidden_effect = { 1031_return_to_tavern_effect = yes }
|
|
}
|
|
|
|
|
|
#Spouse material
|
|
ep3_laamp_decision_event.1035 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1035.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#Well, hello there
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: Generics
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_spouse
|
|
scope:spouse_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1035.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:spouse_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1035.desc_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME: We've seen this spouse-r before
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_spouse
|
|
NOT = { exists = scope:been_to_spouse }
|
|
}
|
|
desc = ep3_laamp_decision_event.1035.desc_reused_spouse
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_spouse }
|
|
}
|
|
desc = ep3_laamp_decision_event.1035.desc
|
|
}
|
|
}
|
|
}
|
|
theme = seduction
|
|
override_sound = { reference = "event:/SFX/Events/Themes/sfx_event_theme_type_seduction" }
|
|
override_background = {
|
|
trigger = { 1000_is_a_nomadic_holding_trigger = yes }
|
|
reference = ep3_military_tent #Give me other variations - like a yurt - and I'll use a yurt. Otherwise you get a tent.
|
|
}
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
reference = tavern
|
|
}
|
|
override_background = { reference = tavern }
|
|
center_portrait = {
|
|
character = root
|
|
camera = camera_event_scheme_vs_right_look_right
|
|
triggered_animation = {
|
|
trigger = {
|
|
OR = {
|
|
has_trait = paranoid
|
|
has_trait = craven
|
|
has_trait = shy
|
|
}
|
|
}
|
|
animation = shame
|
|
}
|
|
animation = ecstasy
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_spouse_material
|
|
#First time engaging them
|
|
triggered_animation = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_spouse }
|
|
}
|
|
animation = personality_callous
|
|
}
|
|
animation = personality_cynical
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Run this once: Re-save the portrait so the Spouse is not the 1030_second_character / 1030_third_character
|
|
if = {
|
|
limit = { scope:1030_second_character ?= scope:laamp_spouse_material }
|
|
#If we have a partner, shuffle the portraits
|
|
if = {
|
|
limit = { exists = scope:visiting_partner }
|
|
#Move ROOT into the second character slot
|
|
save_scope_as = 1030_second_character
|
|
scope:visiting_partner = { save_scope_as = 1030_first_character }
|
|
}
|
|
#Otherwise overwrite the portrait with ROOT to disappear the second one
|
|
else = { save_scope_as = 1030_second_character }
|
|
}
|
|
else_if = {
|
|
limit = { scope:1030_third_character ?= scope:laamp_spouse_material }
|
|
#Overwrite the portrait with ROOT to disappear the third one
|
|
save_scope_as = 1030_third_character
|
|
#And move ROOT into the second character slot
|
|
save_scope_as = 1030_second_character
|
|
}
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = spouse }
|
|
#Remember this potential spouse -- for a while, at least
|
|
add_to_variable_list = {
|
|
name = 1025_remembered_spouse_potential_list
|
|
target = scope:laamp_spouse_material
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Set the drink cost
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:spouse_drink_cost }
|
|
}
|
|
save_scope_value_as = {
|
|
name = spouse_drink_cost
|
|
value = {
|
|
integer_range = {
|
|
min = tiny_gold_laamps_value
|
|
max = minor_gold_laamps_value
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Pick a pick-up line
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1035_saved_pickup_line }
|
|
}
|
|
random_list = {
|
|
10 = {
|
|
save_scope_value_as = {
|
|
name = 1035_saved_pickup_line
|
|
value = flag:first
|
|
}
|
|
}
|
|
10 = {
|
|
save_scope_value_as = {
|
|
name = 1035_saved_pickup_line
|
|
value = flag:second
|
|
}
|
|
}
|
|
10 = {
|
|
save_scope_value_as = {
|
|
name = 1035_saved_pickup_line
|
|
value = flag:third
|
|
}
|
|
}
|
|
10 = {
|
|
save_scope_value_as = {
|
|
name = 1035_saved_pickup_line
|
|
value = flag:fourth
|
|
}
|
|
}
|
|
10 = {
|
|
save_scope_value_as = {
|
|
name = 1035_saved_pickup_line
|
|
value = flag:fifth
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Buy 'em a drink
|
|
option = {
|
|
name = ep3_laamp_decision_event.1035.a
|
|
#Pay gold
|
|
remove_short_term_gold = scope:spouse_drink_cost
|
|
#Have them join your camp
|
|
1033_add_courtier_with_opinion_effect = { TARGET = scope:laamp_spouse_material }
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1035_spoused_effect = yes
|
|
ai_chance = {
|
|
base = 300
|
|
modifier = {
|
|
short_term_gold < scope:spouse_drink_cost
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Intrigue Duel
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:1035_saved_pickup_line ?= flag:first }
|
|
desc = ep3_laamp_decision_event.1035.b_first
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:1035_saved_pickup_line ?= flag:second }
|
|
desc = ep3_laamp_decision_event.1035.b_second
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:1035_saved_pickup_line ?= flag:third }
|
|
desc = ep3_laamp_decision_event.1035.b_third
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:1035_saved_pickup_line ?= flag:fourth }
|
|
desc = ep3_laamp_decision_event.1035.b_fourth
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:1035_saved_pickup_line ?= flag:fifth }
|
|
desc = ep3_laamp_decision_event.1035.b_fifth
|
|
}
|
|
#Fallback
|
|
desc = ep3_laamp_decision_event.1035.b_fallback
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1035.b.cooldown.tt
|
|
NOT = { has_variable = 1035_spouse_duelled_recently }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
duel = {
|
|
skill = intrigue
|
|
value = average_skill_rating
|
|
#Success: Hire 'em up
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
desc = ep3_laamp_decision_event.1035.b.success
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1035.b.success
|
|
left_icon = root
|
|
right_icon = scope:laamp_spouse_material
|
|
#Yippee!
|
|
1033_add_courtier_with_opinion_effect = { TARGET = scope:laamp_spouse_material }
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
1035_spoused_effect = yes
|
|
}
|
|
}
|
|
#Failure: Bye, now
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -20
|
|
}
|
|
desc = ep3_laamp_decision_event.1035.b.failure
|
|
send_interface_toast = {
|
|
type = event_toast_text_bad
|
|
title = ep3_laamp_decision_event.1035.b.failure
|
|
desc = ep3_laamp_decision_event.1035.b.failure.tt
|
|
left_icon = root
|
|
right_icon = scope:laamp_spouse_material
|
|
#Oh well
|
|
custom_tooltip = ep3_laamp_decision_event.1035.b.failure.tt
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
save_scope_value_as = {
|
|
name = laamp_decision_has_spoused
|
|
value = flag:no
|
|
}
|
|
#Go back to the tavern main room
|
|
1031_return_to_tavern_effect = yes
|
|
}
|
|
}
|
|
}
|
|
#Cooldown for the action
|
|
set_variable = {
|
|
name = 1035_spouse_duelled_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
ai_chance = { base = 200 }
|
|
}
|
|
#Triggered Option: Seducer
|
|
option = {
|
|
name = ep3_laamp_decision_event.1035.c
|
|
trigger = {
|
|
has_trait = seducer
|
|
is_ai = no
|
|
trigger_if = {
|
|
limit = { has_variable = 1035_spouse_unwinded_recently }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1035.c.cooldown.tt
|
|
always = no
|
|
}
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
#Pick 'em up
|
|
progress_towards_lover_effect = {
|
|
CHARACTER = scope:laamp_spouse_material
|
|
REASON = lover_tavern_hookup
|
|
OPINION = 50
|
|
}
|
|
add_courtier = scope:laamp_spouse_material
|
|
save_scope_as = 1035_unwinded_with_spouse_potential
|
|
#Cooldown for the action
|
|
set_variable = {
|
|
name = 1035_spouse_unwinded_recently
|
|
months = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1035_spoused_effect = yes
|
|
}
|
|
#I want to go back
|
|
option = {
|
|
name = ep3_laamp_decision_event.1035.d
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1031_been_to_effect = { GUILD = spouse }
|
|
ai_chance = { base = 100 }
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:spouse }
|
|
}
|
|
}
|
|
|
|
|
|
#Set the correct variable to block off the Hood option and remove the desc flavor variable
|
|
scripted_effect 1037_hooded_effect = {
|
|
save_scope_value_as = {
|
|
name = laamp_decision_recruited_hood
|
|
value = flag:no
|
|
}
|
|
#Go back to the tavern main room
|
|
hidden_effect = { 1031_return_to_tavern_effect = yes }
|
|
}
|
|
|
|
#This implementation hurts me as much as it hurts you
|
|
scripted_effect 1037_determine_highest_gallowsbait_track_effect = {
|
|
if = {
|
|
limit = { has_trait = gallowsbait }
|
|
#Is any of it aced?
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = bandit
|
|
value = 100 #Max value
|
|
}
|
|
}
|
|
save_scope_as = ace_gallowsbait_bandit
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = trickster
|
|
value = 100 #Max value
|
|
}
|
|
}
|
|
save_scope_as = ace_gallowsbait_trickster
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value = 100 #Max value
|
|
}
|
|
}
|
|
save_scope_as = ace_gallowsbait_thief
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = poacher
|
|
value = 100 #Max value
|
|
}
|
|
}
|
|
save_scope_as = ace_gallowsbait_poacher
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = marauder
|
|
value = 100 #Max value
|
|
}
|
|
}
|
|
save_scope_as = ace_gallowsbait_marauder
|
|
}
|
|
#If two are roughly the same, randomize it
|
|
random_list = {
|
|
10 = {
|
|
trigger = { exists = scope:ace_gallowsbait_bandit }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:bandit
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:ace_gallowsbait_trickster }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:trickster
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:ace_gallowsbait_thief }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:thief
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:ace_gallowsbait_poacher }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:poacher
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:ace_gallowsbait_marauder }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:marauder
|
|
}
|
|
}
|
|
}
|
|
#No? Then find an intermediate.
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1037_highest_gallowsbait_track }
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = bandit
|
|
value >= medium_lifestyle_random_xp_high
|
|
}
|
|
}
|
|
save_scope_as = intermediate_gallowsbait_bandit
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = trickster
|
|
value >= medium_lifestyle_random_xp_high
|
|
}
|
|
}
|
|
save_scope_as = intermediate_gallowsbait_trickster
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value >= medium_lifestyle_random_xp_high
|
|
}
|
|
}
|
|
save_scope_as = intermediate_gallowsbait_thief
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = poacher
|
|
value >= medium_lifestyle_random_xp_high
|
|
}
|
|
}
|
|
save_scope_as = intermediate_gallowsbait_poacher
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = marauder
|
|
value >= medium_lifestyle_random_xp_high
|
|
}
|
|
}
|
|
save_scope_as = intermediate_gallowsbait_marauder
|
|
}
|
|
#If two are roughly the same, randomize it
|
|
random_list = {
|
|
10 = {
|
|
trigger = { exists = scope:intermediate_gallowsbait_bandit }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:bandit
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:intermediate_gallowsbait_trickster }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:trickster
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:intermediate_gallowsbait_thief }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:thief
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:intermediate_gallowsbait_poacher }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:poacher
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:intermediate_gallowsbait_marauder }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:marauder
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Still nothing? How about an average.
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1037_highest_gallowsbait_track }
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = bandit
|
|
value >= medium_lifestyle_random_xp_low
|
|
}
|
|
}
|
|
save_scope_as = average_gallowsbait_bandit
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = trickster
|
|
value >= medium_lifestyle_random_xp_low
|
|
}
|
|
}
|
|
save_scope_as = average_gallowsbait_trickster
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value >= medium_lifestyle_random_xp_low
|
|
}
|
|
}
|
|
save_scope_as = average_gallowsbait_thief
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = poacher
|
|
value >= medium_lifestyle_random_xp_low
|
|
}
|
|
}
|
|
save_scope_as = average_gallowsbait_poacher
|
|
}
|
|
if = {
|
|
limit = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = marauder
|
|
value >= medium_lifestyle_random_xp_low
|
|
}
|
|
}
|
|
save_scope_as = average_gallowsbait_marauder
|
|
}
|
|
#If two are roughly the same, randomize it
|
|
random_list = {
|
|
10 = {
|
|
trigger = { exists = scope:average_gallowsbait_bandit }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:bandit
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:average_gallowsbait_trickster }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:trickster
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:average_gallowsbait_thief }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:thief
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:average_gallowsbait_poacher }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:poacher
|
|
}
|
|
}
|
|
10 = {
|
|
trigger = { exists = scope:average_gallowsbait_marauder }
|
|
save_scope_value_as = {
|
|
name = 1037_highest_gallowsbait_track
|
|
value = flag:marauder
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#If we still don't have a scope here, we need to have another look at the character pool pull/create, 'cause then it didn't reach medium_lifestyle_random_xp_low in any track
|
|
}
|
|
}
|
|
|
|
#Yupyup
|
|
scripted_effect 1037_hire_thief_effect = {
|
|
hidden_effect = {
|
|
reverse_add_opinion = {
|
|
target = scope:laamp_hooded_figure
|
|
modifier = recruited_me_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
add_courtier = scope:laamp_hooded_figure
|
|
#The actual effect happens in after
|
|
show_as_tooltip = {
|
|
camp_officer_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = master_thief
|
|
CANDIDATE = scope:laamp_hooded_figure
|
|
}
|
|
}
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
save_scope_value_as = {
|
|
name = laamp_decision_recruited_hood
|
|
value = flag:yes
|
|
}
|
|
#Go back to tavern
|
|
hidden_effect = { 1031_return_to_tavern_effect = yes }
|
|
}
|
|
|
|
#Pretty self-explanatory
|
|
scripted_trigger 1037_maxed_gallowsbait_track_trigger = {
|
|
OR = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = bandit
|
|
value = 100 #Max value
|
|
}
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = trickster
|
|
value = 100 #Max value
|
|
}
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value = 100 #Max value
|
|
}
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = poacher
|
|
value = 100 #Max value
|
|
}
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = marauder
|
|
value = 100 #Max value
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_effect 1037_noble_reward_effect = {
|
|
add_contact = scope:laamp_disguised_noble
|
|
add_hook_if_possible_default_length_effect = {
|
|
TARGET = scope:laamp_disguised_noble
|
|
TYPE = favor_hook
|
|
}
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_rescued_from_tavern_brawl
|
|
CHARACTER = scope:laamp_disguised_noble
|
|
OPINION = default_friend_opinion
|
|
}
|
|
}
|
|
|
|
#Duel for your highest skill stat
|
|
scripted_effect 1037_highest_skill_duel_effect = {
|
|
if = {
|
|
limit = { highest_skill = diplomacy }
|
|
1037_duel_effect = { SKILL = diplomacy }
|
|
}
|
|
else_if = {
|
|
limit = { highest_skill = stewardship }
|
|
1037_duel_effect = { SKILL = stewardship }
|
|
}
|
|
else_if = {
|
|
limit = { highest_skill = intrigue }
|
|
1037_duel_effect = { SKILL = intrigue }
|
|
}
|
|
else_if = {
|
|
limit = { highest_skill = learning }
|
|
1037_duel_effect = { SKILL = learning }
|
|
}
|
|
else_if = {
|
|
limit = { highest_skill = martial }
|
|
1037_duel_effect = { SKILL = martial }
|
|
}
|
|
else_if = {
|
|
limit = { highest_skill_including_prowess = prowess }
|
|
1037_duel_effect = { SKILL = prowess }
|
|
}
|
|
}
|
|
|
|
#Actual duel effect
|
|
scripted_effect 1037_duel_effect = {
|
|
duel = {
|
|
skill = $SKILL$
|
|
value = medium_skill_rating
|
|
#Success: Yay, free contact
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.b.success
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1037.b.success.t
|
|
left_icon = root
|
|
right_icon = scope:laamp_disguised_noble
|
|
#Woo rewards
|
|
show_as_tooltip = { #Don't need two toasts for the hook
|
|
add_contact = scope:laamp_disguised_noble
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_rescued_from_tavern_brawl
|
|
CHARACTER = scope:laamp_disguised_noble
|
|
OPINION = default_friend_opinion
|
|
}
|
|
}
|
|
hidden_effect = { 1037_noble_reward_effect = yes }
|
|
#Go back to the main event
|
|
1037_hooded_effect = yes
|
|
}
|
|
}
|
|
#Failure: Whoopsie, they became wounded
|
|
25 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -20
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.b.failure
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1037.b.failure.t
|
|
left_icon = root
|
|
right_icon = scope:laamp_disguised_noble
|
|
random_list = {
|
|
50 = {
|
|
#Less chance that _we_ get hurt if we're buff
|
|
compare_modifier = { value = prowess }
|
|
#Oops
|
|
scope:laamp_disguised_noble = {
|
|
increase_wounds_effect = { REASON = fight }
|
|
}
|
|
}
|
|
50 = {
|
|
#Owwie
|
|
increase_wounds_effect = { REASON = fight }
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = laamp_decision_recruited_hood
|
|
value = flag:wounded
|
|
}
|
|
#Go back to the tavern main room
|
|
1037_hooded_effect = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
#The hooded figure
|
|
ep3_laamp_decision_event.1037 = {
|
|
type = character_event
|
|
window = visit_settlement_window
|
|
title = {
|
|
first_valid = {
|
|
#Noble
|
|
triggered_desc = {
|
|
trigger = { exists = scope:laamp_disguised_noble }
|
|
desc = ep3_laamp_decision_event.1037.t_noble
|
|
}
|
|
#Thief
|
|
desc = ep3_laamp_decision_event.1037.t
|
|
}
|
|
}
|
|
desc = {
|
|
#Hello, hooded person
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: Noble
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_hood
|
|
exists = scope:laamp_disguised_noble
|
|
scope:hood_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_noble_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_disguised_noble
|
|
scope:hood_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_noble_returned_02
|
|
}
|
|
}
|
|
#RETURN: Thief
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = no
|
|
exists = scope:been_to_hood
|
|
exists = scope:1037_neighboring_holding
|
|
scope:hood_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_returned_01
|
|
}
|
|
#Nomad variant
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
exists = scope:been_to_hood
|
|
exists = scope:1037_neighboring_holding
|
|
scope:hood_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_nomad_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = no
|
|
exists = scope:been_to_hood
|
|
scope:hood_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_returned_02
|
|
}
|
|
#Nomad variant
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
exists = scope:been_to_hood
|
|
scope:hood_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_nomad_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = no
|
|
scope:hood_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_returned_03
|
|
}
|
|
#Nomad variant
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
scope:hood_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_nomad_returned_03
|
|
}
|
|
}
|
|
#FIRST TIME: We've seen this thief before
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = no
|
|
exists = scope:laamp_recurring_thief
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_reused_thief
|
|
}
|
|
#Nomad variant
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
exists = scope:laamp_recurring_thief
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_nomad_reused_thief
|
|
}
|
|
#FIRST TIME: Hooded noble is in trouble!
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_disguised_noble
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_noble
|
|
}
|
|
#FIRST TIME: Hooded thief
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = no
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc
|
|
}
|
|
#Nomad variant
|
|
triggered_desc = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.desc_nomad
|
|
}
|
|
}
|
|
}
|
|
theme = landless_adventurer
|
|
override_sound = {
|
|
trigger = { exists = scope:laamp_disguised_noble }
|
|
reference = "event:/SFX/Events/Themes/sfx_event_theme_type_dynasty"
|
|
}
|
|
override_sound = { reference = "event:/SFX/Events/Themes/sfx_event_theme_type_intrigue" }
|
|
override_icon = {
|
|
trigger = {
|
|
NOT = { exists = scope:laamp_disguised_noble }
|
|
}
|
|
reference = "gfx/interface/icons/event_types/type_intrigue.dds"
|
|
}
|
|
override_background = {
|
|
trigger = { exists = scope:laamp_disguised_noble }
|
|
reference = tavern
|
|
}
|
|
override_background = {
|
|
trigger = { 1000_is_a_nomadic_holding_trigger = yes }
|
|
reference = ep3_relaxing_tent
|
|
}
|
|
override_background = { reference = bp1_wine_cellar }
|
|
left_portrait = {
|
|
trigger = { exists = scope:1037_left_character }
|
|
character = scope:1037_left_character
|
|
#Noble: Engaging the noble
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:laamp_disguised_noble
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
animation = disbelief
|
|
}
|
|
#Noble: They're fighting
|
|
triggered_animation = {
|
|
trigger = { exists = scope:laamp_disguised_noble }
|
|
animation = personality_coward
|
|
}
|
|
animation = interested
|
|
}
|
|
center_portrait = {
|
|
character = scope:1037_center_character
|
|
camera = camera_event_scheme_center_look_semi_right
|
|
#Noble: First time engaging the noble
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:laamp_disguised_noble
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
#_Seating tax_?!
|
|
animation = anger
|
|
}
|
|
#Noble: I am NOT paying
|
|
triggered_animation = {
|
|
trigger = { exists = scope:laamp_disguised_noble }
|
|
animation = disapproval
|
|
}
|
|
#Thief: Is... cleaning up blood?
|
|
triggered_animation = {
|
|
trigger = { scope:hood_loc_tracker ?= 1 }
|
|
animation = disbelief
|
|
}
|
|
#Thief: Don't like this
|
|
triggered_animation = {
|
|
trigger = { has_trait = honest }
|
|
animation = stress
|
|
}
|
|
#Thief
|
|
animation = personality_rational
|
|
}
|
|
right_portrait = {
|
|
character = scope:1037_right_character
|
|
camera = camera_event_scheme_far_right
|
|
#Noble: Ruffian: First time engaging the noble
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:laamp_disguised_noble
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
#Menacing
|
|
animation = menacing
|
|
}
|
|
#Noble: Ruffian: I am NOT paying
|
|
triggered_animation = {
|
|
trigger = { exists = scope:laamp_disguised_noble }
|
|
animation = threatening
|
|
}
|
|
#Thief: Just cleaned up some blood. 's fine.
|
|
triggered_animation = {
|
|
trigger = {
|
|
1000_is_a_nomadic_holding_trigger = yes
|
|
scope:hood_loc_tracker ?= 1
|
|
}
|
|
#Happy to see you
|
|
animation = spymaster
|
|
}
|
|
#Thief: First time engaging the thief
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_thief
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
#Happy to see you
|
|
animation = ecstasy
|
|
}
|
|
#Thief: Whadda ya want
|
|
triggered_animation = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_hood }
|
|
}
|
|
#A bit reserved
|
|
animation = disapproval
|
|
}
|
|
animation = chess_cocky
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Run this once: Re-save the portrait so the Hood is not the 1030_third_character
|
|
if = {
|
|
limit = { scope:1030_third_character ?= scope:laamp_hooded_figure }
|
|
#Shuffle Spouse over, if they exist
|
|
if = {
|
|
limit = { scope:1030_second_character ?= scope:laamp_spouse_material }
|
|
scope:laamp_spouse_material ?= { save_scope_as = 1030_third_character }
|
|
}
|
|
#Otherwise overwrite the portrait with ROOT to disappear the third one
|
|
else = { save_scope_as = 1030_third_character }
|
|
#Move ROOT into the second character slot
|
|
if = {
|
|
limit = {
|
|
NOT = { scope:1030_second_character ?= root }
|
|
}
|
|
save_scope_as = 1030_second_character
|
|
}
|
|
#Remember the thief
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_disguised_noble }
|
|
}
|
|
1010_remember_vendor_character_effect = { GUILD = thief CHARACTER = scope:laamp_hooded_figure }
|
|
}
|
|
}
|
|
#Tweak the portraits for the noble-fight
|
|
if = {
|
|
limit = {
|
|
exists = scope:laamp_disguised_noble
|
|
NOT = { scope:1037_left_character ?= root }
|
|
}
|
|
#Move ourselves to the left
|
|
save_scope_as = 1037_left_character
|
|
#Plonk the perilous noble in the middle
|
|
scope:laamp_disguised_noble = { save_scope_as = 1037_center_character }
|
|
#Shove a ruffian on the right
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
after_creation = { set_to_lowborn = yes }
|
|
save_scope_as = 1037_local_ruffian
|
|
}
|
|
scope:1037_local_ruffian = { save_scope_as = 1037_right_character }
|
|
}
|
|
#Otherwise set up the thief situation
|
|
else_if = {
|
|
limit = {
|
|
NOR = {
|
|
exists = scope:laamp_disguised_noble
|
|
exists = scope:1037_center_character
|
|
}
|
|
}
|
|
#We go in the middle
|
|
save_scope_as = 1037_center_character
|
|
#... and the thief on the right
|
|
scope:laamp_hooded_figure = { save_scope_as = 1037_right_character }
|
|
}
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = hood }
|
|
#Thief effects
|
|
if = {
|
|
limit = {
|
|
NOR = {
|
|
exists = scope:laamp_disguised_noble
|
|
exists = scope:1037_neighboring_holding
|
|
}
|
|
}
|
|
#Save a neighboring holding
|
|
location = {
|
|
random_neighboring_province = {
|
|
limit = {
|
|
is_sea_province = no
|
|
has_holding = yes
|
|
}
|
|
save_scope_as = 1037_neighboring_holding
|
|
}
|
|
}
|
|
#Figure their highest Gallowbait track
|
|
scope:laamp_hooded_figure = { 1037_determine_highest_gallowsbait_track_effect = yes }
|
|
}
|
|
#Noble effects
|
|
if = {
|
|
limit = { exists = scope:laamp_disguised_noble }
|
|
#Exactly how much does the hooded noble owe?
|
|
save_scope_value_as = {
|
|
name = noble_tab_value
|
|
value = {
|
|
value = scope:laamp_disguised_noble.medium_gold_value
|
|
#Go outside of the city to drink, eh
|
|
if = {
|
|
limit = {
|
|
scope:visiting_location = {
|
|
OR = {
|
|
has_holding_type = tribal_holding
|
|
has_holding_type = nomad_holding
|
|
has_holding_type = herder_holding
|
|
}
|
|
}
|
|
}
|
|
multiply = 0.5
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Noble: Pay their tab
|
|
option = {
|
|
name = ep3_laamp_decision_event.1037.a
|
|
trigger = { exists = scope:laamp_disguised_noble }
|
|
flavor = ep3_laamp_decision_event.1037.a.flavor
|
|
#Pay up
|
|
remove_short_term_gold = scope:noble_tab_value
|
|
#Woo rewards
|
|
1037_noble_reward_effect = yes
|
|
#Quite the molah
|
|
stress_impact = { greedy = minor_stress_impact_gain }
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1037_hooded_effect = yes
|
|
}
|
|
#Noble: Duel the villain
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { highest_skill_including_prowess = diplomacy }
|
|
desc = ep3_laamp_decision_event.1037.b_diplomacy
|
|
}
|
|
triggered_desc = {
|
|
trigger = { highest_skill_including_prowess = stewardship }
|
|
desc = ep3_laamp_decision_event.1037.b_stewardship
|
|
}
|
|
triggered_desc = {
|
|
trigger = { highest_skill_including_prowess = intrigue }
|
|
desc = ep3_laamp_decision_event.1037.b_intrigue
|
|
}
|
|
triggered_desc = {
|
|
trigger = { highest_skill_including_prowess = learning }
|
|
desc = ep3_laamp_decision_event.1037.b_learning
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
OR = {
|
|
highest_skill_including_prowess = martial
|
|
highest_skill_including_prowess = prowess
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.b_martial
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger = { exists = scope:laamp_disguised_noble }
|
|
flavor = ep3_laamp_decision_event.1037.b.flavor
|
|
#Duel effect
|
|
1037_highest_skill_duel_effect = yes
|
|
}
|
|
#Noble Triggered Option: We're pretty bad, bro
|
|
option = {
|
|
name = ep3_laamp_decision_event.1037.c
|
|
trigger = {
|
|
exists = scope:laamp_disguised_noble
|
|
has_trait = gallowsbait
|
|
OR = {
|
|
#Bandit
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = bandit
|
|
value > 50 #Half-way
|
|
}
|
|
#Trickster
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = trickster
|
|
value > 50 #Half-way
|
|
}
|
|
#Thief
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value > 50 #Half-way
|
|
}
|
|
#Poacher
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = poacher
|
|
value > 50 #Half-way
|
|
}
|
|
#Marauder
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = marauder
|
|
value > 50 #Half-way
|
|
}
|
|
}
|
|
}
|
|
flavor = ep3_laamp_decision_event.1037.c.flavor
|
|
if = {
|
|
limit = {
|
|
NOT = {
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = marauder
|
|
value = 100 #Max
|
|
}
|
|
}
|
|
}
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = marauder
|
|
value = small_lifestyle_random_xp_low
|
|
}
|
|
}
|
|
#Woo rewards
|
|
1037_noble_reward_effect = yes
|
|
#I just don't like being criminal, OK?
|
|
stress_impact = {
|
|
honest = minor_stress_impact_gain
|
|
}
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1037_hooded_effect = yes
|
|
}
|
|
#Thief: Recruit them (expensive)
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#I have an open position...
|
|
triggered_desc = {
|
|
trigger = { can_employ_court_position_type = master_thief_camp_officer }
|
|
desc = ep3_laamp_decision_event.1037.d_thief_position
|
|
}
|
|
#Standard reply
|
|
desc = ep3_laamp_decision_event.1037.d
|
|
}
|
|
}
|
|
}
|
|
#Replace it with the strongarm option if we have aced a Gallowsbait track
|
|
trigger = {
|
|
1037_maxed_gallowsbait_track_trigger = no
|
|
#Not available if it's the hooded noble
|
|
NOT = { exists = scope:laamp_disguised_noble }
|
|
}
|
|
#Half if you can offer them an attractive position
|
|
if = {
|
|
limit = { can_employ_court_position_type = master_thief_camp_officer } #If we, sometime in the future, easily can determine which track of a scaling trait is highest, let's gate it to Thief track
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_hooded_figure
|
|
gold = {
|
|
value = major_gold_laamps_value
|
|
divide = 2
|
|
}
|
|
}
|
|
#Hire them (effect in After)
|
|
1037_hire_thief_effect = yes
|
|
}
|
|
#Otherwise pay up
|
|
else = {
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_hooded_figure
|
|
gold = major_gold_laamps_value
|
|
}
|
|
#Have them join your camp
|
|
1033_add_courtier_with_opinion_effect = { TARGET = scope:laamp_hooded_figure }
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1037_hooded_effect = yes
|
|
}
|
|
}
|
|
#Thief: Intrigue Duel
|
|
option = {
|
|
name = ep3_laamp_decision_event.1037.e
|
|
#Replace it with the strongarm option if we have aced a Gallowsbait track
|
|
trigger = {
|
|
1037_maxed_gallowsbait_track_trigger = no
|
|
#Not available if it's the hooded noble
|
|
NOT = { exists = scope:laamp_disguised_noble }
|
|
}
|
|
duel = {
|
|
skill = intrigue
|
|
target = scope:laamp_hooded_figure
|
|
#Success: Hire 'em up
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 2
|
|
desc = ep3_laamp_decision_event.1037.e.success
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1037.e.success
|
|
left_icon = root
|
|
right_icon = scope:laamp_hooded_figure
|
|
#Yippee!
|
|
if = {
|
|
limit = { can_employ_court_position_type = master_thief_camp_officer }
|
|
#Hire them (effect in After)
|
|
1037_hire_thief_effect = yes
|
|
}
|
|
else = {
|
|
1033_add_courtier_with_opinion_effect = { TARGET = scope:laamp_hooded_figure }
|
|
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
save_scope_value_as = {
|
|
name = laamp_decision_recruited_hood
|
|
value = flag:yes
|
|
}
|
|
#Go back to tavern
|
|
hidden_effect = { 1031_return_to_tavern_effect = yes }
|
|
}
|
|
}
|
|
}
|
|
#Failure: Bye, now
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -20
|
|
}
|
|
desc = ep3_laamp_decision_event.1037.e.failure
|
|
send_interface_toast = {
|
|
type = event_toast_text_bad
|
|
title = ep3_laamp_decision_event.1037.e.failure
|
|
desc = ep3_laamp_decision_event.1037.e.failure.tt
|
|
left_icon = root
|
|
right_icon = scope:laamp_hooded_figure
|
|
#Oh well
|
|
custom_tooltip = ep3_laamp_decision_event.1037.e.failure.tt
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
1037_hooded_effect = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Thief: Teach me about Gallowsbait...
|
|
option = {
|
|
name = ep3_laamp_decision_event.1037.f
|
|
trigger = {
|
|
#Unless you are full in whatever the hooded figure offers
|
|
NOR = {
|
|
#Bandit
|
|
AND = {
|
|
has_trait = gallowsbait
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = bandit
|
|
value >= 100 #Max value
|
|
}
|
|
scope:1037_highest_gallowsbait_track ?= flag:bandit
|
|
}
|
|
#Trickster
|
|
AND = {
|
|
has_trait = gallowsbait
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = trickster
|
|
value >= 100 #Max value
|
|
}
|
|
scope:1037_highest_gallowsbait_track ?= flag:trickster
|
|
}
|
|
#Thief
|
|
AND = {
|
|
has_trait = gallowsbait
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value >= 100 #Max value
|
|
}
|
|
scope:1037_highest_gallowsbait_track ?= flag:thief
|
|
}
|
|
#Poacher
|
|
AND = {
|
|
has_trait = gallowsbait
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = poacher
|
|
value >= 100 #Max value
|
|
}
|
|
scope:1037_highest_gallowsbait_track ?= flag:poacher
|
|
}
|
|
#Marauder
|
|
AND = {
|
|
has_trait = gallowsbait
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = marauder
|
|
value >= 100 #Max value
|
|
}
|
|
scope:1037_highest_gallowsbait_track ?= flag:marauder
|
|
}
|
|
}
|
|
#Not available if it's the hooded noble
|
|
NOT = { exists = scope:laamp_disguised_noble }
|
|
}
|
|
#Get trait
|
|
if = {
|
|
limit = {
|
|
NOT = { has_trait = gallowsbait }
|
|
}
|
|
add_trait = gallowsbait
|
|
}
|
|
#Or get a significant amount of experience in trait
|
|
else = {
|
|
#Pay gold
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_hooded_figure
|
|
gold = medium_gold_laamps_value
|
|
}
|
|
if = {
|
|
limit = { scope:1037_highest_gallowsbait_track ?= flag:bandit }
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = bandit
|
|
value = trait_third_level_value
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:1037_highest_gallowsbait_track ?= flag:trickster }
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = trickster
|
|
value = trait_third_level_value
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:1037_highest_gallowsbait_track ?= flag:thief }
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value = trait_third_level_value
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:1037_highest_gallowsbait_track ?= flag:poacher }
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = poacher
|
|
value = trait_third_level_value
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { scope:1037_highest_gallowsbait_track ?= flag:marauder }
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = marauder
|
|
value = trait_third_level_value
|
|
}
|
|
}
|
|
}
|
|
#Some Intrigue lifestyle gain, coming up
|
|
add_intrigue_lifestyle_xp = medium_lifestyle_xp
|
|
#Stressful for honest characters
|
|
stress_impact = {
|
|
honest = minor_stress_impact_gain
|
|
}
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1037_hooded_effect = yes
|
|
}
|
|
#Thief Triggered Option: You have aced Gallowsbait in a track
|
|
option = {
|
|
name = ep3_laamp_decision_event.1037.g
|
|
trigger = {
|
|
has_trait = gallowsbait
|
|
1037_maxed_gallowsbait_track_trigger = yes
|
|
#Not available if it's the hooded noble
|
|
NOT = { exists = scope:laamp_disguised_noble }
|
|
}
|
|
1033_add_courtier_with_opinion_effect = { TARGET = scope:laamp_hooded_figure }
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1037_hooded_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
}
|
|
}
|
|
#I want to go back
|
|
option = {
|
|
name = ep3_laamp_decision_event.1037.h
|
|
#Set the variables and redirect us back to the tavern main room
|
|
1031_been_to_effect = { GUILD = hood }
|
|
}
|
|
after = {
|
|
if = {
|
|
limit = { scope:laamp_decision_recruited_hood ?= flag:yes }
|
|
#Appoint them
|
|
if = {
|
|
limit = {
|
|
can_appoint_char_to_court_position = {
|
|
CHAR = scope:laamp_hooded_figure
|
|
COURT_POS = master_thief_camp_officer
|
|
}
|
|
}
|
|
camp_officer_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = master_thief
|
|
CANDIDATE = scope:laamp_hooded_figure
|
|
}
|
|
}
|
|
}
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:hood }
|
|
}
|
|
}
|
|
|
|
|
|
######################################################################
|
|
# CHURCH GROUNDS
|
|
# ep3_laamp_decision_event.1040
|
|
######################################################################
|
|
|
|
#Set the correct variable to block off the Church option and remove the desc flavor variable
|
|
scripted_effect 1040_finished_churched_effect = {
|
|
remove_list_variable = {
|
|
name = list_of_options
|
|
target = flag:has_church_option
|
|
}
|
|
save_scope_as = laamp_decision_finished_church_option
|
|
}
|
|
|
|
#Nothing left for us to do
|
|
scripted_trigger 1040_done_with_church_trigger = {
|
|
exists = scope:laamp_decision_has_healed
|
|
exists = scope:laamp_decision_has_churched
|
|
exists = scope:laamp_decision_has_gardened
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_physician_recruit }
|
|
exists = scope:laamp_decision_recruited_physician
|
|
}
|
|
}
|
|
|
|
#One of your sick kids who wouldn't fit the visiting_partner trigger
|
|
scripted_trigger 1040_sickly_minor_trigger = {
|
|
location = root.location
|
|
is_courtier_of = root
|
|
is_travelling = no
|
|
is_imprisoned = no
|
|
1000_has_illness_or_wound_to_treat_trigger = yes
|
|
age < 10
|
|
}
|
|
|
|
|
|
#Church Holding: Visit the local church grounds
|
|
ep3_laamp_decision_event.1040 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1040.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#Intro
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: We've returned from Main Square
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:main_square
|
|
exists = scope:been_to_church_grounds
|
|
OR = {
|
|
scope:church_grounds_loc_tracker ?= 0
|
|
scope:church_grounds_loc_tracker ?= 2
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:main_square
|
|
scope:church_grounds_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_returned_02
|
|
}
|
|
}
|
|
#RETURN: We've returned from the Healer
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:healer }
|
|
desc = ep3_laamp_decision_event.1040.desc_returned_from_healer
|
|
}
|
|
#RETURN: We've returned from the Church
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:church }
|
|
desc = ep3_laamp_decision_event.1040.desc_returned_from_church
|
|
}
|
|
#RETURN: We've returned from the Garden
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:garden }
|
|
desc = ep3_laamp_decision_event.1040.desc_returned_from_garden
|
|
}
|
|
#RETURN: We've returned from the Physician
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:physician }
|
|
desc = ep3_laamp_decision_event.1040.desc_returned_from_physician
|
|
}
|
|
#FIRST TIME: First time here
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_church_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc
|
|
}
|
|
}
|
|
#Outro
|
|
first_valid = {
|
|
#FIRST TIME: For some reason, you have both Sickly Minor and Physician
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_physician_recruit
|
|
exists = scope:1040_sickly_minor
|
|
NOT = { exists = scope:been_to_church_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_physician_sickly_minor
|
|
}
|
|
#FIRST TIME: First time here, look at the physician
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_physician_recruit
|
|
NOT = { exists = scope:been_to_church_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_physician
|
|
}
|
|
#FIRST TIME: First time here, sickly minor
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:1040_sickly_minor
|
|
NOT = { exists = scope:been_to_church_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_sickly_minor
|
|
}
|
|
#FIRST TIME: First time here, curious partner
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
NOT = { exists = scope:been_to_church_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_partner
|
|
}
|
|
#FIRST TIME: First time here
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_church_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro
|
|
}
|
|
#RETURN: Partner - there is nothing left for us here
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
1040_done_with_church_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_return_partner_finished
|
|
}
|
|
#RETURN: There is nothing left for us here
|
|
triggered_desc = {
|
|
trigger = { 1040_done_with_church_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_return_finished
|
|
}
|
|
#RETURN: Physician did not move to their study, yet
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_physician_recruit
|
|
NOR = {
|
|
exists = scope:been_to_physician
|
|
exists = scope:laamp_decision_recruited_physician
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_physician_return
|
|
}
|
|
#RETURN: We've been here before
|
|
first_valid = {
|
|
#RETURN: Sickly minor is still at the healer's
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:1040_sickly_minor
|
|
var:return_from_location ?= flag:healer
|
|
scope:1040_sickly_minor = { has_any_illness = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_sickly_minor_return
|
|
}
|
|
random_valid = {
|
|
#RETURN: Partner flavor
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
exists = scope:been_to_church_grounds
|
|
scope:church_grounds_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_return_partner_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
scope:church_grounds_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_return_partner_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
scope:church_grounds_loc_tracker ?= 2
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_return_partner_03
|
|
}
|
|
#RETURN: Generics
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_church_grounds
|
|
scope:church_grounds_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_return_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:church_grounds_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_return_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:church_grounds_loc_tracker ?= 2 }
|
|
desc = ep3_laamp_decision_event.1040.desc_outro_return_03
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
theme = faith
|
|
#Get outta here already
|
|
override_effect_2d = {
|
|
trigger = {
|
|
1040_done_with_church_trigger = yes
|
|
scope:visiting_location = { is_drylands_or_desert_trigger = no }
|
|
}
|
|
reference = rain
|
|
}
|
|
override_background = {
|
|
trigger = {
|
|
location = {
|
|
culture = { has_graphical_east_asia_culture_group_trigger = no }
|
|
geographical_region = world_asia_southeast
|
|
}
|
|
}
|
|
reference = holy_site_generic
|
|
}
|
|
override_background = { reference = courtyard_location }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#If it's our (tired) visiting partner
|
|
triggered_animation = {
|
|
trigger = { 1040_done_with_church_trigger = yes }
|
|
animation = boredom
|
|
}
|
|
#Concerned about our kid
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:1040_sickly_minor
|
|
is_close_family_of = scope:1040_sickly_minor
|
|
OR = {
|
|
AND = {
|
|
var:return_from_location ?= flag:healer
|
|
scope:1040_sickly_minor = { has_any_illness = yes }
|
|
}
|
|
NOT = { exists = scope:been_to_church_grounds }
|
|
}
|
|
}
|
|
animation = stress
|
|
}
|
|
#Zealous dudette
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { has_trait = zealous }
|
|
}
|
|
animation = personality_zealous
|
|
}
|
|
#Cynical dude
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { has_trait = cynical }
|
|
}
|
|
animation = personality_cynical
|
|
}
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = personality_forgiving
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = personality_greedy
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = personality_callous
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = personality_irrational
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = personality_coward
|
|
}
|
|
animation = survey
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
#Concerned about our kid
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:1040_sickly_minor
|
|
OR = {
|
|
AND = {
|
|
var:return_from_location ?= flag:healer
|
|
scope:1040_sickly_minor = { has_any_illness = yes }
|
|
}
|
|
NOT = { exists = scope:been_to_church_grounds }
|
|
}
|
|
}
|
|
animation = worry
|
|
}
|
|
#Bah, humbug
|
|
triggered_animation = {
|
|
trigger = {
|
|
OR = {
|
|
has_trait = cynical
|
|
any_secret = { type = secret_non_believer }
|
|
}
|
|
}
|
|
animation = boredom
|
|
}
|
|
animation = personality_content
|
|
}
|
|
#Do we have a Physician?
|
|
right_portrait = {
|
|
trigger = {
|
|
exists = scope:1040_third_character
|
|
#If this is root, then that means we have talked to the Physician, so let's disappear the portrait
|
|
scope:1040_third_character != root
|
|
}
|
|
camera = camera_event_scheme_center_forward
|
|
character = scope:1040_third_character
|
|
#Otherwise it's the Physician
|
|
animation = personality_zealous
|
|
}
|
|
#Shove the Physician as long as we've visited them but haven't actioned them
|
|
lower_left_portrait = {
|
|
trigger = {
|
|
exists = scope:1040_fourth_character
|
|
#Unless we've actioned them and overwritten them with ROOT
|
|
scope:1040_fourth_character != root
|
|
}
|
|
character = scope:1040_fourth_character
|
|
}
|
|
#Show the kid here if not actioned
|
|
lower_center_portrait = {
|
|
trigger = {
|
|
exists = scope:1040_fifth_character
|
|
scope:1040_sickly_minor = { has_any_illness = yes }
|
|
scope:1040_fifth_character != root
|
|
}
|
|
character = scope:1040_fifth_character
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Set up the ancillary portraits to remind the player of the characters
|
|
if = {
|
|
#Physician exists
|
|
limit = {
|
|
#We've been to them at least once
|
|
exists = scope:been_to_physician
|
|
#We're not done with them yet
|
|
AND = {
|
|
exists = scope:laamp_physician_recruit
|
|
NOT = { exists = scope:laamp_decision_recruited_physician }
|
|
}
|
|
#This isn't already the state
|
|
NAND = {
|
|
exists = scope:1040_fourth_character
|
|
scope:1040_fourth_character ?= scope:laamp_physician_recruit
|
|
}
|
|
}
|
|
scope:laamp_physician_recruit = { save_scope_as = 1040_fourth_character }
|
|
}
|
|
#Clear out the ancillary portrait(s)
|
|
if = {
|
|
limit = {
|
|
exists = scope:1040_fourth_character
|
|
scope:laamp_physician_recruit ?= scope:1040_fourth_character
|
|
exists = scope:laamp_decision_recruited_physician
|
|
}
|
|
#Overwrite with ROOT to hide that portrait
|
|
save_scope_as = 1040_fourth_character
|
|
}
|
|
if = {
|
|
limit = {
|
|
exists = scope:1040_fifth_character
|
|
scope:1040_sickly_minor ?= scope:1040_fifth_character
|
|
exists = scope:laamp_decision_has_healed
|
|
}
|
|
#Overwrite with ROOT to hide that portrait
|
|
save_scope_as = 1040_fifth_character
|
|
}
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_hub_loc_tracker_scope_effect = { HUB = church_grounds }
|
|
#Do we have a sick minor we snuck along?
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1040_sickly_minor }
|
|
any_close_family_member = { 1040_sickly_minor_trigger = yes }
|
|
}
|
|
random_close_family_member = {
|
|
limit = { 1040_sickly_minor_trigger = yes }
|
|
save_scope_as = 1040_sickly_minor
|
|
save_scope_as = 1040_fifth_character
|
|
}
|
|
}
|
|
#Rare: Spawn a spectacular Physician
|
|
if = {
|
|
limit = {
|
|
NOT = { has_variable = laamp_decision_1000_checked_for_physician }
|
|
}
|
|
random_list = {
|
|
80 = {
|
|
#No Physician
|
|
}
|
|
20 = {
|
|
#Has this person been our physician in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_physician_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
}
|
|
save_scope_as = laamp_physician_recruit
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_physician
|
|
}
|
|
#Otherwise find a physician in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_physician_recruit }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
has_trait = devoted
|
|
learning >= 15
|
|
OR = {
|
|
has_trait = lifestyle_physician
|
|
has_trait = lifestyle_herbalist
|
|
has_trait = lifestyle_mystic
|
|
}
|
|
}
|
|
save_scope_as = laamp_physician_recruit
|
|
}
|
|
}
|
|
#Otherwise create a physician
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_physician_recruit }
|
|
}
|
|
#Create physician to stuff in pool
|
|
create_character = {
|
|
template = bp1_yearly_2021_learning_person_template
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
learning = { decent_skill_rating high_skill_rating }
|
|
save_scope_as = laamp_physician_recruit
|
|
}
|
|
scope:laamp_physician_recruit ?= {
|
|
#Chance to add a malus trait to this spectatular being
|
|
if = {
|
|
limit = {
|
|
NOR = {
|
|
has_trait = possessed_1
|
|
has_trait = lunatic_1
|
|
has_trait = depressed_1
|
|
has_trait = drunkard
|
|
has_trait = hashishiyah
|
|
has_trait = irritable
|
|
any_secret = { type = secret_witch }
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
random = {
|
|
chance = 20
|
|
random_list = {
|
|
10 = { add_trait = possessed_1 }
|
|
10 = { add_trait = lunatic_1 }
|
|
10 = { add_trait = depressed_1 }
|
|
10 = { add_trait = drunkard }
|
|
10 = { add_trait = hashishiyah }
|
|
10 = { add_trait = irritable }
|
|
10 = {
|
|
add_secret = { type = secret_witch }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { has_trait = devoted }
|
|
}
|
|
add_trait = devoted
|
|
}
|
|
}
|
|
}
|
|
scope:laamp_physician_recruit = { save_scope_as = 1040_third_character }
|
|
#Remember the physician
|
|
1010_remember_vendor_character_effect = { GUILD = physician CHARACTER = scope:laamp_physician_recruit }
|
|
}
|
|
}
|
|
#No decision-scumming
|
|
set_variable = {
|
|
name = laamp_decision_1000_checked_for_physician
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
#Make sure we remember the church isn't available because you were a thieving heathen
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_decision_has_churched }
|
|
has_variable = 1040_caught_stealing
|
|
}
|
|
save_scope_as = laamp_decision_has_churched
|
|
}
|
|
}
|
|
#Attempt to improve your health // OR // Attempt to cure (curable) illness
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Sickly child is still waiting at the healer's
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_healer
|
|
exists = scope:1040_sickly_minor
|
|
NOT = { exists = scope:laamp_decision_has_healed }
|
|
}
|
|
desc = ep3_laamp_decision_event.1040.a_second_sickly_minor
|
|
}
|
|
#Return to healer
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_healer }
|
|
desc = ep3_laamp_decision_event.1040.a_second
|
|
}
|
|
#We are meeting a sickly child at the healer's
|
|
triggered_desc = {
|
|
trigger = { exists = scope:1040_sickly_minor }
|
|
desc = ep3_laamp_decision_event.1040.a_sickly_minor
|
|
}
|
|
#First time going to healer
|
|
desc = ep3_laamp_decision_event.1040.a
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1040.a.cooldown.tt
|
|
NOT = { exists = scope:laamp_decision_has_healed }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = visit_healer
|
|
custom_tooltip = ep3_laamp_decision_event.1040.a.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = church_grounds }
|
|
#Go to the Healer screen
|
|
trigger_event = ep3_laamp_decision_event.1041
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Visit church
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to church
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_church }
|
|
desc = ep3_laamp_decision_event.1040.b_second
|
|
}
|
|
#First time at church
|
|
desc = ep3_laamp_decision_event.1040.b
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#You were recently caught stealing from the church
|
|
trigger_if = {
|
|
limit = { has_variable = 1040_caught_stealing }
|
|
custom_tooltip = {
|
|
text = caught_stealing.tt
|
|
always = no
|
|
}
|
|
}
|
|
trigger_else = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1040.b.cooldown.tt
|
|
NOT = { exists = scope:laamp_decision_has_churched }
|
|
}
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = visit_church
|
|
custom_tooltip = ep3_laamp_decision_event.1040.b.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = church_grounds }
|
|
#Go to the Church screen
|
|
trigger_event = ep3_laamp_decision_event.1043
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
has_trait = zealous
|
|
factor = 2
|
|
}
|
|
modifier = {
|
|
has_trait = pilgrim
|
|
factor = 2
|
|
}
|
|
}
|
|
}
|
|
#Convert to local faith // OR // Contemplate faith
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Convert to faith
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_garden }
|
|
desc = ep3_laamp_decision_event.1040.c_second
|
|
}
|
|
#Contemplate faith
|
|
desc = ep3_laamp_decision_event.1040.c
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1040.c.cooldown.tt
|
|
NOT = { exists = scope:laamp_decision_has_gardened }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = visit_garden
|
|
custom_tooltip = ep3_laamp_decision_event.1040.c.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = church_grounds }
|
|
#Go to the Garden screen
|
|
trigger_event = ep3_laamp_decision_event.1045
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
stress_level >= 2
|
|
add = 400
|
|
}
|
|
}
|
|
}
|
|
#Rare Option: Hire cheaper, skilled, Physician
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to talk to physician
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_physician }
|
|
desc = ep3_laamp_decision_event.1040.d_second
|
|
}
|
|
#First time talking to physician
|
|
desc = ep3_laamp_decision_event.1040.d
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
exists = scope:laamp_physician_recruit
|
|
NOT = { exists = scope:laamp_decision_recruited_physician }
|
|
}
|
|
reason = recruit_physician
|
|
custom_tooltip = ep3_laamp_decision_event.1040.d.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = church_grounds }
|
|
#For the Physician screen
|
|
trigger_event = ep3_laamp_decision_event.1047
|
|
ai_chance = {
|
|
base = 1000 #Just do it
|
|
}
|
|
}
|
|
#I want to do something else
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Nothing left to do
|
|
triggered_desc = {
|
|
trigger = { 1040_done_with_church_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1040.e_second
|
|
}
|
|
#Back to main square
|
|
desc = ep3_laamp_decision_event.1040.e
|
|
}
|
|
}
|
|
}
|
|
#Have we done everything? Are we closing off the option?
|
|
if = {
|
|
limit = { 1040_done_with_church_trigger = yes }
|
|
#Clean up unnecessary variables and close off the option
|
|
1040_finished_churched_effect = yes
|
|
}
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = church_grounds }
|
|
#Go back to the main event
|
|
1000_return_to_main_effect = yes
|
|
ai_chance = { base = 100 }
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:church_grounds }
|
|
}
|
|
}
|
|
|
|
|
|
#Pretty straight forward
|
|
scripted_effect 1041_chance_to_buff_item_rarity_effect = {
|
|
random_list = {
|
|
20 = {
|
|
trigger = {
|
|
exists = scope:laamp_healer_character
|
|
$VENDOR$ = scope:laamp_healer_character
|
|
}
|
|
set_artifact_rarity_famed = yes
|
|
}
|
|
40 = {
|
|
modifier = {
|
|
exists = scope:laamp_jeweler_craftsman
|
|
$VENDOR$ = scope:laamp_jeweler_craftsman
|
|
factor = 2
|
|
}
|
|
set_artifact_rarity_masterwork = yes
|
|
}
|
|
80 = {
|
|
set_artifact_rarity_common = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
#Reused effect to set the value variables
|
|
scripted_effect 1041_set_item_value_effect = {
|
|
#Weapon cost
|
|
if = {
|
|
limit = { has_variable = 1061_laamp_decision_weapon }
|
|
if = {
|
|
limit = { rarity = masterwork }
|
|
set_variable = {
|
|
name = 1061_weapon_value
|
|
value = {
|
|
value = root.major_gold_value
|
|
multiply = { 1 1.5 }
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
set_variable = {
|
|
name = 1061_weapon_value
|
|
value = {
|
|
value = root.medium_gold_value
|
|
multiply = { 0.75 1.25 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Armor cost
|
|
if = {
|
|
limit = { has_variable = 1063_laamp_decision_armor }
|
|
if = {
|
|
limit = { rarity = masterwork }
|
|
set_variable = {
|
|
name = 1063_armor_value
|
|
value = {
|
|
value = root.major_gold_value
|
|
multiply = { 1.5 2 }
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
set_variable = {
|
|
name = 1063_armor_value
|
|
value = {
|
|
value = root.medium_gold_value
|
|
multiply = { 1.25 1.75 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Accessory cost
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
has_variable = 1041_laamp_decision_health_artifact
|
|
has_variable = 1065_laamp_decision_accessory
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
rarity = famed
|
|
has_variable = 1041_laamp_decision_health_artifact
|
|
}
|
|
set_variable = {
|
|
name = 1065_accessory_value
|
|
value = {
|
|
value = root.massive_gold_value
|
|
multiply = { 1 1.5 }
|
|
}
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { rarity = masterwork }
|
|
set_variable = {
|
|
name = 1065_accessory_value
|
|
value = {
|
|
value = root.major_gold_value
|
|
multiply = { 1.25 1.75 }
|
|
}
|
|
}
|
|
}
|
|
else = {
|
|
set_variable = {
|
|
name = 1065_accessory_value
|
|
value = {
|
|
value = root.medium_gold_value
|
|
multiply = { 1 1.5 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#We return to the church grounds event to peruse other options
|
|
scripted_effect 1041_return_to_church_grounds_effect = {
|
|
custom_tooltip = ep3_laamp_decision_event.1041.return.tt
|
|
trigger_event = ep3_laamp_decision_event.1040
|
|
}
|
|
|
|
#Set the correct variable to block off the Healer option and remove the desc flavor variable
|
|
scripted_effect 1041_healed_effect = {
|
|
scope:1041_health_artifact = { remove_variable ?= 1065_accessory_value }
|
|
remove_variable ?= 1041_healer_aptitude
|
|
remove_variable ?= 1041_partner_healer_aptitude
|
|
save_scope_as = laamp_decision_has_healed
|
|
#Go back to church grounds
|
|
hidden_effect = { 1041_return_to_church_grounds_effect = yes }
|
|
}
|
|
|
|
#Determine the variable effect based on their aptitude, one for the healer and one for the physician-partner
|
|
scripted_effect 1041_calculate_aptitude_modifier_effect = {
|
|
if = {
|
|
limit = {
|
|
$CHARACTER$ = {
|
|
aptitude = {
|
|
court_position = court_physician_court_position
|
|
value >= 1
|
|
}
|
|
}
|
|
}
|
|
change_variable = {
|
|
name = $VARIABLE$
|
|
add = 1
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
$CHARACTER$ = {
|
|
aptitude = {
|
|
court_position = court_physician_court_position
|
|
value >= 2
|
|
}
|
|
}
|
|
}
|
|
change_variable = {
|
|
name = $VARIABLE$
|
|
add = 1
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
$CHARACTER$ = {
|
|
aptitude = {
|
|
court_position = court_physician_court_position
|
|
value >= 3
|
|
}
|
|
}
|
|
}
|
|
change_variable = {
|
|
name = $VARIABLE$
|
|
add = 1
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
$CHARACTER$ = {
|
|
aptitude = {
|
|
court_position = court_physician_court_position
|
|
value >= 4
|
|
}
|
|
}
|
|
}
|
|
change_variable = {
|
|
name = $VARIABLE$
|
|
add = 1
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
$CHARACTER$ = {
|
|
aptitude = {
|
|
court_position = court_physician_court_position
|
|
value >= 5
|
|
}
|
|
}
|
|
}
|
|
change_variable = {
|
|
name = $VARIABLE$
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
#The actual removal-of-illness
|
|
scripted_effect 1041_remove_illness_or_wound_effect = {
|
|
random_list = {
|
|
100 = {
|
|
trigger = { has_character_modifier = infected_wound_modifier }
|
|
remove_character_modifier = infected_wound_modifier
|
|
}
|
|
100 = {
|
|
trigger = { has_character_modifier = gangrene_modifier }
|
|
remove_character_modifier = gangrene_modifier
|
|
}
|
|
100 = {
|
|
trigger = { has_trait = wounded_1 }
|
|
remove_trait = wounded_1
|
|
}
|
|
100 = {
|
|
trigger = { has_trait = wounded_2 }
|
|
remove_trait = wounded_2
|
|
}
|
|
100 = {
|
|
trigger = { has_trait = wounded_3 }
|
|
remove_trait = wounded_3
|
|
}
|
|
100 = {
|
|
trigger = { has_trait = ill }
|
|
remove_trait = ill
|
|
}
|
|
100 = {
|
|
trigger = { has_trait = pneumonic }
|
|
remove_trait = pneumonic
|
|
}
|
|
50 = {
|
|
trigger = { has_trait = typhus }
|
|
remove_trait = typhus
|
|
}
|
|
50 = {
|
|
trigger = { has_trait = gout_ridden }
|
|
remove_trait = gout_ridden
|
|
}
|
|
50 = {
|
|
trigger = { has_trait = consumption }
|
|
remove_trait = consumption
|
|
}
|
|
50 = {
|
|
trigger = { has_trait = smallpox }
|
|
remove_trait = smallpox
|
|
}
|
|
50 = {
|
|
trigger = { has_trait = great_pox }
|
|
remove_trait = great_pox
|
|
}
|
|
25 = {
|
|
trigger = { has_trait = cancer }
|
|
remove_trait = cancer
|
|
}
|
|
25 = {
|
|
trigger = { has_trait = bubonic_plague }
|
|
remove_trait = bubonic_plague
|
|
}
|
|
25 = {
|
|
trigger = { has_trait = leper }
|
|
remove_trait = leper
|
|
}
|
|
}
|
|
}
|
|
|
|
#Do you feel lucky?
|
|
scripted_effect 1041_treatment_roll_effect = {
|
|
random_list = {
|
|
#Failure
|
|
70 = {
|
|
#Some weighting based on the aptitude of the performing party (healer/physician-partner)
|
|
modifier = {
|
|
exists = $VARIABLE$
|
|
$VARIABLE$ >= 5
|
|
add = -15
|
|
}
|
|
modifier = {
|
|
exists = $VARIABLE$
|
|
$VARIABLE$ >= 4
|
|
add = -15
|
|
}
|
|
modifier = {
|
|
exists = $VARIABLE$
|
|
$VARIABLE$ >= 3
|
|
add = -15
|
|
}
|
|
#Notify us about the outcome
|
|
if = {
|
|
limit = {
|
|
NOT = { $TARGET_CHARACTER$ = root } #If our partner gets treated
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_text_bad
|
|
title = ep3_laamp_decision_event.1041.treatment_failure.t
|
|
desc = ep3_laamp_decision_event.1041.treatment_failure.desc
|
|
left_icon = root
|
|
right_icon = $TARGET_CHARACTER$
|
|
}
|
|
}
|
|
else = {
|
|
send_interface_toast = {
|
|
type = event_toast_text_bad #If we get treated
|
|
title = ep3_laamp_decision_event.1041.treatment_failure.t
|
|
desc = ep3_laamp_decision_event.1041.treatment_failure.desc
|
|
left_icon = root
|
|
}
|
|
}
|
|
#Nothing happens
|
|
}
|
|
#Success
|
|
30 = {
|
|
modifier = {
|
|
NOT = { $TARGET_CHARACTER$ = root } #The scoped character is either visiting_partner or sickly_minor
|
|
$TARGET_CHARACTER$ = {
|
|
age < 20
|
|
is_child_of = root
|
|
}
|
|
add = 30
|
|
}
|
|
modifier = {
|
|
NOT = { $TARGET_CHARACTER$ = root } #... a cold-hearted person can tweak this back later on when people complain about too low child mortality rates
|
|
$TARGET_CHARACTER$ = {
|
|
age < 10
|
|
is_child_of = root
|
|
}
|
|
add = 30
|
|
}
|
|
#If our partner gets treated
|
|
if = {
|
|
limit = {
|
|
NOT = { $TARGET_CHARACTER$ = root } #The scoped character is either visiting_partner or sickly_minor
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = ep3_laamp_decision_event.1041.treatment_success.t
|
|
left_icon = root
|
|
right_icon = $TARGET_CHARACTER$
|
|
$TARGET_CHARACTER$ = { 1041_remove_illness_or_wound_effect = yes }
|
|
}
|
|
}
|
|
#If we get treated, automatic toast
|
|
else = { 1041_remove_illness_or_wound_effect = yes }
|
|
}
|
|
}
|
|
}
|
|
|
|
#Someone learn-y or mystic
|
|
scripted_trigger 1041_physician_partner_trigger = {
|
|
OR = {
|
|
learning >= 15
|
|
has_trait = lifestyle_physician
|
|
has_trait = lifestyle_mystic
|
|
has_trait = witch
|
|
}
|
|
}
|
|
|
|
|
|
#Visit Healer
|
|
ep3_laamp_decision_event.1041 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1041.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#What are they up to?
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: A sick minor... is still here
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:1040_sickly_minor
|
|
exists = scope:been_to_healer
|
|
}
|
|
desc = ep3_laamp_decision_event.1041.desc_returned_sickly_minor
|
|
}
|
|
#RETURN: Physician partner wants a stab at it
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_partner ?= {
|
|
1041_physician_partner_trigger = yes
|
|
1000_has_illness_or_wound_to_treat_trigger = no
|
|
}
|
|
exists = scope:been_to_healer
|
|
}
|
|
desc = ep3_laamp_decision_event.1041.desc_returned_physician_partner
|
|
}
|
|
#RETURN: Generics
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_healer
|
|
scope:healer_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1041.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:healer_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1041.desc_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME: A sick minor was snuck along
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:1040_sickly_minor
|
|
NOT = { exists = scope:been_to_healer }
|
|
}
|
|
desc = ep3_laamp_decision_event.1041.desc_sickly_minor
|
|
}
|
|
#FIRST TIME: Our partner is actually pretty physician-y
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_partner ?= {
|
|
1041_physician_partner_trigger = yes
|
|
1000_has_illness_or_wound_to_treat_trigger = no
|
|
}
|
|
NOT = { exists = scope:been_to_healer }
|
|
}
|
|
desc = ep3_laamp_decision_event.1041.desc_physician_partner
|
|
}
|
|
#FIRST TIME: We've seen this healer before
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_healer_character
|
|
NOT = { exists = scope:been_to_healer }
|
|
}
|
|
desc = ep3_laamp_decision_event.1041.desc_reused_healer
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_healer }
|
|
}
|
|
desc = ep3_laamp_decision_event.1041.desc
|
|
}
|
|
}
|
|
#Describe the artifact
|
|
first_valid = {
|
|
#RETURN: Horn artifact
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_healer
|
|
scope:1041_health_artifact = { has_variable = health_horn }
|
|
}
|
|
desc = ep3_laamp_decision_event.1041.desc_outro_return_horn
|
|
}
|
|
#FIRST TIME: Horn artifact
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_healer }
|
|
scope:1041_health_artifact = { has_variable = health_horn }
|
|
}
|
|
desc = ep3_laamp_decision_event.1041.desc_outro_horn
|
|
}
|
|
#RETURN: Other artifacts
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_healer
|
|
scope:1041_health_artifact = {
|
|
NOT = { has_variable = health_horn }
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1041.desc_outro_return_artifact
|
|
}
|
|
#FIRST TIME: Other artifacts
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_healer }
|
|
scope:1041_health_artifact = {
|
|
NOT = { has_variable = health_horn }
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1041.desc_outro_artifact
|
|
}
|
|
}
|
|
}
|
|
theme = medicine
|
|
#Someone close to you is sick
|
|
override_sound = {
|
|
trigger = {
|
|
OR = {
|
|
scope:visiting_partner ?= { 1000_has_illness_or_wound_to_treat_trigger = yes }
|
|
exists = scope:1040_sickly_minor
|
|
}
|
|
}
|
|
reference = "event:/MUSIC/Cues/Events/Illness/mx_cue_illness"
|
|
}
|
|
override_sound = { reference = "event:/SFX/Events/Themes/sfx_event_theme_type_medicine" }
|
|
override_background = { reference = physicians_study }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#If it's our (tired) visiting partner
|
|
triggered_animation = {
|
|
trigger = { 1040_done_with_church_trigger = yes }
|
|
animation = boredom
|
|
}
|
|
#Concerned about our kid
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:1040_sickly_minor
|
|
is_close_family_of = scope:1040_sickly_minor
|
|
}
|
|
animation = stress
|
|
}
|
|
#Sick dudette
|
|
triggered_animation = {
|
|
trigger = { 1000_has_illness_or_wound_to_treat_trigger = yes }
|
|
animation = pain
|
|
}
|
|
#Doctor dude
|
|
triggered_animation = {
|
|
trigger = { 1041_physician_partner_trigger = yes }
|
|
animation = ecstasy
|
|
}
|
|
animation = thinking
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = { exists = scope:1040_sickly_minor }
|
|
animation = worry
|
|
}
|
|
animation = personality_content
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_healer_character
|
|
camera = camera_event_scheme_far_right
|
|
animation = physician
|
|
}
|
|
#Do we have a sick minor?
|
|
lower_left_portrait = {
|
|
trigger = { exists = scope:1040_sickly_minor }
|
|
character = scope:1040_sickly_minor
|
|
}
|
|
artifact = {
|
|
target = scope:1041_health_artifact
|
|
position = lower_right_portrait
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = healer }
|
|
#Find our healer
|
|
if = {
|
|
#Do we already have a healer?
|
|
limit = {
|
|
NOT = { exists = scope:laamp_healer_character }
|
|
}
|
|
#Has this person been our healer in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_healer_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
}
|
|
save_scope_as = laamp_healer_character
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_healer_character
|
|
}
|
|
#Otherwise find a healer in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_healer_character }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
has_trait = lifestyle_physician
|
|
}
|
|
save_scope_as = laamp_healer_character
|
|
}
|
|
}
|
|
#Otherwise create a healer
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_healer_character }
|
|
}
|
|
#Create healer to stuff in pool
|
|
create_character = {
|
|
template = physician_high_character_template
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_healer_character
|
|
}
|
|
}
|
|
#Remember the healer
|
|
1010_remember_vendor_character_effect = { GUILD = healer CHARACTER = scope:laamp_healer_character }
|
|
#Find our healing artifact
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1041_health_artifact }
|
|
}
|
|
scope:laamp_healer_character ?= {
|
|
#Have we created healing artifacts recently, which we can pull?
|
|
if = {
|
|
limit = {
|
|
any_character_artifact ?= { has_variable = 1041_laamp_decision_health_artifact }
|
|
}
|
|
random_character_artifact = {
|
|
limit = { has_variable = 1041_laamp_decision_health_artifact }
|
|
save_scope_as = 1041_health_artifact
|
|
}
|
|
}
|
|
#If we don't have any old healing artifacts; generate a new one!
|
|
hidden_effect_new_object = { #HAZMAT SUIT OF ERROR SUPRESSION
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1041_health_artifact }
|
|
}
|
|
#Set rarity, maybe
|
|
1041_chance_to_buff_item_rarity_effect = { VENDOR = scope:laamp_healer_character }
|
|
#Generate healing artifact
|
|
generate_health_trinket_effect = yes
|
|
#Finalization
|
|
scope:newly_created_health_artifact ?= {
|
|
set_variable = {
|
|
name = 1041_laamp_decision_health_artifact
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
#Belt & suspenders
|
|
set_variable = 1041_laamp_decision_health_artifact
|
|
#Don't need no notification about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
save_scope_as = 1041_health_artifact
|
|
}
|
|
}
|
|
#Set the value of the health artifact
|
|
scope:1041_health_artifact = { 1041_set_item_value_effect = yes }
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
exists = scope:laamp_healer_character
|
|
NOT = { has_variable = 1041_healer_aptitude }
|
|
}
|
|
#Calculate the healer's aptitude
|
|
set_variable = {
|
|
name = 1041_healer_aptitude
|
|
value = 0
|
|
}
|
|
1041_calculate_aptitude_modifier_effect = { CHARACTER = scope:laamp_healer_character VARIABLE = 1041_healer_aptitude }
|
|
#Calculate our physician friend's aptitude
|
|
if = {
|
|
limit = {
|
|
scope:visiting_partner ?= { 1041_physician_partner_trigger = yes }
|
|
}
|
|
set_variable = {
|
|
name = 1041_partner_healer_aptitude
|
|
value = 0
|
|
}
|
|
1041_calculate_aptitude_modifier_effect = { CHARACTER = scope:visiting_partner VARIABLE = 1041_partner_healer_aptitude }
|
|
}
|
|
}
|
|
}
|
|
#For the background
|
|
scope:laamp_healer_character = {
|
|
if = {
|
|
limit = {
|
|
is_ruler = no
|
|
exists = court_owner
|
|
}
|
|
court_owner = { save_scope_as = bg_override_char }
|
|
}
|
|
else = {
|
|
save_scope_as = bg_override_char
|
|
}
|
|
}
|
|
}
|
|
#Attempt to improve your health // OR // Attempt to cure (curable) illness
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#We're ill
|
|
triggered_desc = {
|
|
trigger = { 1000_has_illness_or_wound_to_treat_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1041.a_ill
|
|
}
|
|
#Just a standard procedure
|
|
desc = ep3_laamp_decision_event.1041.a
|
|
}
|
|
}
|
|
}
|
|
#We're ill, roll for some treatment
|
|
if = {
|
|
limit = { 1000_has_illness_or_wound_to_treat_trigger = yes }
|
|
1041_treatment_roll_effect = { TARGET_CHARACTER = root VARIABLE = var:1041_healer_aptitude }
|
|
}
|
|
#Standard procedure health modifier
|
|
else = {
|
|
if = {
|
|
limit = { has_character_modifier = laamp_decision_church_health_modifier }
|
|
hidden_effect = { remove_character_modifier = laamp_decision_church_health_modifier }
|
|
}
|
|
add_character_modifier = {
|
|
modifier = laamp_decision_church_health_modifier
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_healer_character
|
|
gold = minor_gold_value
|
|
}
|
|
#Set the variables and redirect us back to the Church Grounds
|
|
1041_healed_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < minor_gold_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
1000_has_illness_or_wound_to_treat_trigger = no
|
|
has_character_modifier = laamp_decision_church_health_modifier
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Buy the health artifact
|
|
option = {
|
|
name = ep3_laamp_decision_event.1041.b
|
|
scope:1041_health_artifact = {
|
|
root = {
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_healer_character
|
|
gold = prev.var:1065_accessory_value
|
|
}
|
|
}
|
|
set_owner = root
|
|
}
|
|
#Set the variables and redirect us back to the Church Grounds
|
|
1041_healed_effect = yes
|
|
ai_chance = {
|
|
base = 50
|
|
modifier = {
|
|
short_term_gold < scope:1041_health_artifact.var:1065_accessory_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Triggered Option: Your partner wants to try their hand at the procedure
|
|
option = {
|
|
name = ep3_laamp_decision_event.1041.c
|
|
trigger = {
|
|
scope:visiting_partner ?= {
|
|
1041_physician_partner_trigger = yes
|
|
1000_has_illness_or_wound_to_treat_trigger = no
|
|
}
|
|
NOT = { exists = scope:1040_sickly_minor }
|
|
}
|
|
flavor = ep3_laamp_decision_event.1041.c.flavor
|
|
#We're ill, roll for some treatment
|
|
if = {
|
|
limit = { 1000_has_illness_or_wound_to_treat_trigger = yes }
|
|
1041_treatment_roll_effect = { TARGET_CHARACTER = root VARIABLE = var:1041_partner_healer_aptitude }
|
|
}
|
|
#Standard procedure health modifier
|
|
else = {
|
|
if = {
|
|
limit = { has_character_modifier = laamp_decision_church_health_partner_modifier }
|
|
hidden_effect = { remove_character_modifier = laamp_decision_church_health_partner_modifier }
|
|
}
|
|
add_character_modifier = {
|
|
modifier = laamp_decision_church_health_partner_modifier
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_allowed_to_treat
|
|
CHARACTER = scope:visiting_partner
|
|
OPINION = default_friend_opinion
|
|
}
|
|
scope:visiting_partner = {
|
|
if = {
|
|
limit = {
|
|
NOT = { has_trait = lifestyle_physician }
|
|
}
|
|
add_trait = lifestyle_physician
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_trait = lifestyle_physician
|
|
has_trait_xp = {
|
|
trait = lifestyle_physician
|
|
value < 100
|
|
}
|
|
}
|
|
add_trait_xp = {
|
|
trait = lifestyle_physician
|
|
value = 40
|
|
}
|
|
}
|
|
else = {
|
|
add_learning_skill = 1
|
|
}
|
|
}
|
|
#Set the variables and redirect us back to the Church Grounds
|
|
1041_healed_effect = yes
|
|
ai_chance = { base = 200 }
|
|
}
|
|
#Triggered Option: Your partner or sickly minor is ill
|
|
option = {
|
|
name = {
|
|
text = ep3_laamp_decision_event.1041.d
|
|
trigger = { exists = scope:1040_sickly_minor }
|
|
}
|
|
name = {
|
|
text = ep3_laamp_decision_event.1041.d.partner
|
|
trigger = { exists = scope:visiting_partner }
|
|
}
|
|
trigger = {
|
|
OR = {
|
|
scope:visiting_partner ?= { 1000_has_illness_or_wound_to_treat_trigger = yes }
|
|
exists = scope:1040_sickly_minor
|
|
}
|
|
}
|
|
if = {
|
|
limit = { exists = scope:1040_sickly_minor }
|
|
1041_treatment_roll_effect = { TARGET_CHARACTER = scope:1040_sickly_minor VARIABLE = var:1041_healer_aptitude }
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_got_treatment
|
|
CHARACTER = scope:1040_sickly_minor
|
|
OPINION = default_friend_opinion
|
|
}
|
|
}
|
|
else = {
|
|
1041_treatment_roll_effect = { TARGET_CHARACTER = scope:visiting_partner VARIABLE = var:1041_healer_aptitude }
|
|
progress_towards_friend_effect = {
|
|
REASON = friend_got_treatment
|
|
CHARACTER = scope:visiting_partner
|
|
OPINION = default_friend_opinion
|
|
}
|
|
}
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_healer_character
|
|
gold = minor_gold_value
|
|
}
|
|
#Set the variables and redirect us back to the Church Grounds
|
|
1041_healed_effect = yes
|
|
ai_chance = {
|
|
base = 300
|
|
modifier = {
|
|
short_term_gold < minor_gold_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#I want to go back
|
|
option = {
|
|
name = ep3_laamp_decision_event.1041.e
|
|
#Sets variables and returns us to church grounds screen
|
|
1031_been_to_effect = { GUILD = healer }
|
|
ai_chance = { base = 100 }
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:healer }
|
|
}
|
|
}
|
|
|
|
|
|
#Set the correct variable to block off the Church option and remove the desc flavor variable
|
|
scripted_effect 1043_churched_effect = {
|
|
save_scope_as = laamp_decision_has_churched
|
|
#Go back to church grounds
|
|
hidden_effect = { 1041_return_to_church_grounds_effect = yes }
|
|
}
|
|
|
|
#Not really into religion
|
|
scripted_trigger 1043_is_unzealous_trigger = {
|
|
OR = {
|
|
has_trait = cynical
|
|
any_secret = { type = secret_non_believer }
|
|
}
|
|
}
|
|
|
|
|
|
#Visit Church
|
|
ep3_laamp_decision_event.1043 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1043.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#What are they up to?
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: Generics
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_church
|
|
scope:church_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1043.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:church_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1043.desc_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME: We've seen this NunMonk before
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_clergy_character
|
|
NOT = { exists = scope:been_to_church }
|
|
}
|
|
desc = ep3_laamp_decision_event.1043.desc_reused_clergy
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_church }
|
|
}
|
|
desc = ep3_laamp_decision_event.1043.desc
|
|
}
|
|
}
|
|
#How about some theft
|
|
first_valid = {
|
|
#RETURN: Longing master thief
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_partner ?= { has_court_position = master_thief_camp_officer }
|
|
exists = scope:been_to_church
|
|
}
|
|
desc = ep3_laamp_decision_event.1043.desc_return_outro_thief
|
|
}
|
|
#RETURN: Outro
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_church }
|
|
desc = ep3_laamp_decision_event.1043.desc_return_outro
|
|
}
|
|
#FIRST TIME: Longing master thief
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_partner ?= { has_court_position = master_thief_camp_officer }
|
|
NOT = { exists = scope:been_to_church }
|
|
}
|
|
desc = ep3_laamp_decision_event.1043.desc_outro_thief
|
|
}
|
|
#FIRST TIME: Outro
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_church }
|
|
}
|
|
desc = ep3_laamp_decision_event.1043.desc_outro
|
|
}
|
|
}
|
|
}
|
|
theme = faith
|
|
override_sound = { reference = "event:/MUSIC/Cues/Events/Sacral Happening/mx_cue_epic_sacral_moment" }
|
|
override_background = { reference = temple }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#Master thief
|
|
triggered_animation = {
|
|
trigger = { has_court_position = master_thief_camp_officer }
|
|
animation = scheme
|
|
}
|
|
#Unzealous
|
|
triggered_animation = {
|
|
trigger = { 1043_is_unzealous_trigger = yes }
|
|
animation = personality_cynical
|
|
}
|
|
#Zealous
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { has_trait = zealous }
|
|
}
|
|
animation = ecstasy
|
|
}
|
|
#Friendly
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_friendly_traits = yes }
|
|
}
|
|
animation = interested
|
|
}
|
|
#Business-minded
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_commerce_traits = yes }
|
|
}
|
|
animation = personality_greedy
|
|
}
|
|
#Uninterested
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_uninterested_traits = yes }
|
|
}
|
|
animation = boredom
|
|
}
|
|
#Irrational
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_irrational_traits = yes }
|
|
}
|
|
animation = personality_irrational
|
|
}
|
|
#A bit awkward
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:visiting_partner = { 1010_has_standoffish_traits = yes }
|
|
}
|
|
animation = disapproval
|
|
}
|
|
animation = personality_honorable
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = { 1043_is_unzealous_trigger = yes }
|
|
animation = disapproval
|
|
}
|
|
animation = personality_content
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_clergy_character
|
|
animation = personality_forgiving
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#For the background
|
|
scope:visiting_location.county.holder = { save_scope_as = bg_override_char }
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = church }
|
|
#Find our clergy
|
|
if = {
|
|
#Do we already have a clergy?
|
|
limit = {
|
|
NOT = { exists = scope:laamp_clergy_character }
|
|
}
|
|
#Has this person been our clergy in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
faith = scope:visiting_location.faith
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_clergy_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
}
|
|
save_scope_as = laamp_clergy_character
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_clergy_character
|
|
}
|
|
#Otherwise find a clergy in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_clergy_character }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
has_trait = devoted
|
|
faith = scope:visiting_location.faith
|
|
}
|
|
save_scope_as = laamp_clergy_character
|
|
}
|
|
}
|
|
#Otherwise create a clergy
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_clergy_character }
|
|
}
|
|
#Create clergy to stuff in pool
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
trait = devoted
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_clergy_character
|
|
}
|
|
}
|
|
#Remember the clerger
|
|
1010_remember_vendor_character_effect = { GUILD = clergy CHARACTER = scope:laamp_clergy_character }
|
|
}
|
|
#How much gold is in the collect; and how difficult is it?
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1043_collect_gold_value }
|
|
}
|
|
#Randomize the initial value
|
|
set_variable = {
|
|
name = 1043_collect_gold_difficulty
|
|
value = {
|
|
integer_range = {
|
|
min = 0
|
|
max = 2
|
|
}
|
|
}
|
|
}
|
|
#Then add difficulty based on how much gold is in the collect
|
|
random_list = {
|
|
10 = {
|
|
save_scope_value_as = {
|
|
name = 1043_collect_gold_value
|
|
value = minor_gold_laamps_value
|
|
}
|
|
change_variable = {
|
|
name = 1043_collect_gold_difficulty
|
|
add = 1
|
|
}
|
|
}
|
|
10 = {
|
|
save_scope_value_as = {
|
|
name = 1043_collect_gold_value
|
|
value = medium_gold_laamps_value
|
|
}
|
|
change_variable = {
|
|
name = 1043_collect_gold_difficulty
|
|
add = 2
|
|
}
|
|
}
|
|
10 = {
|
|
save_scope_value_as = {
|
|
name = 1043_collect_gold_value
|
|
value = major_gold_laamps_value
|
|
}
|
|
change_variable = {
|
|
name = 1043_collect_gold_difficulty
|
|
add = 3
|
|
}
|
|
}
|
|
}
|
|
#Did we go robbing a bunch of churches previously?
|
|
if = {
|
|
limit = {
|
|
has_variable = 1043_heightened_security
|
|
exists = var:1043_collect_gold_difficulty
|
|
}
|
|
change_variable = {
|
|
name = 1043_collect_gold_difficulty
|
|
add = var:1043_heightened_security
|
|
}
|
|
|
|
}
|
|
#Set the difficulty
|
|
if = {
|
|
limit = { exists = var:1043_collect_gold_difficulty }
|
|
if = {
|
|
limit = { var:1043_collect_gold_difficulty >= 5 }
|
|
save_scope_value_as = {
|
|
name = 1043_collect_gold_difficulty_rating
|
|
value = monumentally_high_skill_rating #Had to invent a new difficulty, just for you :hmmyes:
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { var:1043_collect_gold_difficulty = 4 }
|
|
save_scope_value_as = {
|
|
name = 1043_collect_gold_difficulty_rating
|
|
value = extremely_high_skill_rating
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { var:1043_collect_gold_difficulty = 3 }
|
|
save_scope_value_as = {
|
|
name = 1043_collect_gold_difficulty_rating
|
|
value = high_skill_rating
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = { var:1043_collect_gold_difficulty = 2 }
|
|
save_scope_value_as = {
|
|
name = 1043_collect_gold_difficulty_rating
|
|
value = medium_skill_rating
|
|
}
|
|
}
|
|
else = {
|
|
save_scope_value_as = {
|
|
name = 1043_collect_gold_difficulty_rating
|
|
value = low_skill_rating
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Donate some gold for piety
|
|
option = {
|
|
name = ep3_laamp_decision_event.1043.a
|
|
flavor = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { 1043_is_unzealous_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1043.a.flavor_unzealous
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = { NOT = { exists = var:visit_settlement_church_donation } }
|
|
set_variable = {
|
|
name = visit_settlement_church_donation
|
|
years = visit_settlement_medium_cooldown_year
|
|
value = 1
|
|
}
|
|
}
|
|
else = {
|
|
set_local_variable = {
|
|
name = visit_settlement_church_donation_temp
|
|
value = var:visit_settlement_church_donation
|
|
}
|
|
set_variable = {
|
|
name = visit_settlement_church_donation
|
|
years = visit_settlement_medium_cooldown_year
|
|
value = {
|
|
value = local_var:visit_settlement_church_donation_temp
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
#Pay gold, feel more pious
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_clergy_character
|
|
gold = minor_gold_value
|
|
}
|
|
add_piety = visit_settlement_piety_gain_value
|
|
#Roll for epiphanous clergy
|
|
hidden_effect = {
|
|
scope:laamp_clergy_character = {
|
|
random_list = {
|
|
95 = {
|
|
modifier = {
|
|
has_trait = possessed_1
|
|
factor = 0.5
|
|
}
|
|
#Nothing happens
|
|
}
|
|
5 = {
|
|
modifier = {
|
|
piety_level = high_piety_level
|
|
add = 5
|
|
}
|
|
modifier = {
|
|
piety_level = very_high_piety_level
|
|
add = 5
|
|
}
|
|
modifier = {
|
|
piety_level = max_piety_level
|
|
add = 5
|
|
}
|
|
set_variable = 1043_is_epiphanous
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stress_impact = {
|
|
greedy = minor_stress_impact_gain
|
|
zealous = minor_stress_impact_loss
|
|
generous = minor_stress_impact_loss
|
|
improvident = medium_stress_impact_loss #Throw 'em a bone
|
|
}
|
|
trigger_event = ep3_laamp_decision_event.1044
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
short_term_gold < minor_gold_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Ask for blessing
|
|
option = {
|
|
name = ep3_laamp_decision_event.1043.b
|
|
trigger = {
|
|
NOR = {
|
|
has_character_modifier = laamp_decision_church_blessing_stress_loss_modifier
|
|
has_character_modifier = laamp_decision_church_blessing_stress_gain_modifier
|
|
piety_level < low_piety_level
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = piety
|
|
#Pokémon blue?
|
|
add_character_modifier = {
|
|
modifier = laamp_decision_church_blessing_stress_loss_modifier
|
|
years = 5
|
|
}
|
|
#Set the variables and redirect us back to the Church Grounds
|
|
1043_churched_effect = yes
|
|
ai_chance = {
|
|
base = 200
|
|
modifier = {
|
|
piety_level > medium_piety_level
|
|
add = 300
|
|
}
|
|
}
|
|
}
|
|
#'Borrow' gold from the collect
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_partner ?= { has_court_position = master_thief_camp_officer }
|
|
}
|
|
desc = ep3_laamp_decision_event.1043.c_master_thief
|
|
}
|
|
triggered_desc = {
|
|
trigger = { has_variable = 1043_heightened_security }
|
|
desc = ep3_laamp_decision_event.1043.c_guarded
|
|
}
|
|
desc = ep3_laamp_decision_event.1043.c
|
|
}
|
|
}
|
|
}
|
|
trigger = { is_ai = no }
|
|
flavor = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_variable = 1043_heightened_security
|
|
var:1043_heightened_security != 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1043.c.flavor_guarded
|
|
}
|
|
desc = ep3_laamp_decision_event.1043.c.flavor
|
|
}
|
|
}
|
|
duel = {
|
|
skill = intrigue
|
|
value = scope:1043_collect_gold_difficulty_rating
|
|
#Success: Coin!
|
|
50 = {
|
|
modifier = {
|
|
scope:visiting_partner ?= { has_court_position = master_thief_camp_officer }
|
|
factor = 2
|
|
}
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
min = 10
|
|
desc = ep3_laamp_decision_event.1043.c.thievery_success.desc
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1043.c.thievery_success.t
|
|
left_icon = root
|
|
add_gold = scope:1043_collect_gold_value
|
|
}
|
|
hidden_effect = {
|
|
#... fool me twice; shame on you.
|
|
if = {
|
|
limit = { has_variable = 1043_heightened_security }
|
|
random_list = {
|
|
50 = {
|
|
#Nothing
|
|
}
|
|
50 = {
|
|
#Save old value as temp
|
|
set_variable = {
|
|
name = 1043_heightened_security_temp
|
|
value = var:1043_heightened_security
|
|
}
|
|
#Remove the variable we'll refresh
|
|
remove_variable ?= 1043_heightened_security
|
|
#Set the new proper variable and add the old value as well
|
|
set_variable = {
|
|
name = 1043_heightened_security
|
|
value = {
|
|
value = var:1043_heightened_security_temp
|
|
add = 1
|
|
}
|
|
years = visit_settlement_medium_cooldown_year
|
|
}
|
|
#Then remove the temp
|
|
remove_variable ?= 1043_heightened_security_temp
|
|
}
|
|
}
|
|
}
|
|
#Fool me once, shame on me...
|
|
else = {
|
|
set_variable = {
|
|
name = 1043_heightened_security
|
|
value = 0
|
|
years = visit_settlement_medium_cooldown_year
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Failure: Banished!
|
|
50 = {
|
|
modifier = {
|
|
scope:visiting_partner ?= { has_court_position = master_thief_camp_officer }
|
|
factor = 0.5
|
|
}
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -20
|
|
}
|
|
desc = ep3_laamp_decision_event.1043.c.thievery_failure.desc
|
|
send_interface_toast = {
|
|
type = event_toast_text_bad
|
|
title = ep3_laamp_decision_event.1043.c.thievery_failure.t
|
|
desc = ep3_laamp_decision_event.1043.c.thievery_failure.desc
|
|
left_icon = root
|
|
custom_tooltip = ep3_laamp_decision_event.1041.return.tt
|
|
#Shame on you
|
|
add_piety = medium_piety_loss
|
|
#Shame shame
|
|
if = {
|
|
limit = {
|
|
NOT = { has_trait = gallowsbait }
|
|
}
|
|
add_trait = gallowsbait
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_trait = gallowsbait
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value < 100
|
|
}
|
|
}
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = thief
|
|
value = small_lifestyle_random_xp_low
|
|
}
|
|
}
|
|
}
|
|
#You will not be going back to the church any time soon
|
|
set_variable = {
|
|
name = 1040_caught_stealing
|
|
days = visit_settlement_small_cooldown_days
|
|
}
|
|
}
|
|
#Critical Failure: The local guards are summoned
|
|
10 = {
|
|
trigger = {
|
|
trigger_if = {
|
|
limit = { exists = scope:visiting_partner }
|
|
NOT = {
|
|
scope:visiting_partner = { has_court_position = master_thief_camp_officer }
|
|
}
|
|
}
|
|
trigger_else = { always = yes }
|
|
}
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
}
|
|
min = 5
|
|
desc = ep3_laamp_decision_event.1043.c.thievery_critical_failure.desc
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1043.c.thievery_critical_failure.t
|
|
left_icon = root
|
|
#Quite the tussle
|
|
increase_wounds_effect = { REASON = fight }
|
|
#Shame on you
|
|
add_piety = medium_piety_loss
|
|
#Violent shame, even
|
|
if = {
|
|
limit = {
|
|
NOT = { has_trait = gallowsbait }
|
|
}
|
|
add_trait = gallowsbait
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_trait = gallowsbait
|
|
has_trait_xp = {
|
|
trait = gallowsbait
|
|
track = bandit
|
|
value < 100
|
|
}
|
|
}
|
|
add_trait_xp = {
|
|
trait = gallowsbait
|
|
track = bandit
|
|
value = small_lifestyle_random_xp_mid
|
|
}
|
|
}
|
|
}
|
|
#You will not be going back to the church any time soon
|
|
set_variable = {
|
|
name = 1040_caught_stealing
|
|
days = visit_settlement_small_cooldown_days
|
|
}
|
|
}
|
|
}
|
|
#Super-stressful for honest characters and zealous characters, IF you share faith
|
|
if = {
|
|
limit = { scope:visiting_location.county.faith = root.faith }
|
|
stress_impact = {
|
|
honest = major_stress_impact_gain
|
|
zealous = major_stress_impact_gain
|
|
deceitful = minor_stress_impact_loss
|
|
greedy = minor_stress_impact_loss
|
|
}
|
|
}
|
|
else = {
|
|
stress_impact = {
|
|
honest = major_stress_impact_gain
|
|
deceitful = minor_stress_impact_loss
|
|
}
|
|
}
|
|
#Set the variables and redirect us back to the Church Grounds
|
|
1043_churched_effect = yes
|
|
}
|
|
#I want to go back
|
|
option = {
|
|
name = ep3_laamp_decision_event.1043.d
|
|
#Sets variables and returns us to church grounds screen
|
|
1031_been_to_effect = { GUILD = church }
|
|
ai_chance = { base = 200 }
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:church }
|
|
}
|
|
}
|
|
|
|
#Post-Donation
|
|
ep3_laamp_decision_event.1044 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1043.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
first_valid = {
|
|
#Strange person thinks you're a reincarnation or something? Why not.
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:laamp_clergy_character = { has_variable = 1043_is_epiphanous }
|
|
}
|
|
desc = ep3_laamp_decision_event.1044.desc_epiphany
|
|
}
|
|
desc = ep3_laamp_decision_event.1044.desc
|
|
}
|
|
}
|
|
theme = faith
|
|
override_sound = {
|
|
trigger = {
|
|
scope:laamp_clergy_character = { has_variable = 1043_is_epiphanous }
|
|
}
|
|
reference = "event:/DLC/FP4/MUSIC/Stingers/mx_stinger_legends_lvl_03"
|
|
}
|
|
override_sound = { reference = "event:/MUSIC/Cues/Events/Low Key Positive/mx_cue_low_key_postive" }
|
|
override_background = { reference = temple }
|
|
override_effect_2d = {
|
|
trigger = {
|
|
scope:laamp_clergy_character = { has_variable = 1043_is_epiphanous }
|
|
}
|
|
reference = legend_glow #Too much?
|
|
}
|
|
left_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:laamp_clergy_character = { has_variable = 1043_is_epiphanous }
|
|
}
|
|
animation = disbelief
|
|
}
|
|
triggered_animation = {
|
|
trigger = { 1043_is_unzealous_trigger = yes }
|
|
animation = shock
|
|
}
|
|
animation = admiration
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_clergy_character
|
|
triggered_animation = {
|
|
trigger = { has_variable = 1043_is_epiphanous }
|
|
animation = shock
|
|
}
|
|
animation = happiness
|
|
}
|
|
#Do we have someone to display?
|
|
lower_left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
hidden_effect = {
|
|
scope:laamp_clergy_character = {
|
|
if = {
|
|
limit = { has_variable = 1043_is_epiphanous }
|
|
add_trait = loyal
|
|
add_trait = holy_warrior
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Ask for blessing
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:laamp_clergy_character = { has_variable = 1043_is_epiphanous }
|
|
}
|
|
desc = ep3_laamp_decision_event.1044.a_epiphany
|
|
}
|
|
desc = ep3_laamp_decision_event.1044.a
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
NOR = {
|
|
has_character_modifier = laamp_decision_church_blessing_stress_loss_modifier
|
|
has_character_modifier = laamp_decision_church_blessing_stress_gain_modifier
|
|
piety_level < low_piety_level
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = piety
|
|
#Or Pokémon red?
|
|
add_character_modifier = {
|
|
modifier = laamp_decision_church_blessing_stress_gain_modifier
|
|
years = 5
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
piety_level > medium_piety_level
|
|
add = 300
|
|
}
|
|
}
|
|
}
|
|
#Triggered Option: Clergy Person wants to join your camp
|
|
option = {
|
|
name = ep3_laamp_decision_event.1044.b
|
|
trigger = {
|
|
scope:laamp_clergy_character = { has_variable = 1043_is_epiphanous }
|
|
}
|
|
add_courtier = scope:laamp_clergy_character
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
has_trait = paranoid
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Nah
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:laamp_clergy_character = { has_variable = 1043_is_epiphanous }
|
|
}
|
|
desc = ep3_laamp_decision_event.1044.c_epiphany
|
|
}
|
|
desc = ep3_laamp_decision_event.1044.c
|
|
}
|
|
}
|
|
}
|
|
#Tooltip so we know where we're going
|
|
custom_tooltip = ep3_laamp_decision_event.1041.return.tt
|
|
ai_chance = {
|
|
base = 100
|
|
}
|
|
}
|
|
after = {
|
|
#Set the variables and redirect us back to the Church Grounds
|
|
1043_churched_effect = yes
|
|
}
|
|
}
|
|
|
|
|
|
#Set the correct variable to block off the Garden option and remove the desc flavor variable
|
|
scripted_effect 1045_gardened_effect = {
|
|
save_scope_as = laamp_decision_has_gardened
|
|
#Go back to church grounds
|
|
hidden_effect = { 1041_return_to_church_grounds_effect = yes }
|
|
}
|
|
|
|
#Right?
|
|
scripted_trigger 1045_probably_knows_gardening_trigger = {
|
|
OR = {
|
|
has_trait = lifestyle_gardener
|
|
has_trait = lifestyle_herbalist
|
|
learning > high_skill_rating
|
|
}
|
|
}
|
|
|
|
#Used in enough places to warrant a trigger
|
|
scripted_trigger 1045_could_harvest_garden_trigger = {
|
|
OR = {
|
|
trigger_if = {
|
|
limit = { exists = scope:visiting_partner }
|
|
scope:visiting_partner = { 1045_probably_knows_gardening_trigger = yes }
|
|
}
|
|
1045_probably_knows_gardening_trigger = yes
|
|
}
|
|
}
|
|
|
|
#Ditto
|
|
scripted_trigger 1045_could_unwind_in_garden_trigger = {
|
|
scope:visiting_partner ?= {
|
|
OR = {
|
|
AND = {
|
|
has_relation_potential_lover = root
|
|
root = { might_cheat_on_every_partner_trigger = yes }
|
|
}
|
|
has_relation_lover = root
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
#Visit Garden
|
|
ep3_laamp_decision_event.1045 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1045.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#What's going down in the garden
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: Generics
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_garden
|
|
scope:garden_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1045.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:garden_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1045.desc_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_garden }
|
|
}
|
|
desc = ep3_laamp_decision_event.1045.desc
|
|
}
|
|
}
|
|
#Hey look, some plants
|
|
first_valid = {
|
|
#RETURN: Still partner plants
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_partner ?= { 1045_probably_knows_gardening_trigger = yes }
|
|
exists = scope:been_to_garden
|
|
}
|
|
desc = ep3_laamp_decision_event.1045.desc_outro_return_partner
|
|
}
|
|
#RETURN: Still plants
|
|
triggered_desc = {
|
|
trigger = {
|
|
1045_probably_knows_gardening_trigger = yes
|
|
exists = scope:been_to_garden
|
|
}
|
|
desc = ep3_laamp_decision_event.1045.desc_outro_return_gardener
|
|
}
|
|
#FIRST TIME: Partner PLAAANTSSS
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_partner ?= { 1045_probably_knows_gardening_trigger = yes }
|
|
NOT = { exists = scope:been_to_garden }
|
|
}
|
|
desc = ep3_laamp_decision_event.1045.desc_outro_partner
|
|
}
|
|
#FIRST TIME: PLAAANTSSS
|
|
triggered_desc = {
|
|
trigger = {
|
|
1045_probably_knows_gardening_trigger = yes
|
|
NOT = { exists = scope:been_to_garden }
|
|
}
|
|
desc = ep3_laamp_decision_event.1045.desc_outro_gardener
|
|
}
|
|
}
|
|
}
|
|
theme = faith
|
|
override_sound = { reference = "event:/SFX/Events/Themes/sfx_event_theme_type_health_good" }
|
|
override_background = { reference = garden }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
triggered_animation = {
|
|
trigger = {
|
|
NOT = { has_variable = 1045_has_harvested_recently }
|
|
1045_probably_knows_gardening_trigger = yes
|
|
}
|
|
animation = survey
|
|
}
|
|
animation = happiness
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = {
|
|
NOT = { has_variable = 1045_has_harvested_recently }
|
|
scope:visiting_partner ?= { 1045_probably_knows_gardening_trigger = yes }
|
|
}
|
|
animation = interested
|
|
}
|
|
triggered_animation = {
|
|
trigger = { 1045_probably_knows_gardening_trigger = yes }
|
|
animation = survey
|
|
}
|
|
triggered_animation = {
|
|
trigger = { faith != scope:visiting_location.faith }
|
|
animation = stress
|
|
}
|
|
animation = thinking
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#For the background
|
|
scope:visiting_location.county.holder = { save_scope_as = bg_override_char }
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = garden }
|
|
}
|
|
#Convert / contemplate faith
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Convert to faith
|
|
triggered_desc = {
|
|
trigger = {
|
|
faith != scope:visiting_location.faith
|
|
}
|
|
desc = ep3_laamp_decision_event.1045.a_convert
|
|
}
|
|
#Contemplate faith
|
|
desc = ep3_laamp_decision_event.1045.a
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1045.a.cooldown.tt
|
|
NOT = { has_variable = 1045_contemplated_garden_recently }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
#Convert
|
|
if = {
|
|
limit = {
|
|
faith != scope:visiting_location.faith
|
|
}
|
|
set_character_faith = scope:visiting_location.faith
|
|
stress_impact = {
|
|
base = minor_stress_impact_loss
|
|
zealous = major_stress_impact_gain
|
|
}
|
|
}
|
|
#Contemplate faith
|
|
else = {
|
|
stress_impact = {
|
|
base = medium_stress_impact_loss
|
|
content = minor_stress_impact_loss
|
|
zealous = medium_stress_impact_loss
|
|
}
|
|
}
|
|
#Cooldown for the action
|
|
set_variable = {
|
|
name = 1045_contemplated_garden_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Set the variables and redirect us back to the Church Grounds
|
|
1045_gardened_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
faith != scope:visiting_location.faith
|
|
has_trait = zealous
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
faith != scope:visiting_location.faith
|
|
any_secret ?= { secret_type = secret_non_believer }
|
|
add = 300
|
|
}
|
|
}
|
|
}
|
|
#Triggered Option: Those plants look edible
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Gardener friend
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:visiting_partner ?= { 1045_probably_knows_gardening_trigger = yes }
|
|
}
|
|
desc = ep3_laamp_decision_event.1045.b_partner
|
|
}
|
|
#Gardener self
|
|
desc = ep3_laamp_decision_event.1045.b
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
trigger_if = {
|
|
limit = { has_variable = 1045_has_harvested_recently }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1045.b.cooldown.tt
|
|
always = no
|
|
}
|
|
}
|
|
trigger_else = { 1045_could_harvest_garden_trigger = yes }
|
|
}
|
|
show_as_unavailable = {
|
|
#Only show it if you could've actually done it
|
|
trigger_if = {
|
|
limit = { 1045_could_harvest_garden_trigger = yes }
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
#Get some provisions
|
|
if = {
|
|
limit = {
|
|
domicile ?= { provisions < max_provisions }
|
|
}
|
|
domicile ?= {
|
|
change_provisions = {
|
|
value = {
|
|
value = root.minor_gold_laamps_value
|
|
multiply = {
|
|
value = max_provisions
|
|
divide = 250
|
|
round = yes
|
|
min = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#... or sell the morsels, if capped
|
|
else = { add_gold = minor_gold_laamps_value }
|
|
#Probably holy somewhere
|
|
if = {
|
|
limit = {
|
|
faith = {
|
|
OR = {
|
|
has_doctrine = tenet_sanctity_of_nature
|
|
trait_is_virtue = lifestyle_gardener
|
|
trait_is_virtue = lifestyle_herbalist
|
|
}
|
|
}
|
|
}
|
|
add_piety = medium_piety_gain
|
|
}
|
|
#Cooldown for the action
|
|
set_variable = {
|
|
name = 1045_has_harvested_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Set the variables and redirect us back to the Church Grounds
|
|
1045_gardened_effect = yes
|
|
ai_chance = {
|
|
base = 1000 #Just do it
|
|
}
|
|
}
|
|
#Triggered Option: Stress relief? Stress relief.
|
|
option = {
|
|
name = ep3_laamp_decision_event.1045.c
|
|
trigger = {
|
|
trigger_if = {
|
|
limit = { has_variable = 1045_garden_unwinded_recently }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1045.c.cooldown.tt
|
|
always = no
|
|
}
|
|
}
|
|
trigger_else = { 1045_could_unwind_in_garden_trigger = yes }
|
|
}
|
|
show_as_unavailable = {
|
|
#Only show it if you could've actually done it
|
|
trigger_if = {
|
|
limit = { 1045_could_unwind_in_garden_trigger = yes }
|
|
always = yes
|
|
}
|
|
trigger_else = { always = no }
|
|
}
|
|
#Stress relief
|
|
had_sex_with_effect = { CHARACTER = scope:visiting_partner PREGNANCY_CHANCE = pregnancy_chance }
|
|
progress_towards_lover_effect = {
|
|
CHARACTER = scope:visiting_partner
|
|
REASON = lover_contemplative_sex
|
|
OPINION = default_lover_opinion
|
|
}
|
|
#Probably holy to some?
|
|
if = {
|
|
limit = {
|
|
faith = { has_doctrine = tenet_carnal_exaltation }
|
|
}
|
|
add_piety = medium_piety_gain
|
|
}
|
|
#Or not
|
|
else_if = {
|
|
limit = {
|
|
faith = {
|
|
OR = {
|
|
trait_is_sin = lustful
|
|
trait_is_sin = rakish
|
|
trait_is_sin = seducer
|
|
}
|
|
}
|
|
}
|
|
add_piety = minor_piety_loss
|
|
}
|
|
#Cooldown for the action
|
|
set_variable = {
|
|
name = 1045_garden_unwinded_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Stress loss with some factors
|
|
stress_impact = {
|
|
base = medium_stress_impact_loss
|
|
rakish = medium_stress_impact_loss
|
|
seducer = minor_stress_impact_loss
|
|
lustful = minor_stress_impact_loss
|
|
paranoid = minor_stress_impact_gain
|
|
chaste = minor_stress_impact_gain
|
|
}
|
|
#Set the variables and redirect us back to the Church Grounds
|
|
1045_gardened_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
has_trait = lustful
|
|
add = 500
|
|
}
|
|
modifier = {
|
|
has_trait = rakish
|
|
add = 500
|
|
}
|
|
modifier = {
|
|
has_trait = chaste
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#I want to go back
|
|
option = {
|
|
name = ep3_laamp_decision_event.1045.d
|
|
#Everything is on cooldown, I guess
|
|
if = {
|
|
limit = {
|
|
has_variable = 1045_contemplated_garden_recently
|
|
trigger_if = {
|
|
limit = { 1045_could_harvest_garden_trigger = yes }
|
|
has_variable = 1045_has_harvested_recently
|
|
}
|
|
trigger_if = {
|
|
limit = { 1045_could_unwind_in_garden_trigger = yes }
|
|
has_variable = 1045_garden_unwinded_recently
|
|
}
|
|
}
|
|
1045_gardened_effect = yes
|
|
}
|
|
else = {
|
|
#Sets variables and returns us to church grounds screen
|
|
1031_been_to_effect = { GUILD = garden }
|
|
}
|
|
ai_chance = { base = 100 }
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:garden }
|
|
}
|
|
}
|
|
|
|
|
|
#Hire the Physician, show/set the effects and variables
|
|
scripted_effect 1047_hire_physician_effect = {
|
|
hidden_effect = {
|
|
reverse_add_opinion = {
|
|
target = scope:laamp_physician_recruit
|
|
modifier = recruited_me_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
add_courtier = scope:laamp_physician_recruit
|
|
#The actual effect happens in after
|
|
show_as_tooltip = {
|
|
court_position_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = court_physician
|
|
CANDIDATE = scope:laamp_physician_recruit
|
|
}
|
|
}
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
save_scope_value_as = {
|
|
name = laamp_decision_recruited_physician
|
|
value = flag:yes
|
|
}
|
|
#Go back to church grounds
|
|
hidden_effect = { 1041_return_to_church_grounds_effect = yes }
|
|
}
|
|
|
|
|
|
#Visit Physician
|
|
ep3_laamp_decision_event.1047 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1047.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#What're they doing?
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN:
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_physician
|
|
scope:physician_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1047.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:physician_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1047.desc_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:physician_loc_tracker ?= 2 }
|
|
desc = ep3_laamp_decision_event.1047.desc_returned_03
|
|
}
|
|
}
|
|
#FIRST TIME: We've seen this physician before
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_physician
|
|
NOT = { exists = scope:been_to_physician }
|
|
}
|
|
desc = ep3_laamp_decision_event.1047.desc_reused_physician
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_physician }
|
|
}
|
|
desc = ep3_laamp_decision_event.1047.desc
|
|
}
|
|
}
|
|
}
|
|
theme = learning
|
|
override_sound = { reference = "event:/MUSIC/Cues/Events/Positive/mx_cue_postive_effect" }
|
|
override_background = { reference = location_study }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
triggered_animation = {
|
|
trigger = { 1041_physician_partner_trigger = yes }
|
|
animation = interested
|
|
}
|
|
animation = personality_compassionate
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
animation = personality_rational
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_physician_recruit
|
|
camera = camera_event_scheme_far_right
|
|
animation = reading
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Run this once: Re-save the portrait so the Physician is not the 1040_third_character (since they narratively moved to their study)
|
|
if = {
|
|
limit = { scope:1040_third_character = scope:laamp_physician_recruit }
|
|
#Overwrite with ROOT to block off the portrait
|
|
save_scope_as = 1040_third_character
|
|
#Remember the bodyguard
|
|
1010_remember_vendor_character_effect = { GUILD = physician CHARACTER = scope:laamp_physician_recruit }
|
|
}
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_hub_loc_tracker_scope_effect = { HUB = physician }
|
|
}
|
|
#Pay gold
|
|
option = {
|
|
name = ep3_laamp_decision_event.1047.a
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_physician_recruit
|
|
gold = minor_gold_value
|
|
}
|
|
#Wrap effect to hire 'em, set scope & return to church
|
|
1047_hire_physician_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < minor_gold_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Have x piety
|
|
option = {
|
|
name = ep3_laamp_decision_event.1047.b
|
|
trigger = { piety >= 1000 }
|
|
show_as_unavailable = { always = yes }
|
|
reason = piety
|
|
#Wrap effect to hire 'em, set scope & return to church
|
|
1047_hire_physician_effect = yes
|
|
ai_chance = {
|
|
base = 1000 #Just do it
|
|
}
|
|
}
|
|
#Learning duel
|
|
option = {
|
|
name = ep3_laamp_decision_event.1047.c
|
|
duel = {
|
|
skill = learning
|
|
value = average_skill_rating
|
|
#Success: Hire 'em up
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
modifier = {
|
|
OR = {
|
|
has_trait = scholar
|
|
has_trait = whole_of_body
|
|
has_trait = crusader_king
|
|
}
|
|
factor = 2
|
|
}
|
|
desc = ep3_laamp_decision_event.1047.c.success
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1047.c.success
|
|
left_icon = root
|
|
right_icon = scope:laamp_physician_recruit
|
|
#Yippee!
|
|
1047_hire_physician_effect = yes
|
|
}
|
|
}
|
|
#Failure: Bye, now
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -20
|
|
}
|
|
modifier = {
|
|
has_trait = zealous
|
|
factor = 0.5
|
|
}
|
|
desc = ep3_laamp_decision_event.1047.c.failure
|
|
send_interface_toast = {
|
|
type = event_toast_text_bad
|
|
title = ep3_laamp_decision_event.1047.c.failure
|
|
desc = ep3_laamp_decision_event.1047.c.failure.tt
|
|
left_icon = root
|
|
right_icon = scope:laamp_physician_recruit
|
|
#Oh well
|
|
custom_tooltip = ep3_laamp_decision_event.1047.c.failure.tt
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
save_scope_value_as = {
|
|
name = laamp_decision_recruited_physician
|
|
value = flag:no
|
|
}
|
|
1041_return_to_church_grounds_effect = yes
|
|
}
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
piety >= 1000
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#I want to go back
|
|
option = {
|
|
name = ep3_laamp_decision_event.1047.d
|
|
#Sets variables and returns us to church grounds screen
|
|
1031_been_to_effect = { GUILD = physician }
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
employs_court_position = court_physician_court_position
|
|
factor = 2
|
|
}
|
|
}
|
|
}
|
|
after = {
|
|
if = {
|
|
limit = { scope:laamp_decision_recruited_physician ?= flag:yes }
|
|
#Appoint them
|
|
if = {
|
|
limit = {
|
|
can_appoint_char_to_court_position = {
|
|
CHAR = scope:laamp_physician_recruit
|
|
COURT_POS = court_physician_court_position
|
|
}
|
|
}
|
|
court_position_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = court_physician
|
|
CANDIDATE = scope:laamp_physician_recruit
|
|
}
|
|
}
|
|
}
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:physician }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
######################################################################
|
|
# CASTLE GROUNDS
|
|
# ep3_laamp_decision_event.1050
|
|
######################################################################
|
|
|
|
#Set the correct variable to block off the Castle option and remove the desc flavor variable
|
|
scripted_effect 1050_finished_castle_effect = {
|
|
remove_list_variable = {
|
|
name = list_of_options
|
|
target = flag:has_castle_option
|
|
}
|
|
save_scope_as = laamp_decision_finished_castle_option
|
|
}
|
|
|
|
#Can reinforce MaA
|
|
scripted_trigger 1050_has_maa_to_reinforce_trigger = {
|
|
any_maa_regiment ?= { maa_current_troops_count < maa_max_troops_count }
|
|
}
|
|
|
|
#Nothing left for us to do
|
|
scripted_trigger 1050_done_with_castle_trigger = {
|
|
exists = scope:laamp_decision_has_trained
|
|
exists = scope:laamp_decision_has_garrisoned
|
|
trigger_if = {
|
|
limit = { 1050_has_maa_to_reinforce_trigger = yes }
|
|
exists = scope:laamp_decision_has_reinforced
|
|
}
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_bodyguard_recruit }
|
|
exists = scope:laamp_decision_recruited_bodyguard
|
|
}
|
|
}
|
|
|
|
|
|
#Castle Holding: Visit the local castle grounds
|
|
ep3_laamp_decision_event.1050 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1050.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#Intro
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: We've returned from Main Square
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:main_square
|
|
exists = scope:been_to_castle_grounds
|
|
OR = {
|
|
scope:castle_loc_tracker ?= 0
|
|
scope:castle_loc_tracker ?= 2
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:main_square
|
|
scope:castle_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc_returned_02
|
|
}
|
|
}
|
|
#RETURN: We've returned from the Training ground
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:training }
|
|
desc = ep3_laamp_decision_event.1050.desc_returned_from_training
|
|
}
|
|
#RETURN: We've returned from the Garrison
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:garrison }
|
|
desc = ep3_laamp_decision_event.1050.desc_returned_from_garrison
|
|
}
|
|
#RETURN: We've returned from the Reinforcers
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:reinforcers }
|
|
desc = ep3_laamp_decision_event.1050.desc_returned_from_reinforcers
|
|
}
|
|
#RETURN: We've returned from the Bodyguard
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:bodyguard }
|
|
desc = ep3_laamp_decision_event.1050.desc_returned_from_bodyguard
|
|
}
|
|
#FIRST TIME: First time here
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_castle_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc
|
|
}
|
|
}
|
|
#Mid - MaA option or not?
|
|
first_valid = {
|
|
#FIRST TIME: Yup, we can reinforce MaA
|
|
triggered_desc = {
|
|
trigger = {
|
|
1050_has_maa_to_reinforce_trigger = yes
|
|
NOT = { exists = scope:been_to_castle_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.mid_maa
|
|
}
|
|
#FIRST TIME: Nope, no MaA to reinforce
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_castle_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.mid_no_maa
|
|
}
|
|
}
|
|
#Outro
|
|
first_valid = {
|
|
#FIRST TIME: First time here, look at the bodyguard
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_bodyguard_recruit
|
|
NOT = { exists = scope:been_to_castle_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc_outro_bodyguard
|
|
}
|
|
#FIRST TIME: First time here, curious partner
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
NOT = { exists = scope:been_to_castle_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc_outro_partner
|
|
}
|
|
#FIRST TIME: First time here
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_castle_grounds }
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc_outro
|
|
}
|
|
#RETURN: Partner - there is nothing left for us here
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
1050_done_with_castle_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc_outro_return_partner_finished
|
|
}
|
|
#RETURN: There is nothing left for us here
|
|
triggered_desc = {
|
|
trigger = { 1050_done_with_castle_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1050.desc_outro_return_finished
|
|
}
|
|
#RETURN: Bodyguard did not deviate, yet
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_bodyguard_recruit
|
|
NOR = {
|
|
exists = scope:been_to_bodyguard
|
|
exists = scope:laamp_decision_recruited_bodyguard
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc_outro_bodyguard_return
|
|
}
|
|
#RETURN: We've been here before
|
|
random_valid = {
|
|
#RETURN: Partner flavor
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
exists = scope:been_to_castle_grounds
|
|
scope:castle_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc_outro_return_partner_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
scope:castle_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc_outro_return_partner_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
scope:castle_loc_tracker ?= 2
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc_outro_return_partner_03
|
|
}
|
|
#RETURN: Generics
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_castle_grounds
|
|
scope:castle_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1050.desc_outro_return_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:castle_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1050.desc_outro_return_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:castle_loc_tracker ?= 2 }
|
|
desc = ep3_laamp_decision_event.1050.desc_outro_return_03
|
|
}
|
|
}
|
|
}
|
|
}
|
|
theme = martial
|
|
#Get outta here already
|
|
override_effect_2d = {
|
|
trigger = {
|
|
1050_done_with_castle_trigger = yes
|
|
scope:visiting_location = { is_drylands_or_desert_trigger = no }
|
|
}
|
|
reference = rain
|
|
}
|
|
override_background = {
|
|
trigger = {
|
|
scope:visiting_location = {
|
|
geographical_region = world_europe
|
|
NOT = { geographical_region = world_europe_west_iberia }
|
|
}
|
|
}
|
|
reference = gallows
|
|
}
|
|
override_background = { reference = ep3_city_gate }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#If it's our (tired) visiting partner
|
|
triggered_animation = {
|
|
trigger = { 1050_done_with_castle_trigger = yes }
|
|
animation = boredom
|
|
}
|
|
animation = survey
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:laamp_bodyguard_recruit
|
|
NOR = {
|
|
exists = scope:been_to_bodyguard
|
|
exists = scope:laamp_decision_recruited_bodyguard
|
|
}
|
|
}
|
|
animation = interested
|
|
}
|
|
triggered_animation = {
|
|
trigger = { prowess < average_skill_rating }
|
|
animation = personality_coward
|
|
}
|
|
animation = personality_bold
|
|
}
|
|
#Do we have someone to display?
|
|
right_portrait = {
|
|
trigger = {
|
|
exists = scope:1050_third_character
|
|
#If this is root, then that means we have talked to the Bodyguard, so let's disappear the portrait
|
|
scope:1050_third_character != root
|
|
}
|
|
character = scope:1050_third_character
|
|
camera = camera_event_scheme_vs_extra_right_look_right
|
|
#We've returned here and it's still the bodyguard
|
|
triggered_animation = {
|
|
trigger = { exists = scope:been_to_castle_grounds }
|
|
animation = disapproval
|
|
}
|
|
#Otherwise some seething to go
|
|
animation = rage
|
|
}
|
|
lower_left_portrait = {
|
|
trigger = {
|
|
exists = scope:1050_fourth_character
|
|
scope:1050_fourth_character != root
|
|
}
|
|
character = scope:1050_fourth_character
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Set up the ancillary portraits to remind the player of the characters
|
|
if = {
|
|
#Bodyguard exists
|
|
limit = {
|
|
#We've been to them at least once
|
|
exists = scope:been_to_bodyguard
|
|
#We're not done with them yet
|
|
AND = {
|
|
exists = scope:laamp_bodyguard_recruit
|
|
NOT = { exists = scope:laamp_decision_recruited_bodyguard }
|
|
}
|
|
#This isn't already the state
|
|
NAND = {
|
|
exists = scope:1050_fourth_character
|
|
scope:1050_fourth_character ?= scope:laamp_bodyguard_recruit
|
|
}
|
|
}
|
|
scope:laamp_bodyguard_recruit = { save_scope_as = 1050_fourth_character }
|
|
}
|
|
#Clear out the ancillary portrait(s)
|
|
if = {
|
|
limit = {
|
|
exists = scope:1050_fourth_character
|
|
scope:laamp_bodyguard_recruit ?= scope:1050_fourth_character
|
|
exists = scope:laamp_decision_recruited_bodyguard
|
|
}
|
|
#Overwrite with ROOT to hide that portrait
|
|
save_scope_as = 1050_fourth_character
|
|
}
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_hub_loc_tracker_scope_effect = { HUB = castle }
|
|
#Rare: Spawn a spectacular Bodyguard
|
|
if = {
|
|
limit = {
|
|
NOT = { has_variable = laamp_decision_1000_checked_for_bodyguard }
|
|
}
|
|
random_list = {
|
|
80 = {
|
|
#No Bodyguard
|
|
}
|
|
20 = {
|
|
#Has this person been our bodyguard in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_bodyguard_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:saved_character_check }
|
|
}
|
|
save_scope_as = laamp_bodyguard_recruit
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_bodyguard
|
|
}
|
|
#Otherwise find a bodyguard in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_bodyguard_recruit }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
is_available_healthy_adult = yes
|
|
prowess > 15
|
|
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = this }
|
|
}
|
|
save_scope_as = laamp_bodyguard_recruit
|
|
}
|
|
}
|
|
#Otherwise create a bodyguard
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_bodyguard_recruit }
|
|
}
|
|
#Create bodyguard to stuff in pool
|
|
create_character = {
|
|
template = bp1_yearly_2021_martial_person_template
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
prowess = { decent_skill_rating high_skill_rating }
|
|
save_scope_as = laamp_bodyguard_recruit
|
|
}
|
|
scope:laamp_bodyguard_recruit ?= {
|
|
#Chance to add a malus trait to this spectatular being
|
|
if = {
|
|
limit = {
|
|
NOR = {
|
|
has_trait = possessed_1
|
|
has_trait = lunatic_1
|
|
has_trait = depressed_1
|
|
has_trait = drunkard
|
|
has_trait = hashishiyah
|
|
has_trait = irritable
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
random = {
|
|
chance = 20
|
|
random_list = {
|
|
10 = { add_trait = possessed_1 }
|
|
10 = { add_trait = lunatic_1 }
|
|
10 = { add_trait = depressed_1 }
|
|
10 = { add_trait = drunkard }
|
|
10 = { add_trait = hashishiyah }
|
|
10 = { add_trait = irritable }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:laamp_bodyguard_recruit = { save_scope_as = 1050_third_character }
|
|
}
|
|
}
|
|
#No decision-scumming
|
|
set_variable = {
|
|
name = laamp_decision_1000_checked_for_bodyguard
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
}
|
|
#Train prowess
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to the training grounds
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_training }
|
|
desc = ep3_laamp_decision_event.1050.a_second
|
|
}
|
|
#First time at the training grounds
|
|
desc = ep3_laamp_decision_event.1050.a
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#Recruited the Master of Arms
|
|
trigger_if = {
|
|
limit = {
|
|
exists = scope:laamp_disgruntled_moa
|
|
scope:laamp_decision_has_trained ?= flag:no
|
|
}
|
|
custom_tooltip = {
|
|
text = recruited_maa.tt
|
|
always = no
|
|
}
|
|
}
|
|
#Been there, done that
|
|
trigger_else_if = {
|
|
limit = { scope:laamp_decision_has_trained ?= flag:yes }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1050.a.cooldown.tt
|
|
always = no
|
|
}
|
|
}
|
|
trigger_else = { always = yes }
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = visit_training_grounds
|
|
custom_tooltip = ep3_laamp_decision_event.1050.a.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = castle_grounds }
|
|
#Go to the training grounds
|
|
trigger_event = ep3_laamp_decision_event.1051
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Scout knights at the garrison
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to the garrison
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_garrison }
|
|
desc = ep3_laamp_decision_event.1050.b_second
|
|
}
|
|
#First time at the garrison
|
|
desc = ep3_laamp_decision_event.1050.b
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1050.b.cooldown.tt
|
|
NOT = { exists = scope:laamp_decision_has_garrisoned }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = visit_garrison
|
|
custom_tooltip = ep3_laamp_decision_event.1050.b.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = castle_grounds }
|
|
#Go to the garrison screen
|
|
trigger_event = ep3_laamp_decision_event.1053
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Check out the demoralized soldiers
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Already scoped out contract
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_reinforcers }
|
|
desc = ep3_laamp_decision_event.1050.c_second
|
|
}
|
|
#First time reading contract
|
|
desc = ep3_laamp_decision_event.1050.c
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_decision_has_reinforced }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1050.c.cooldown.tt
|
|
NOT = { exists = scope:laamp_decision_has_reinforced }
|
|
}
|
|
}
|
|
trigger_else_if = {
|
|
limit = {
|
|
any_in_list = {
|
|
variable = 1055_reinforced_recently
|
|
this = scope:visiting_location
|
|
}
|
|
}
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1050.c.cooldown_province.tt
|
|
NOT = {
|
|
any_in_list = {
|
|
variable = 1055_reinforced_recently
|
|
this = scope:visiting_location
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_else = { 1050_has_maa_to_reinforce_trigger = yes }
|
|
}
|
|
show_as_unavailable = {
|
|
OR = {
|
|
1050_has_maa_to_reinforce_trigger = yes
|
|
exists = scope:laamp_decision_has_reinforced
|
|
}
|
|
}
|
|
reason = reinforce_maa
|
|
custom_tooltip = ep3_laamp_decision_event.1050.c.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = castle_grounds }
|
|
#Go to the Town Crier
|
|
trigger_event = ep3_laamp_decision_event.1055
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Rare Option: Hire cheaper, skilled, Bodyguard
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to the Bodyguard
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_bodyguard }
|
|
desc = ep3_laamp_decision_event.1050.d_second
|
|
}
|
|
#First time at the Bodyguard
|
|
desc = ep3_laamp_decision_event.1050.d
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
exists = scope:laamp_bodyguard_recruit
|
|
NOT = { exists = scope:laamp_decision_recruited_bodyguard }
|
|
}
|
|
reason = recruit_bodyguard
|
|
#Been there once already
|
|
if = {
|
|
limit = { exists = scope:been_to_bodyguard }
|
|
custom_tooltip = ep3_laamp_decision_event.1050.d.tt_second
|
|
}
|
|
else = {
|
|
custom_tooltip = ep3_laamp_decision_event.1050.d.tt
|
|
}
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = castle_grounds }
|
|
#Go to the bodyguard screen
|
|
trigger_event = ep3_laamp_decision_event.1057
|
|
ai_chance = {
|
|
base = 500
|
|
}
|
|
}
|
|
#I want to do something else
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Nothing left to do
|
|
triggered_desc = {
|
|
trigger = { 1050_done_with_castle_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1050.e_second
|
|
}
|
|
#Back to main square
|
|
desc = ep3_laamp_decision_event.1050.e
|
|
}
|
|
}
|
|
}
|
|
#Have we done everything? Are we closing off the option?
|
|
if = {
|
|
limit = { 1050_done_with_castle_trigger = yes }
|
|
#Clean up unnecessary variables and close off the option
|
|
1050_finished_castle_effect = yes
|
|
}
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = castle_grounds }
|
|
#Go back to the main event
|
|
1000_return_to_main_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
OR = {
|
|
has_trait = greedy
|
|
has_trait = paranoid
|
|
}
|
|
add = 300
|
|
}
|
|
}
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:castle_grounds }
|
|
}
|
|
}
|
|
|
|
|
|
#We return to the castle event to peruse other options
|
|
scripted_effect 1051_return_to_castle_effect = {
|
|
custom_tooltip = ep3_laamp_decision_event.1051.return.tt
|
|
trigger_event = ep3_laamp_decision_event.1050
|
|
}
|
|
|
|
#One, two, one, two, hepp-hepp-hepp
|
|
scripted_effect 1051_actual_training_effect = {
|
|
#Pay for training if it ain't scope:visiting_partner
|
|
if = {
|
|
limit = { $TRAINER$ = scope:laamp_disgruntled_moa }
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_disgruntled_moa
|
|
gold = visit_settlement_paid_training_value
|
|
}
|
|
}
|
|
#Add the prowess
|
|
random_list = {
|
|
#Athletisism!
|
|
10 = {
|
|
trigger = {
|
|
has_trait = athletic
|
|
1051_skill_cap_trigger = no
|
|
}
|
|
desc = ep3_laamp_decision_event.1051.a_athletic.desc
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = travel_events.2007.a_success_tt
|
|
desc = ep3_laamp_decision_event.1051.a_athletic.desc
|
|
left_icon = root
|
|
#Increase skill
|
|
add_prowess_skill = 2
|
|
}
|
|
hidden_effect = { 1051_increment_skill_gain_effect = yes }
|
|
}
|
|
#Regular prowess
|
|
25 = {
|
|
trigger = { 1051_skill_cap_trigger = no }
|
|
desc = ep3_laamp_decision_event.1051.a.desc
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = travel_events.2032.a_learning.tt
|
|
desc = ep3_laamp_decision_event.1051.a.desc
|
|
left_icon = root
|
|
#Increase skill
|
|
add_prowess_skill = 1
|
|
}
|
|
hidden_effect = { 1051_increment_skill_gain_effect = yes }
|
|
}
|
|
#Blademaster
|
|
25 = {
|
|
trigger = {
|
|
1051_skill_cap_trigger = yes
|
|
1051_maxed_blademaster_trigger = no
|
|
}
|
|
desc = ep3_laamp_decision_event.1051.a.desc
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = travel_events.2007.a_soft_success_tt
|
|
desc = ep3_laamp_decision_event.1051.a.desc
|
|
left_icon = root
|
|
#Gain trait
|
|
if = {
|
|
limit = {
|
|
NOT = { has_trait = lifestyle_blademaster }
|
|
}
|
|
add_trait = lifestyle_blademaster
|
|
add_trait_xp = {
|
|
trait = lifestyle_blademaster
|
|
value = scope:blademaster_xp
|
|
}
|
|
}
|
|
#Or be educated
|
|
else = {
|
|
add_trait_xp = {
|
|
trait = lifestyle_blademaster
|
|
value = scope:blademaster_xp
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#... fallback.
|
|
25 = {
|
|
trigger = {
|
|
1051_skill_cap_trigger = yes
|
|
1051_maxed_blademaster_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1051.a.desc
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = travel_events.2003.b_success_tt
|
|
desc = ep3_laamp_decision_event.1051.a.desc
|
|
left_icon = root
|
|
#Gain martial lifestyle xp
|
|
add_martial_lifestyle_xp = medium_lifestyle_xp
|
|
#... and some stress relief?
|
|
stress_impact = {
|
|
base = medium_stress_impact_loss
|
|
}
|
|
}
|
|
}
|
|
#Too much joshing around
|
|
25 = {
|
|
trigger = { scope:visiting_partner ?= $TRAINER$ }
|
|
desc = ep3_laamp_decision_event.1051.c_joshing.desc
|
|
send_interface_toast = {
|
|
type = event_toast_text_neutral
|
|
title = ep3_laamp_decision_event.1051.c_joshing.t
|
|
desc = ep3_laamp_decision_event.1051.c_joshing.desc
|
|
left_icon = root
|
|
right_icon = scope:visiting_partner
|
|
}
|
|
}
|
|
#Too much joshing around
|
|
5 = {
|
|
trigger = { scope:visiting_partner ?= $TRAINER$ }
|
|
min = 5
|
|
desc = ep3_laamp_decision_event.1051.c_wounded.desc
|
|
send_interface_toast = {
|
|
type = event_toast_text_neutral
|
|
title = ep3_laamp_decision_event.1051.c_wounded.t
|
|
desc = ep3_laamp_decision_event.1051.c_wounded.desc
|
|
left_icon = root
|
|
right_icon = scope:visiting_partner
|
|
scope:visiting_partner = {
|
|
increase_wounds_effect = { REASON = training_accident }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#Set the variables and redirect us back to the Castle
|
|
1051_finished_training_effect = yes
|
|
}
|
|
|
|
scripted_effect 1051_increment_skill_gain_effect = {
|
|
#We cap the max amount of skill points gained
|
|
if = {
|
|
limit = {
|
|
NOT = { has_variable = 1051_skill_gain_variable }
|
|
}
|
|
set_variable = {
|
|
name = 1051_skill_gain_variable
|
|
value = 1
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
has_variable = 1051_skill_gain_variable
|
|
var:1051_skill_gain_variable != visit_settlement_skill_gain_cap_value
|
|
}
|
|
change_variable = {
|
|
name = 1051_skill_gain_variable
|
|
add = 1
|
|
}
|
|
}
|
|
else = {
|
|
#Nothing happens
|
|
}
|
|
}
|
|
|
|
#Set the correct variable to block off the Training option and remove the desc flavor variable
|
|
scripted_effect 1051_finished_training_effect = {
|
|
save_scope_value_as = {
|
|
name = laamp_decision_has_trained
|
|
value = flag:yes
|
|
}
|
|
#Go back to castle grounds
|
|
hidden_effect = { 1051_return_to_castle_effect = yes }
|
|
}
|
|
|
|
#Find someone who isn't saved, doesn't dislike you and is pretty martial
|
|
scripted_trigger 1051_random_martial_character_trigger = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:saved_character_check }
|
|
OR = {
|
|
martial >= average_skill_rating
|
|
prowess >= high_skill_rating
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1051_can_sparr_trigger = {
|
|
is_adult = yes
|
|
scope:visiting_partner ?= {
|
|
is_adult = yes
|
|
is_healthy = yes
|
|
martial >= high_skill_rating
|
|
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root }
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1051_skill_cap_trigger = {
|
|
has_variable = 1051_skill_gain_variable
|
|
var:1051_skill_gain_variable >= visit_settlement_skill_gain_cap_value
|
|
}
|
|
|
|
scripted_trigger 1051_maxed_blademaster_trigger = {
|
|
has_trait = lifestyle_blademaster
|
|
has_trait_xp = {
|
|
trait = lifestyle_blademaster
|
|
value = 100 #Max
|
|
}
|
|
}
|
|
|
|
#Training Grounds
|
|
ep3_laamp_decision_event.1051 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1051.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#What're they doing?
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN:
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_training
|
|
scope:training_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1051.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:training_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1051.desc_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_training }
|
|
}
|
|
desc = ep3_laamp_decision_event.1051.desc
|
|
}
|
|
}
|
|
#Martial partner outro
|
|
first_valid = {
|
|
#RETURN:
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_training
|
|
1051_can_sparr_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1051.desc_outro_return_martial_partner
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_training }
|
|
1051_can_sparr_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1051.desc_outro_martial_partner
|
|
}
|
|
}
|
|
}
|
|
theme = martial
|
|
override_sound = { reference = "event:/SFX/Events/Themes/sfx_event_theme_type_activity" }
|
|
override_background = { reference = ep2_tournament }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
triggered_animation = {
|
|
trigger = { 1051_can_sparr_trigger = yes }
|
|
animation = marshal_shield
|
|
}
|
|
animation = thinking
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
animation = marshal
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_disgruntled_moa
|
|
camera = camera_event_scheme_far_right
|
|
animation = disapproval
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = training }
|
|
#Find our potential Master of Arms (MoA) character
|
|
if = {
|
|
#Do we already have a MoA?
|
|
limit = {
|
|
NOT = { exists = scope:laamp_disgruntled_moa }
|
|
}
|
|
#Don't really care about saving this character in a list
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1051_random_martial_character_trigger = yes
|
|
has_trait = overseer
|
|
has_trait = disloyal
|
|
}
|
|
alternative_limit = {
|
|
1051_random_martial_character_trigger = yes
|
|
has_trait = overseer
|
|
}
|
|
alternative_limit = {
|
|
1051_random_martial_character_trigger = yes
|
|
has_trait = disloyal
|
|
}
|
|
alternative_limit = { 1051_random_martial_character_trigger = yes }
|
|
save_scope_as = laamp_disgruntled_moa
|
|
}
|
|
#Otherwise create a suiting candidate
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_disgruntled_moa }
|
|
}
|
|
#Create MoA to stuff in pool
|
|
create_character = {
|
|
template = new_warrior_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
trait = disloyal
|
|
gender_female_chance = root_soldier_female_chance
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_disgruntled_moa
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
scope:laamp_disgruntled_moa = {
|
|
if = {
|
|
limit = {
|
|
NOT = { has_trait = overseer }
|
|
}
|
|
random_list = {
|
|
75 = {
|
|
#No trait
|
|
}
|
|
25 = {
|
|
add_trait = overseer
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if = {
|
|
limit = { 1051_can_sparr_trigger = yes }
|
|
scope:visiting_partner ?= { save_scope_as = fighting_child }
|
|
}
|
|
}
|
|
#Save the xp trait as a static number
|
|
if = {
|
|
limit = {
|
|
NOR = {
|
|
1051_maxed_blademaster_trigger = yes
|
|
exists = scope:blademaster_xp
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = blademaster_xp
|
|
value = {
|
|
integer_range = {
|
|
min = small_lifestyle_random_xp_low
|
|
max = small_lifestyle_random_xp_mid
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#RAAAH TRAINING
|
|
option = {
|
|
name = ep3_laamp_decision_event.1051.a
|
|
trigger = {
|
|
gold >= visit_settlement_paid_training_value
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
#Cue training montage
|
|
1051_actual_training_effect = { TRAINER = scope:laamp_disgruntled_moa }
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
prowess < low_skill_rating
|
|
short_term_gold < tiny_gold_laamps_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
prowess < mediocre_skill_rating
|
|
short_term_gold < minor_gold_laamps_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
prowess < decent_skill_rating
|
|
short_term_gold < medium_gold_laamps_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
prowess < high_skill_rating
|
|
short_term_gold < major_gold_laamps_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
prowess < extremely_high_skill_rating
|
|
short_term_gold < massive_gold_laamps_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Hire the guy as Master of Arms?
|
|
option = {
|
|
name = ep3_laamp_decision_event.1051.b
|
|
trigger = {
|
|
custom_description = {
|
|
text = not_have_master_of_arms_building
|
|
OR = {
|
|
can_employ_court_position_type = master_of_arms_camp_officer
|
|
employs_court_position = master_of_arms_camp_officer
|
|
}
|
|
}
|
|
}
|
|
reason = unlocked_master_of_arms
|
|
show_as_unavailable = { always = yes }
|
|
#Pay up
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_disgruntled_moa
|
|
gold = medium_gold_laamps_value
|
|
}
|
|
hidden_effect = {
|
|
reverse_add_opinion = {
|
|
target = scope:laamp_disgruntled_moa
|
|
modifier = recruited_me_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
add_courtier = scope:laamp_disgruntled_moa
|
|
#The actual effect happens in after
|
|
show_as_tooltip = {
|
|
camp_officer_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = master_of_arms
|
|
CANDIDATE = scope:laamp_disgruntled_moa
|
|
}
|
|
}
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
save_scope_value_as = {
|
|
name = laamp_decision_has_trained
|
|
value = flag:no
|
|
}
|
|
#Go back to castle grounds
|
|
hidden_effect = { 1051_return_to_castle_effect = yes }
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < medium_gold_laamps_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
employs_court_position = master_of_arms_camp_officer
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Triggered Option: Sparr with your martial partner
|
|
option = {
|
|
name = ep3_laamp_decision_event.1051.c
|
|
trigger = { 1051_can_sparr_trigger = yes }
|
|
#This erroneously claims that the option is available because of ROOT's martial
|
|
show_unlock_reason = no
|
|
#Training? Hopefully.
|
|
1051_actual_training_effect = { TRAINER = scope:visiting_partner }
|
|
#Do some bonding
|
|
progress_towards_friend_effect = {
|
|
CHARACTER = scope:visiting_partner
|
|
REASON = friend_castle_sparring
|
|
OPINION = 15
|
|
}
|
|
ai_chance = {
|
|
base = 400
|
|
}
|
|
}
|
|
#I want to do something else
|
|
option = {
|
|
name = ep3_laamp_decision_event.1051.d
|
|
#Sets variables and returns us to castle grounds screen
|
|
1031_been_to_effect = { GUILD = training }
|
|
ai_chance = {
|
|
base = 200
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 2
|
|
}
|
|
}
|
|
}
|
|
after = {
|
|
if = {
|
|
limit = { scope:laamp_decision_has_trained ?= flag:no }
|
|
#Appoint them
|
|
if = {
|
|
limit = {
|
|
can_appoint_char_to_court_position = {
|
|
CHAR = scope:laamp_disgruntled_moa
|
|
COURT_POS = master_of_arms_camp_officer
|
|
}
|
|
}
|
|
camp_officer_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = master_of_arms
|
|
CANDIDATE = scope:laamp_disgruntled_moa
|
|
}
|
|
}
|
|
}
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:training }
|
|
}
|
|
}
|
|
|
|
|
|
#Set the correct variable to block off the Garrison option and remove the desc flavor variable
|
|
scripted_effect 1053_finished_garrison_effect = {
|
|
save_scope_as = laamp_decision_has_garrisoned
|
|
#Go back to castle grounds
|
|
hidden_effect = { 1051_return_to_castle_effect = yes }
|
|
}
|
|
|
|
#Add the guard to your camp
|
|
scripted_effect 1053_add_guard_effect = {
|
|
hidden_effect = {
|
|
reverse_add_opinion = {
|
|
target = $GUARD$
|
|
modifier = recruited_me_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
add_courtier = $GUARD$
|
|
#Go back to castle grounds
|
|
1053_finished_garrison_effect = yes
|
|
}
|
|
|
|
#Find someone who isn't saved, doesn't dislike you and is worse martial
|
|
scripted_trigger 1053_random_martial_character_trigger = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:saved_character_check }
|
|
OR = {
|
|
martial >= average_skill_rating
|
|
prowess >= average_skill_rating
|
|
}
|
|
}
|
|
|
|
#Find someone who isn't saved, doesn't dislike you and is less martial
|
|
scripted_trigger 1053_worse_martial_character_trigger = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:saved_character_check }
|
|
1033_has_interesting_skillset_trigger = no
|
|
}
|
|
|
|
#Garrison
|
|
ep3_laamp_decision_event.1053 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1053.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#What're they doing?
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN:
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_garrison
|
|
scope:garrison_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1053.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:garrison_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1053.desc_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_garrison }
|
|
}
|
|
desc = ep3_laamp_decision_event.1053.desc
|
|
}
|
|
}
|
|
}
|
|
theme = landless_adventurer
|
|
override_icon = { reference = "gfx/interface/icons/event_types/type_duty.dds" }
|
|
override_background = { reference = armory }
|
|
left_portrait = {
|
|
character = scope:1053_first_character
|
|
#PARTNER:
|
|
triggered_animation = {
|
|
trigger = { scope:1053_first_character ?= scope:visiting_partner }
|
|
animation = interested
|
|
}
|
|
#ROOT: Return
|
|
triggered_animation = {
|
|
trigger = {
|
|
scope:1053_first_character = root
|
|
exists = scope:been_to_garrison
|
|
}
|
|
animation = chess_cocky
|
|
}
|
|
#ROOT
|
|
animation = admiration
|
|
}
|
|
center_portrait = {
|
|
character = scope:laamp_talented_guard
|
|
#They're counting coins
|
|
triggered_animation = {
|
|
trigger = { scope:garrison_loc_tracker ?= 1 }
|
|
animation = steward
|
|
}
|
|
#They just won a game of cards
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:been_to_garrison
|
|
scope:garrison_loc_tracker ?= 0
|
|
}
|
|
animation = personality_dishonorable
|
|
}
|
|
animation = hero_flex
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_plain_guard
|
|
camera = camera_event_scheme_far_right
|
|
#They were just asleep
|
|
triggered_animation = {
|
|
trigger = { scope:garrison_loc_tracker ?= 1 }
|
|
animation = boredom
|
|
}
|
|
#They're tending their wounds
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:been_to_garrison
|
|
scope:garrison_loc_tracker ?= 0
|
|
}
|
|
animation = pain
|
|
}
|
|
animation = disapproval
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = garrison }
|
|
#Find our garrison guards
|
|
if = {
|
|
#Do we already have the guards?
|
|
limit = {
|
|
NOT = { exists = scope:laamp_plain_guard }
|
|
}
|
|
#Don't really care about saving this character in a list
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = { 1053_worse_martial_character_trigger = yes }
|
|
save_scope_as = laamp_plain_guard
|
|
}
|
|
#Otherwise create a suiting plain guard
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_plain_guard }
|
|
}
|
|
#Create guard character to stuff in pool
|
|
create_character = {
|
|
template = bandit_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
gender_female_chance = root_soldier_female_chance
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_plain_guard
|
|
}
|
|
}
|
|
#Set their cost
|
|
1033_set_cost_effect = { CHARACTER = scope:laamp_plain_guard VALUE_NAME = plain_guard_cost }
|
|
#Don't really care about saving this character in a list
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = { 1053_random_martial_character_trigger = yes }
|
|
save_scope_as = laamp_plain_guard
|
|
}
|
|
#Otherwise create a suiting talented guard
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_talented_guard }
|
|
}
|
|
#Create guard character to stuff in pool
|
|
create_character = {
|
|
template = new_warrior_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
gender_female_chance = root_soldier_female_chance
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_talented_guard
|
|
}
|
|
}
|
|
#Set their cost
|
|
1033_set_cost_effect = { CHARACTER = scope:laamp_talented_guard VALUE_NAME = talented_guard_cost }
|
|
}
|
|
#Set up the portrait
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1053_first_character }
|
|
}
|
|
#Partner first
|
|
if = {
|
|
limit = { exists = scope:visiting_partner }
|
|
scope:visiting_partner = { save_scope_as = 1053_first_character }
|
|
}
|
|
#Otherwise ROOT
|
|
else = { save_scope_as = 1053_first_character }
|
|
}
|
|
#For the background
|
|
scope:laamp_plain_guard = {
|
|
if = {
|
|
limit = {
|
|
is_ruler = no
|
|
exists = court_owner
|
|
}
|
|
court_owner = { save_scope_as = bg_override_char }
|
|
}
|
|
else = {
|
|
save_scope_as = bg_override_char
|
|
}
|
|
}
|
|
}
|
|
#Hey, FirstPerson, want to join us?
|
|
option = {
|
|
name = ep3_laamp_decision_event.1053.a
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_plain_guard
|
|
gold = scope:plain_guard_cost
|
|
}
|
|
#The actual adding of the guard and redirecting to castle grounds
|
|
1053_add_guard_effect = { GUARD = scope:laamp_plain_guard }
|
|
ai_chance = {
|
|
base = 200
|
|
modifier = {
|
|
short_term_gold > scope:plain_guard_cost
|
|
factor = 2
|
|
}
|
|
}
|
|
}
|
|
#How about you, more skilled SecondPerson?
|
|
option = {
|
|
name = ep3_laamp_decision_event.1053.b
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_talented_guard
|
|
gold = scope:talented_guard_cost
|
|
}
|
|
#The actual adding of the guard and redirecting to castle grounds
|
|
1053_add_guard_effect = { GUARD = scope:laamp_talented_guard }
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold > scope:talented_guard_cost
|
|
factor = 2
|
|
}
|
|
}
|
|
}
|
|
#I just wanna play some dice.
|
|
option = {
|
|
name = ep3_laamp_decision_event.1053.c
|
|
random_list = {
|
|
35 = {
|
|
desc = ep3_laamp_decision_event.1053.c.plain_wins
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1053.c.plain_wins
|
|
left_icon = root
|
|
right_icon = scope:laamp_plain_guard
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_plain_guard
|
|
gold = minor_gold_value
|
|
}
|
|
}
|
|
}
|
|
35 = {
|
|
desc = ep3_laamp_decision_event.1053.c.talented_wins
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1053.c.talented_wins
|
|
left_icon = root
|
|
right_icon = scope:laamp_talented_guard
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_talented_guard
|
|
gold = minor_gold_value
|
|
}
|
|
}
|
|
}
|
|
30 = {
|
|
desc = ep3_laamp_decision_event.1053.c.you_win
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1053.c.you_win
|
|
left_icon = root
|
|
scope:laamp_plain_guard = {
|
|
pay_short_term_gold = {
|
|
target = root
|
|
gold = minor_gold_value
|
|
}
|
|
}
|
|
scope:laamp_talented_guard = {
|
|
pay_short_term_gold = {
|
|
target = root
|
|
gold = minor_gold_value
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stress_impact = {
|
|
base = minor_stress_impact_loss
|
|
arbitrary = minor_stress_impact_loss
|
|
improvident = minor_stress_impact_loss
|
|
}
|
|
#Go back to castle grounds
|
|
1053_finished_garrison_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < minor_gold_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#I want to do something else
|
|
option = {
|
|
name = ep3_laamp_decision_event.1053.d
|
|
#Sets variables and returns us to castle grounds screen
|
|
1031_been_to_effect = { GUILD = garrison }
|
|
ai_chance = {
|
|
base = 200
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 2
|
|
}
|
|
}
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:garrison }
|
|
}
|
|
}
|
|
|
|
|
|
#Set the correct scopes, and transfer us back to main
|
|
scripted_effect 1055_finished_reinforcers_effect = {
|
|
save_scope_as = laamp_decision_has_reinforced
|
|
add_to_variable_list = {
|
|
name = 1055_reinforced_recently
|
|
target = root.location
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Go back to castle grounds
|
|
hidden_effect = { 1051_return_to_castle_effect = yes }
|
|
}
|
|
|
|
#Pretty self-explanatory
|
|
scripted_effect 1055_calculate_reinforcements_effect = {
|
|
if = {
|
|
limit = { $RESOURCE$_level >= max_$RESOURCE$_level }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1055.$RESOURCE$_full.tt
|
|
every_in_list = {
|
|
list = damaged_maa_regiments
|
|
change_maa_troops_count = replenishable_troops_value
|
|
}
|
|
}
|
|
}
|
|
# 80%
|
|
else_if = {
|
|
limit = { $RESOURCE$_level >= very_high_$RESOURCE$_level }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1055.$RESOURCE$_partial_80.tt
|
|
every_in_list = {
|
|
list = damaged_maa_regiments
|
|
change_maa_troops_count = {
|
|
value = replenishable_troops_value
|
|
multiply = 0.8
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# 60%
|
|
else_if = {
|
|
limit = { $RESOURCE$_level >= high_$RESOURCE$_level }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1055.$RESOURCE$_partial_60.tt
|
|
every_in_list = {
|
|
list = damaged_maa_regiments
|
|
change_maa_troops_count = {
|
|
value = replenishable_troops_value
|
|
multiply = 0.6
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# 40%
|
|
else_if = {
|
|
limit = { $RESOURCE$_level >= medium_$RESOURCE$_level }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1055.$RESOURCE$_partial_40.tt
|
|
every_in_list = {
|
|
list = damaged_maa_regiments
|
|
change_maa_troops_count = {
|
|
value = replenishable_troops_value
|
|
multiply = 0.4
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# 20%
|
|
else = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1055.$RESOURCE$_partial_20.tt
|
|
every_in_list = {
|
|
list = damaged_maa_regiments
|
|
change_maa_troops_count = {
|
|
value = replenishable_troops_value
|
|
multiply = 0.2
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Well, are ya, punk?
|
|
scripted_trigger 1055_is_famous_trigger = {
|
|
OR = {
|
|
AND = {
|
|
prestige_level = max_prestige_level
|
|
NOT = { has_variable = 1055_reinforced_with_prestige_recently }
|
|
}
|
|
AND = {
|
|
piety_level = max_piety_level
|
|
NOT = { has_variable = 1055_reinforced_with_piety_recently }
|
|
}
|
|
AND = {
|
|
has_trait = knight_errant
|
|
has_trait_xp = {
|
|
trait = knight_errant
|
|
value = 100 #Max XP
|
|
}
|
|
NOT = { has_variable = 1055_reinforced_with_knight_errant_recently }
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
#Reinforcers
|
|
ep3_laamp_decision_event.1055 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1055.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#What're they doing?
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: Maxed prestige or piety
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_reinforcers
|
|
1055_is_famous_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1055.desc_maxed_out_returned
|
|
}
|
|
#RETURN:
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_reinforcers
|
|
scope:reinforcers_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1055.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:reinforcers_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1055.desc_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME: Maxed prestige or piety
|
|
triggered_desc = {
|
|
trigger = { 1055_is_famous_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1055.desc_maxed_out
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_reinforcers }
|
|
}
|
|
desc = ep3_laamp_decision_event.1055.desc
|
|
}
|
|
}
|
|
}
|
|
theme = landless_adventurer
|
|
override_sound = {
|
|
trigger = { 1055_is_famous_trigger = yes }
|
|
reference = "event:/DLC/FP4/MUSIC/Stingers/mx_stinger_legends_lvl_03"
|
|
}
|
|
override_icon = { reference = "gfx/interface/icons/event_types/type_martial.dds" }
|
|
override_background = { reference = ep3_camp }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
triggered_animation = {
|
|
trigger = {
|
|
root = { 1055_is_famous_trigger = yes }
|
|
}
|
|
animation = happiness
|
|
}
|
|
animation = survey
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
#Defender
|
|
triggered_animation = {
|
|
trigger = {
|
|
has_trait = knight_errant
|
|
has_trait_xp = {
|
|
trait = knight_errant
|
|
value = 100 #Max XP
|
|
}
|
|
NOT = { has_variable = 1055_reinforced_with_knight_errant_recently }
|
|
}
|
|
animation = marshal_shield
|
|
}
|
|
#Zealous
|
|
triggered_animation = {
|
|
trigger = {
|
|
piety_level = max_piety_level
|
|
NOT = { has_variable = 1055_reinforced_with_piety_recently }
|
|
}
|
|
animation = personality_zealous
|
|
}
|
|
#Prestigious
|
|
triggered_animation = {
|
|
trigger = {
|
|
prestige_level = max_prestige_level
|
|
NOT = { has_variable = 1055_reinforced_with_prestige_recently }
|
|
}
|
|
animation = hero_flex
|
|
}
|
|
triggered_animation = {
|
|
trigger = { has_trait = greedy }
|
|
animation = thinking
|
|
}
|
|
animation = betting
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_maa_reinforcer
|
|
camera = camera_event_scheme_far_right
|
|
triggered_animation = {
|
|
trigger = {
|
|
root = { 1055_is_famous_trigger = yes }
|
|
}
|
|
animation = personality_coward
|
|
}
|
|
animation = dismissal
|
|
}
|
|
#Am I overusing this?
|
|
override_effect_2d = {
|
|
trigger = { 1055_is_famous_trigger = yes }
|
|
reference = legend_glow
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = reinforcers }
|
|
#Find a spokesperson
|
|
if = {
|
|
#Do we already have a spokesperson?
|
|
limit = {
|
|
NOT = { exists = scope:laamp_maa_reinforcer }
|
|
}
|
|
#Don't really care about saving this character in a list
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = { 1053_random_martial_character_trigger = yes }
|
|
save_scope_as = laamp_maa_reinforcer
|
|
}
|
|
#Otherwise create a spokesperson
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_plain_guard }
|
|
}
|
|
#Create spokesperson to stuff in pool
|
|
create_character = {
|
|
template = bandit_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
gender_female_chance = root_soldier_female_chance
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_maa_reinforcer
|
|
}
|
|
}
|
|
}
|
|
scope:laamp_maa_reinforcer = {
|
|
add_character_flag = {
|
|
flag = wear_armor
|
|
weeks = 1
|
|
}
|
|
}
|
|
#Run this once
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:least_damaged_maa_missing_soldiers }
|
|
}
|
|
every_maa_regiment = {
|
|
limit = { maa_current_troops_count < maa_max_troops_count }
|
|
add_to_list = damaged_maa_regiments
|
|
}
|
|
ordered_in_list = {
|
|
list = damaged_maa_regiments
|
|
order_by = {
|
|
value = replenishable_troops_value
|
|
multiply = -1
|
|
}
|
|
save_scope_value_as = {
|
|
name = least_damaged_maa_missing_soldiers
|
|
value = this.replenishable_troops_value
|
|
}
|
|
}
|
|
save_scope_value_as = {
|
|
name = num_damaged_maa_regiments
|
|
value = list_size:damaged_maa_regiments
|
|
}
|
|
}
|
|
}
|
|
#Based on Prestige level
|
|
option = {
|
|
name = ep3_laamp_decision_event.1055.a
|
|
trigger = { #This could be upgraded to diminishing returns
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1055.a.cooldown.tt
|
|
NOT = { has_variable = 1055_reinforced_with_prestige_recently }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
flavor = ep3_laamp_decision_event.1055.a.flavor
|
|
reason = prestige_level
|
|
#Basically the same as piety
|
|
1055_calculate_reinforcements_effect = { RESOURCE = prestige }
|
|
#Le cooldown
|
|
set_variable = {
|
|
name = 1055_reinforced_with_prestige_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Checkmark and block off the option
|
|
1055_finished_reinforcers_effect = yes
|
|
ai_chance = {
|
|
base = 200
|
|
}
|
|
}
|
|
#Based on Piety level
|
|
option = {
|
|
name = ep3_laamp_decision_event.1055.b
|
|
trigger = {
|
|
piety_level >= low_piety_level
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
flavor = ep3_laamp_decision_event.1055.b.flavor
|
|
reason = piety_level
|
|
#Basically the same as prestige
|
|
1055_calculate_reinforcements_effect = { RESOURCE = piety }
|
|
#Le cooldown
|
|
set_variable = {
|
|
name = 1055_reinforced_with_piety_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Checkmark and block off the option
|
|
1055_finished_reinforcers_effect = yes
|
|
ai_chance = {
|
|
base = 200
|
|
}
|
|
}
|
|
#Scrounging for desperate soldiers with lower cost Provisions
|
|
option = {
|
|
name = ep3_laamp_decision_event.1055.c
|
|
trigger = {
|
|
domicile ?= { provisions >= scope:least_damaged_maa_missing_soldiers }
|
|
}
|
|
#Pick a random MaA to reinforce, fully
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1055.c.tt
|
|
random_in_list = {
|
|
list = damaged_maa_regiments
|
|
change_maa_troops_count = replenishable_troops_value
|
|
}
|
|
}
|
|
#For a cheaper sandwich
|
|
domicile ?= {
|
|
change_provisions = {
|
|
subtract = scope:least_damaged_maa_missing_soldiers
|
|
divide = visit_settlement_provision_refill_value
|
|
}
|
|
}
|
|
#No cooldown. For now.
|
|
#Checkmark and block off the option
|
|
1055_finished_reinforcers_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
domicile ?= { provisions < sixty_percent_provisions_value }
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#I am a Knight-Errant, you _fool_! Bask in my righteousness.
|
|
option = {
|
|
name = ep3_laamp_decision_event.1055.d
|
|
trigger = {
|
|
has_trait = knight_errant
|
|
has_trait_xp = {
|
|
trait = knight_errant
|
|
value = 100 #Max XP
|
|
}
|
|
NOT = { has_variable = 1055_reinforced_with_knight_errant_recently }
|
|
}
|
|
show_as_unavailable = { has_variable = 1055_reinforced_with_knight_errant_recently }
|
|
flavor = ep3_laamp_decision_event.1055.d.flavor
|
|
reason = knight_errant
|
|
#You're just that _good_
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1055.d.tt
|
|
every_in_list = {
|
|
list = damaged_maa_regiments
|
|
change_maa_troops_count = replenishable_troops_value
|
|
}
|
|
}
|
|
#Le cooldown
|
|
set_variable = {
|
|
name = 1055_reinforced_with_knight_errant_recently
|
|
days = visit_settlement_minimum_cooldown_days
|
|
}
|
|
#Checkmark and block off the option
|
|
1055_finished_reinforcers_effect = yes
|
|
ai_chance = {
|
|
base = 1000 #Just do it
|
|
}
|
|
}
|
|
#I want to do something else
|
|
option = {
|
|
name = ep3_laamp_decision_event.1055.e
|
|
#Sets variables and returns us to castle grounds screen
|
|
1031_been_to_effect = { GUILD = reinforcers }
|
|
ai_chance = { base = 200 }
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:reinforcers }
|
|
}
|
|
}
|
|
|
|
#Hire the Bodyguard, show/set the effects and variables
|
|
scripted_effect 1057_hire_bodyguard_effect = {
|
|
hidden_effect = {
|
|
reverse_add_opinion = {
|
|
target = scope:laamp_bodyguard_recruit
|
|
modifier = recruited_me_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
add_courtier = scope:laamp_bodyguard_recruit
|
|
#The actual effect happens in after
|
|
show_as_tooltip = {
|
|
court_position_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = bodyguard
|
|
CANDIDATE = scope:laamp_bodyguard_recruit
|
|
}
|
|
}
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
save_scope_value_as = {
|
|
name = laamp_decision_recruited_bodyguard
|
|
value = flag:yes
|
|
}
|
|
#Go back to castle grounds
|
|
hidden_effect = { 1051_return_to_castle_effect = yes }
|
|
}
|
|
|
|
|
|
#Visit Bodyguard
|
|
ep3_laamp_decision_event.1057 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1057.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#What're they doing?
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN:
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_bodyguard
|
|
scope:bodyguard_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1057.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:bodyguard_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1057.desc_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:bodyguard_loc_tracker ?= 2 }
|
|
desc = ep3_laamp_decision_event.1057.desc_returned_03
|
|
}
|
|
}
|
|
#FIRST TIME: We've seen this bodyguard before
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_bodyguard
|
|
NOT = { exists = scope:been_to_bodyguard }
|
|
}
|
|
desc = ep3_laamp_decision_event.1057.desc_reused_bodyguard
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_bodyguard }
|
|
}
|
|
desc = ep3_laamp_decision_event.1057.desc
|
|
}
|
|
}
|
|
}
|
|
theme = landless_adventurer
|
|
override_sound = { reference = "event:/MUSIC/Cues/Events/Positive/mx_cue_postive_effect" }
|
|
override_background = { reference = alley_day }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#Slicing up carcasses
|
|
triggered_animation = {
|
|
trigger = { scope:bodyguard_loc_tracker ?= 1 }
|
|
animation = disbelief
|
|
}
|
|
animation = worry
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
camera = camera_event_scheme_vs_extra_right_look_right
|
|
#Slicing up carcasses
|
|
triggered_animation = {
|
|
trigger = { scope:bodyguard_loc_tracker ?= 1 }
|
|
animation = fear
|
|
}
|
|
#Literal *flex*
|
|
triggered_animation = {
|
|
trigger = {
|
|
OR = {
|
|
has_trait = gallant
|
|
prowess > high_skill_rating
|
|
}
|
|
}
|
|
animation = hero_flex
|
|
}
|
|
animation = flirtation
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_bodyguard_recruit
|
|
camera = camera_event_scheme_far_right
|
|
#Still angry
|
|
triggered_animation = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_bodyguard }
|
|
}
|
|
animation = rage
|
|
}
|
|
#Had a pleasant conversation prior to interaction
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:been_to_bodyguard
|
|
scope:bodyguard_loc_tracker ?= 0
|
|
}
|
|
animation = personality_compassionate
|
|
}
|
|
#Slicing up carcasses
|
|
triggered_animation = {
|
|
trigger = { scope:bodyguard_loc_tracker ?= 1 }
|
|
animation = hunting_knife_start
|
|
}
|
|
#State of life
|
|
animation = disappointed
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Run this once: Re-save the portrait so the Bodyguard is not the 1050_third_character (since they narratively moved to the alley)
|
|
if = {
|
|
limit = { scope:1050_third_character = scope:laamp_bodyguard_recruit }
|
|
#Overwrite with ROOT to block off the portrait
|
|
save_scope_as = 1050_third_character
|
|
#Remember the bodyguard
|
|
1010_remember_vendor_character_effect = { GUILD = bodyguard CHARACTER = scope:laamp_bodyguard_recruit }
|
|
}
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_hub_loc_tracker_scope_effect = { HUB = bodyguard }
|
|
}
|
|
#Pay gold
|
|
option = {
|
|
name = ep3_laamp_decision_event.1057.a
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_bodyguard_recruit
|
|
gold = minor_gold_value
|
|
}
|
|
#Wrap effect to hire 'em, set scope & return to castle
|
|
1057_hire_bodyguard_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < minor_gold_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
OR = {
|
|
prowess > high_skill_rating
|
|
has_trait = gallant
|
|
}
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Flex Prowess
|
|
option = {
|
|
name = ep3_laamp_decision_event.1057.b
|
|
trigger = {
|
|
prowess > high_skill_rating
|
|
NOT = { has_trait = gallant }
|
|
}
|
|
#Wrap effect to hire 'em, set scope & return to castle
|
|
1057_hire_bodyguard_effect = yes
|
|
ai_chance = {
|
|
base = 1000 #Just do it
|
|
}
|
|
}
|
|
#Diplomacy duel
|
|
option = {
|
|
name = ep3_laamp_decision_event.1057.c
|
|
duel = {
|
|
skill = diplomacy
|
|
value = average_skill_rating
|
|
#Success: Hire 'em up
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
modifier = {
|
|
OR = {
|
|
has_trait = overseer
|
|
has_trait = strategist
|
|
}
|
|
factor = 2
|
|
}
|
|
desc = ep3_laamp_decision_event.1057.c.success
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1057.c.success
|
|
left_icon = root
|
|
right_icon = scope:laamp_bodyguard_recruit
|
|
#Yippee!
|
|
1057_hire_bodyguard_effect = yes
|
|
}
|
|
}
|
|
#Failure: Bye, now
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -20
|
|
}
|
|
modifier = {
|
|
has_trait = zealous
|
|
factor = 0.5
|
|
}
|
|
desc = ep3_laamp_decision_event.1057.c.failure
|
|
send_interface_toast = {
|
|
type = event_toast_text_bad
|
|
title = ep3_laamp_decision_event.1057.c.failure
|
|
desc = ep3_laamp_decision_event.1057.c.failure.tt
|
|
left_icon = root
|
|
right_icon = scope:laamp_bodyguard_recruit
|
|
#Oh well
|
|
custom_tooltip = ep3_laamp_decision_event.1057.c.failure.tt
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
save_scope_value_as = {
|
|
name = laamp_decision_recruited_bodyguard
|
|
value = flag:no
|
|
}
|
|
1051_return_to_castle_effect = yes
|
|
}
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
OR = {
|
|
prowess > high_skill_rating
|
|
has_trait = gallant
|
|
}
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Triggered Option: Gallant-flex them
|
|
option = {
|
|
name = ep3_laamp_decision_event.1057.d
|
|
trigger = { has_trait = gallant }
|
|
show_as_unavailable = { always = yes }
|
|
reason = gallant
|
|
#Have a cherry on top
|
|
scope:laamp_bodyguard_recruit = {
|
|
hidden_effect = {
|
|
if = {
|
|
limit = { has_trait = disloyal }
|
|
remove_trait = disloyal
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { has_trait = loyal }
|
|
}
|
|
add_trait = loyal
|
|
}
|
|
}
|
|
#Wrap effect to hire 'em, set scope & return to castle
|
|
1057_hire_bodyguard_effect = yes
|
|
ai_chance = {
|
|
base = 1000 #Just do it
|
|
}
|
|
}
|
|
#I want to do something else
|
|
option = {
|
|
name = ep3_laamp_decision_event.1057.e
|
|
#Saves scopes and returns us to castle grounds screen
|
|
1031_been_to_effect = { GUILD = bodyguard }
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
OR = {
|
|
has_trait = greedy
|
|
has_trait = paranoid
|
|
}
|
|
add = 300
|
|
}
|
|
}
|
|
}
|
|
after = {
|
|
if = {
|
|
limit = { scope:laamp_decision_recruited_bodyguard ?= flag:yes }
|
|
#Appoint them
|
|
if = {
|
|
limit = {
|
|
can_appoint_char_to_court_position = {
|
|
CHAR = scope:laamp_bodyguard_recruit
|
|
COURT_POS = bodyguard_court_position
|
|
}
|
|
}
|
|
court_position_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = bodyguard
|
|
CANDIDATE = scope:laamp_bodyguard_recruit
|
|
}
|
|
}
|
|
}
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:bodyguard }
|
|
}
|
|
}
|
|
|
|
|
|
######################################################################
|
|
# CRAFTSMEN
|
|
# ep3_laamp_decision_event.1060
|
|
######################################################################
|
|
|
|
#Set the correct variable to block off the Craftsmen option and remove the desc flavor variable
|
|
scripted_effect 1060_finished_craftsmen_effect = {
|
|
remove_list_variable = {
|
|
name = list_of_options
|
|
target = flag:has_craftsman_option
|
|
}
|
|
save_scope_as = laamp_decision_finished_craftsmen_option
|
|
}
|
|
|
|
#Nothing left for us to do
|
|
scripted_trigger 1060_done_with_craftsmen_trigger = {
|
|
exists = scope:laamp_decision_bought_weapon
|
|
exists = scope:laamp_decision_bought_armor
|
|
exists = scope:laamp_decision_bought_accessory
|
|
trigger_if = {
|
|
limit = { exists = scope:laamp_quartermaster_recruit }
|
|
exists = scope:laamp_decision_recruited_quartermaster
|
|
}
|
|
}
|
|
|
|
scripted_trigger 1060_is_quartermaster_available_trigger = {
|
|
#They exist
|
|
exists = scope:laamp_quartermaster_recruit
|
|
#We've been there
|
|
exists = scope:been_to_quartermaster
|
|
#But we're not done with 'em
|
|
NOT = { exists = scope:laamp_decision_recruited_quartermaster }
|
|
}
|
|
|
|
|
|
#City Holding: Visit the local city craftsmen
|
|
ep3_laamp_decision_event.1060 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1060.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
#Intro
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: We've returned from Main Square
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:main_square
|
|
exists = scope:been_to_craftsmen
|
|
OR = {
|
|
scope:craftsmen_loc_tracker ?= 0
|
|
scope:craftsmen_loc_tracker ?= 2
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
var:return_from_location ?= flag:main_square
|
|
scope:craftsmen_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc_returned_02
|
|
}
|
|
}
|
|
#RETURN: We've returned from the Weaponsmith
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:weaponsmith }
|
|
desc = ep3_laamp_decision_event.1060.desc_returned_from_weaponsmith
|
|
}
|
|
#RETURN: We've returned from the Armorer
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:armorer }
|
|
desc = ep3_laamp_decision_event.1060.desc_returned_from_armorer
|
|
}
|
|
#RETURN: We've returned from the Jeweler
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:jeweler }
|
|
desc = ep3_laamp_decision_event.1060.desc_returned_from_jeweler
|
|
}
|
|
#RETURN: We've returned from the Quartermaster
|
|
triggered_desc = {
|
|
trigger = { var:return_from_location ?= flag:quartermaster }
|
|
desc = ep3_laamp_decision_event.1060.desc_returned_from_quartermaster
|
|
}
|
|
#FIRST TIME: First time here
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_craftsmen }
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc
|
|
}
|
|
}
|
|
#Outro
|
|
first_valid = {
|
|
#FIRST TIME: First time here, look at the quartermaster
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_quartermaster_recruit
|
|
NOT = { exists = scope:been_to_craftsmen }
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc_outro_quartermaster
|
|
}
|
|
#FIRST TIME: First time here, curious partner
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
NOT = { exists = scope:been_to_craftsmen }
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc_outro_partner
|
|
}
|
|
#FIRST TIME: First time here
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_craftsmen }
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc_outro
|
|
}
|
|
#RETURN: Partner - there is nothing left for us here
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
1060_done_with_craftsmen_trigger = yes
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc_outro_return_partner_finished
|
|
}
|
|
#RETURN: There is nothing left for us here
|
|
triggered_desc = {
|
|
trigger = { 1060_done_with_craftsmen_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1060.desc_outro_return_finished
|
|
}
|
|
#RETURN: Quartermaster did not move to the tavern, yet
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_quartermaster_recruit
|
|
NOR = {
|
|
exists = scope:been_to_quartermaster
|
|
exists = scope:laamp_decision_recruited_quartermaster
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc_outro_quartermaster_return
|
|
}
|
|
#RETURN: We've been here before
|
|
random_valid = {
|
|
#RETURN: Partner flavor
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
exists = scope:been_to_craftsmen
|
|
scope:craftsmen_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc_outro_return_partner_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
scope:craftsmen_loc_tracker ?= 1
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc_outro_return_partner_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:visiting_partner
|
|
scope:craftsmen_loc_tracker ?= 2
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc_outro_return_partner_03
|
|
}
|
|
#RETURN: Generics
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_craftsmen
|
|
scope:craftsmen_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1060.desc_outro_return_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:craftsmen_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1060.desc_outro_return_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:craftsmen_loc_tracker ?= 2 }
|
|
desc = ep3_laamp_decision_event.1060.desc_outro_return_03
|
|
}
|
|
}
|
|
}
|
|
}
|
|
theme = stewardship
|
|
#Get outta here already
|
|
override_effect_2d = {
|
|
trigger = {
|
|
1060_done_with_craftsmen_trigger = yes
|
|
scope:visiting_location = { is_drylands_or_desert_trigger = no }
|
|
}
|
|
reference = rain
|
|
}
|
|
override_background = { reference = market }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#If it's our (tired) visiting partner
|
|
triggered_animation = {
|
|
trigger = { 1060_done_with_craftsmen_trigger = yes }
|
|
animation = boredom
|
|
}
|
|
#If it's our visiting partner
|
|
animation = survey
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = { has_trait = greedy }
|
|
animation = stress
|
|
}
|
|
animation = personality_forgiving
|
|
}
|
|
#Do we have someone to display?
|
|
right_portrait = {
|
|
trigger = {
|
|
exists = scope:1060_third_character
|
|
#If this is root, then that means we have talked to the Quartermaster so let's disappear the portrait
|
|
scope:1060_third_character != root
|
|
}
|
|
character = scope:1060_third_character
|
|
#Le Quartermaster
|
|
animation = eyeroll
|
|
}
|
|
#The craftsmen
|
|
lower_left_portrait = {
|
|
#Let's remove them when the option is no longer available
|
|
trigger = {
|
|
scope:1060_fourth_character != root
|
|
}
|
|
character = scope:1060_fourth_character
|
|
}
|
|
lower_center_portrait = {
|
|
#Let's remove them when the option is no longer available
|
|
trigger = {
|
|
scope:1060_fifth_character != root
|
|
}
|
|
character = scope:1060_fifth_character
|
|
}
|
|
lower_right_portrait = {
|
|
#Let's remove them when the option is no longer available
|
|
trigger = {
|
|
scope:1060_sixth_character != root
|
|
}
|
|
character = scope:1060_sixth_character
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_hub_loc_tracker_scope_effect = { HUB = craftsmen }
|
|
#Find our weaponsmith
|
|
if = {
|
|
#Do we already have a weaponsmith?
|
|
limit = {
|
|
NOT = { exists = scope:laamp_weaponsmith_craftsman }
|
|
}
|
|
#Has this person been our weaponsmith in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_weaponsmith_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
}
|
|
save_scope_as = laamp_weaponsmith_craftsman
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_weaponsmith_craftsman
|
|
}
|
|
#Otherwise find a weaponsmith in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_weaponsmith_craftsman }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
}
|
|
save_scope_as = laamp_weaponsmith_craftsman
|
|
}
|
|
}
|
|
#Otherwise create a weaponsmith
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_weaponsmith_craftsman }
|
|
}
|
|
#Create weaponsmith to stuff in pool
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_weaponsmith_craftsman
|
|
}
|
|
}
|
|
scope:laamp_weaponsmith_craftsman = { save_scope_as = 1060_fourth_character }
|
|
}
|
|
#And our armorer
|
|
if = {
|
|
#Do we already have an armorer?
|
|
limit = {
|
|
NOT = { exists = scope:laamp_armorer_craftsman }
|
|
}
|
|
#Has this person been our armorer in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_armorer_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
}
|
|
save_scope_as = laamp_armorer_craftsman
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_armorer_craftsman
|
|
}
|
|
#Otherwise find an armorer in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_armorer_craftsman }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
}
|
|
save_scope_as = laamp_armorer_craftsman
|
|
}
|
|
}
|
|
#Otherwise create an armorer
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_armorer_craftsman }
|
|
}
|
|
#Create armorer to stuff in pool
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_armorer_craftsman
|
|
}
|
|
}
|
|
scope:laamp_armorer_craftsman = { save_scope_as = 1060_fifth_character }
|
|
}
|
|
#And finally, our jeweler
|
|
if = {
|
|
#Do we already have a jeweler?
|
|
limit = {
|
|
NOT = { exists = scope:laamp_jeweler_craftsman }
|
|
}
|
|
#Has this person been our jeweler in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_jeweler_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_quartermaster_trigger = no
|
|
}
|
|
save_scope_as = laamp_jeweler_craftsman
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_jeweler_craftsman
|
|
}
|
|
#Otherwise find a jeweler in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_jeweler_craftsman }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
}
|
|
save_scope_as = laamp_jeweler_craftsman
|
|
}
|
|
}
|
|
#Otherwise create a jeweler
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_jeweler_craftsman }
|
|
}
|
|
#Create jeweler to stuff in pool
|
|
create_character = {
|
|
template = generic_peasant_character
|
|
location = scope:visiting_location
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
save_scope_as = laamp_jeweler_craftsman
|
|
}
|
|
}
|
|
scope:laamp_jeweler_craftsman = { save_scope_as = 1060_sixth_character }
|
|
}
|
|
#Rare: Spawn a spectacular Quartermaster
|
|
if = {
|
|
limit = {
|
|
can_employ_court_position_type = quartermaster_camp_officer
|
|
NOT = { has_variable = laamp_decision_1000_checked_for_quartermaster }
|
|
}
|
|
random_list = {
|
|
80 = {
|
|
#No Quartermaster
|
|
}
|
|
20 = {
|
|
trigger = { can_employ_court_position_type = quartermaster_camp_officer }
|
|
#Has this person been our quartermaster in the past 10 years?
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
save_temporary_scope_as = saved_character_check
|
|
#Let's avoid double-dipping
|
|
1010_is_a_saved_quartermaster_trigger = yes
|
|
1010_is_a_saved_merchant_trigger = no
|
|
1010_is_a_saved_peddler_trigger = no
|
|
1010_is_a_saved_crier_trigger = no
|
|
1010_is_a_saved_storyteller_trigger = no
|
|
1010_is_a_saved_thief_trigger = no
|
|
1010_is_a_saved_healer_trigger = no
|
|
1010_is_a_saved_clergy_trigger = no
|
|
1010_is_a_saved_physician_trigger = no
|
|
1010_is_a_saved_bodyguard_trigger = no
|
|
1010_is_a_saved_weaponsmith_trigger = no
|
|
1010_is_a_saved_armorer_trigger = no
|
|
1010_is_a_saved_jeweler_trigger = no
|
|
}
|
|
save_scope_as = laamp_quartermaster_recruit
|
|
#Some more loc flavor shenanigans for these saved scopes
|
|
save_scope_as = laamp_recurring_quartermaster
|
|
}
|
|
#Otherwise find a quartermaster in the pool
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_quartermaster_recruit }
|
|
}
|
|
random_pool_character = {
|
|
province = scope:visiting_location
|
|
limit = {
|
|
1010_basic_merchant_checks_trigger = yes
|
|
NOT = { has_trait = devoted } #Look, I like weaponsmith nuns as much as the next person, but it looked _slightly_ off
|
|
stewardship >= 15
|
|
NOR = {
|
|
has_trait = generous
|
|
has_trait = profligate
|
|
has_trait = improvident
|
|
}
|
|
}
|
|
save_scope_as = laamp_quartermaster_recruit
|
|
}
|
|
}
|
|
#Or create a quartermaster
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:laamp_quartermaster_recruit }
|
|
}
|
|
#Create quartermaster to stuff in pool
|
|
create_character = {
|
|
template = bp1_yearly_2021_stewardship_person_template
|
|
location = scope:visiting_location
|
|
trait = arrogant
|
|
dynasty = none
|
|
culture = scope:visiting_location.culture
|
|
faith = scope:visiting_location.faith
|
|
stewardship = { decent_skill_rating high_skill_rating }
|
|
save_scope_as = laamp_quartermaster_recruit
|
|
}
|
|
scope:laamp_quartermaster_recruit ?= {
|
|
#Chance to add a malus trait to this spectatular being
|
|
if = {
|
|
limit = {
|
|
NOR = {
|
|
has_trait = possessed_1
|
|
has_trait = lunatic_1
|
|
has_trait = depressed_1
|
|
has_trait = drunkard
|
|
has_trait = hashishiyah
|
|
has_trait = irritable
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
random = {
|
|
chance = 20
|
|
random_list = {
|
|
10 = { add_trait = possessed_1 }
|
|
10 = { add_trait = lunatic_1 }
|
|
10 = { add_trait = depressed_1 }
|
|
10 = { add_trait = drunkard }
|
|
10 = { add_trait = hashishiyah }
|
|
10 = { add_trait = irritable }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
scope:laamp_quartermaster_recruit = { save_scope_as = 1060_third_character }
|
|
}
|
|
}
|
|
#No decision-scumming
|
|
set_variable = {
|
|
name = laamp_decision_1000_checked_for_quartermaster
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
#Fourth portrait
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
#If we've already finished off the Weaponsmith
|
|
AND = {
|
|
scope:1060_fourth_character = scope:laamp_weaponsmith_craftsman
|
|
exists = scope:laamp_decision_bought_weapon
|
|
}
|
|
#And we did that before talking to the Quartermaster
|
|
AND = {
|
|
1060_is_quartermaster_available_trigger = yes
|
|
scope:1060_fourth_character = root
|
|
}
|
|
}
|
|
}
|
|
#Put the Quartermaster in the slot, if they exist
|
|
if = {
|
|
limit = { 1060_is_quartermaster_available_trigger = yes }
|
|
scope:laamp_quartermaster_recruit = { save_scope_as = 1060_fourth_character }
|
|
#Hide the portrait with ROOT if they already are saved somewhere else
|
|
if = {
|
|
limit = { scope:1060_fifth_character ?= scope:laamp_quartermaster_recruit }
|
|
save_scope_as = 1060_fifth_character
|
|
}
|
|
#Hide the portrait with ROOT if they already are saved somewhere else
|
|
if = {
|
|
limit = { scope:1060_sixth_character ?= scope:laamp_quartermaster_recruit }
|
|
save_scope_as = 1060_sixth_character
|
|
}
|
|
}
|
|
#Otherwise hide the portrait with ROOT
|
|
else = { save_scope_as = 1060_fourth_character }
|
|
}
|
|
#Fifth portrait
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
#If we've already finished off the Armorer
|
|
AND = {
|
|
scope:1060_fifth_character = scope:laamp_armorer_craftsman
|
|
exists = scope:laamp_decision_bought_armor
|
|
}
|
|
#And we did that before talking to the Quartermaster
|
|
AND = {
|
|
1060_is_quartermaster_available_trigger = yes
|
|
scope:1060_fifth_character = root
|
|
}
|
|
}
|
|
}
|
|
#Put the Quartermaster in the slot, if they exist
|
|
if = {
|
|
limit = {
|
|
1060_is_quartermaster_available_trigger = yes
|
|
NOR = {
|
|
scope:1060_fourth_character ?= scope:laamp_quartermaster_recruit
|
|
scope:1060_sixth_character ?= scope:laamp_quartermaster_recruit
|
|
}
|
|
}
|
|
scope:laamp_quartermaster_recruit = { save_scope_as = 1060_fifth_character }
|
|
}
|
|
#Otherwise hide the portrait with ROOT
|
|
else = { save_scope_as = 1060_fifth_character }
|
|
}
|
|
#Sixth portrait
|
|
if = {
|
|
limit = {
|
|
OR = {
|
|
#If we've already finished off the Jeweler
|
|
AND = {
|
|
scope:1060_sixth_character = scope:laamp_jeweler_craftsman
|
|
exists = scope:laamp_decision_bought_accessory
|
|
}
|
|
#And we did that before talking to the Quartermaster
|
|
AND = {
|
|
1060_is_quartermaster_available_trigger = yes
|
|
scope:1060_sixth_character = root
|
|
}
|
|
}
|
|
}
|
|
#Put the Quartermaster in the slot, if they exist
|
|
if = {
|
|
limit = {
|
|
1060_is_quartermaster_available_trigger = yes
|
|
NOR = {
|
|
scope:1060_fourth_character ?= scope:laamp_quartermaster_recruit
|
|
scope:1060_fifth_character ?= scope:laamp_quartermaster_recruit
|
|
}
|
|
}
|
|
scope:laamp_quartermaster_recruit = { save_scope_as = 1060_sixth_character }
|
|
}
|
|
#Otherwise hide the portrait with ROOT
|
|
else = { save_scope_as = 1060_sixth_character }
|
|
}
|
|
}
|
|
#Visit Weaponsmith
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to look at the weapons
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_weaponsmith }
|
|
desc = ep3_laamp_decision_event.1060.a_second
|
|
}
|
|
#First time looking at weapons
|
|
desc = ep3_laamp_decision_event.1060.a
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1060.a.cooldown.tt
|
|
NOT = { exists = scope:laamp_decision_bought_weapon }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = visit_weaponsmith
|
|
highlight_portrait = scope:laamp_weaponsmith_craftsman
|
|
custom_tooltip = ep3_laamp_decision_event.1060.a.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = craftsmen }
|
|
#Go to the Weaponsmith screen
|
|
trigger_event = ep3_laamp_decision_event.1061
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Visit Armorer
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to look at the armor
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_armorer }
|
|
desc = ep3_laamp_decision_event.1060.b_second
|
|
}
|
|
#First time looking at armor
|
|
desc = ep3_laamp_decision_event.1060.b
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
#Recruited the armorer
|
|
trigger_if = {
|
|
limit = { scope:laamp_decision_bought_armor ?= flag:no }
|
|
custom_tooltip = {
|
|
text = recruited_armorer.tt
|
|
always = no
|
|
}
|
|
}
|
|
#Been there, done that
|
|
trigger_else_if = {
|
|
limit = { scope:laamp_decision_bought_armor ?= flag:yes }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1060.b.cooldown.tt
|
|
always = no
|
|
}
|
|
}
|
|
trigger_else = { exists = scope:laamp_armorer_craftsman }
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = visit_armorsmith
|
|
highlight_portrait = scope:laamp_armorer_craftsman
|
|
custom_tooltip = ep3_laamp_decision_event.1060.b.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = craftsmen }
|
|
#Go to the Armorer screen
|
|
trigger_event = ep3_laamp_decision_event.1063
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Visit Jeweler
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to look at the accessories
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_jeweler }
|
|
desc = ep3_laamp_decision_event.1060.c_second
|
|
}
|
|
#First time looking at accessories
|
|
desc = ep3_laamp_decision_event.1060.c
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1060.c.cooldown.tt
|
|
NOT = { exists = scope:laamp_decision_bought_accessory }
|
|
}
|
|
}
|
|
show_as_unavailable = { always = yes }
|
|
reason = visit_jeweler
|
|
highlight_portrait = scope:laamp_jeweler_craftsman
|
|
custom_tooltip = ep3_laamp_decision_event.1060.c.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = craftsmen }
|
|
#Go to the Jeweler screen
|
|
trigger_event = ep3_laamp_decision_event.1065
|
|
ai_chance = { base = 100 }
|
|
}
|
|
#Rare Option: Hire cheaper, skilled, Quartermaster
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Return to talk to the Quartermaster
|
|
triggered_desc = {
|
|
trigger = { exists = scope:been_to_quartermaster }
|
|
desc = ep3_laamp_decision_event.1060.d_second
|
|
}
|
|
#First time talking to the Quartermaster
|
|
desc = ep3_laamp_decision_event.1060.d
|
|
}
|
|
}
|
|
}
|
|
trigger = {
|
|
exists = scope:laamp_quartermaster_recruit
|
|
NOT = { exists = scope:laamp_decision_recruited_quartermaster }
|
|
}
|
|
reason = unlocked_quartermaster
|
|
highlight_portrait = scope:laamp_quartermaster_recruit
|
|
custom_tooltip = ep3_laamp_decision_event.1060.d.tt
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = craftsmen }
|
|
#For the Quartermaster screen
|
|
trigger_event = ep3_laamp_decision_event.1067
|
|
ai_chance = { base = 500 }
|
|
}
|
|
#I want to do something else
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
#Nothing left to do
|
|
triggered_desc = {
|
|
trigger = { 1060_done_with_craftsmen_trigger = yes }
|
|
desc = ep3_laamp_decision_event.1060.e_second
|
|
}
|
|
#Back to main square
|
|
desc = ep3_laamp_decision_event.1060.e
|
|
}
|
|
}
|
|
}
|
|
#Have we done everything? Are we closing off the option?
|
|
if = {
|
|
limit = { 1060_done_with_craftsmen_trigger = yes }
|
|
#Clean up unnecessary variables and close off the option
|
|
1060_finished_craftsmen_effect = yes
|
|
}
|
|
#*Withered* - This needs to be done manually because the scope isn't saved before the next event is triggered if it's run in After = { ... }
|
|
1030_save_hub_scope_effect = { HUB = craftsmen }
|
|
#Go back to the main event
|
|
1000_return_to_main_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
OR = {
|
|
has_trait = greedy
|
|
has_trait = paranoid
|
|
}
|
|
add = 300
|
|
}
|
|
}
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:craftsmen }
|
|
}
|
|
}
|
|
|
|
|
|
#Identify the weapon artifacts
|
|
scripted_effect 1061_set_weapon_variable_effect = {
|
|
set_variable = {
|
|
name = 1061_laamp_decision_weapon
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
|
|
#Simple enough
|
|
scripted_trigger 1061_is_rare_item_trigger = {
|
|
OR = {
|
|
rarity = masterwork
|
|
rarity = famed
|
|
rarity = illustrious
|
|
}
|
|
}
|
|
|
|
#Chance to flush the inventory to simulate someone else buying the item or similar. Refresh the stock.
|
|
scripted_effect 1061_chance_to_flush_inventory_effect = {
|
|
hidden_effect = {
|
|
random_list = {
|
|
#We didn't buy this one
|
|
50 = {
|
|
trigger = {
|
|
$FIRST_ITEM$ = { artifact_owner = $VENDOR$ }
|
|
}
|
|
#Less chance to destroy premium stuff
|
|
modifier = {
|
|
$FIRST_ITEM$ = { 1061_is_rare_item_trigger = yes }
|
|
factor = 0.5
|
|
}
|
|
destroy_artifact = $FIRST_ITEM$
|
|
}
|
|
#Or this one
|
|
50 = {
|
|
trigger = {
|
|
$SECOND_ITEM$ = { artifact_owner = $VENDOR$ }
|
|
}
|
|
#Less chance to destroy premium stuff
|
|
modifier = {
|
|
$SECOND_ITEM$ = { 1061_is_rare_item_trigger = yes }
|
|
factor = 0.5
|
|
}
|
|
destroy_artifact = $SECOND_ITEM$
|
|
}
|
|
#Nor this one?
|
|
50 = {
|
|
trigger = {
|
|
$THIRD_ITEM$ = { artifact_owner = $VENDOR$ }
|
|
}
|
|
#Less chance to destroy premium stuff
|
|
modifier = {
|
|
$THIRD_ITEM$ = { 1061_is_rare_item_trigger = yes }
|
|
factor = 0.5
|
|
}
|
|
destroy_artifact = $THIRD_ITEM$
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Chance for the vendor to have a real gem, once in a while
|
|
scripted_effect 1061_buff_item_modifiers_effect = {
|
|
#Masterwork modifiers
|
|
if = {
|
|
limit = { rarity = masterwork }
|
|
if = {
|
|
limit = { has_variable = 1061_laamp_decision_weapon }
|
|
add_scaled_artifact_modifier_prowess_effect = yes
|
|
add_scaled_artifact_modifier_combat_effect = yes
|
|
}
|
|
if = {
|
|
limit = { has_variable = 1063_laamp_decision_armor }
|
|
add_scaled_artifact_modifier_negate_prowess_penalty_effect = yes
|
|
add_scaled_artifact_modifier_terrain_advantage_effect = yes
|
|
}
|
|
if = {
|
|
limit = { has_variable = 1065_laamp_decision_accessory }
|
|
add_scaled_artifact_modifier_hire_mercenary_effect = yes
|
|
add_scaled_artifact_modifier_prestige_effect = yes
|
|
}
|
|
}
|
|
}
|
|
|
|
#We return to the craftsmen event to peruse other options
|
|
scripted_effect 1061_return_to_craftsmen_effect = {
|
|
custom_tooltip = ep3_laamp_decision_event.1061.return.tt
|
|
trigger_event = ep3_laamp_decision_event.1060
|
|
}
|
|
|
|
#Set the correct variable to block off the Weaponsmith option and remove the desc flavor variable
|
|
scripted_effect 1061_bought_weapon_effect = {
|
|
scope:1061_first_weapon = { remove_variable ?= 1061_weapon_value }
|
|
scope:1061_second_weapon = { remove_variable ?= 1061_weapon_value }
|
|
scope:1061_third_weapon = { remove_variable ?= 1061_weapon_value }
|
|
save_scope_as = laamp_decision_bought_weapon
|
|
#Simulate shifting inventory
|
|
1061_chance_to_flush_inventory_effect = {
|
|
FIRST_ITEM = scope:1061_first_weapon
|
|
SECOND_ITEM = scope:1061_second_weapon
|
|
THIRD_ITEM = scope:1061_third_weapon
|
|
VENDOR = scope:laamp_weaponsmith_craftsman
|
|
}
|
|
#Go back to craftsmen district
|
|
hidden_effect = { 1061_return_to_craftsmen_effect = yes }
|
|
}
|
|
|
|
#The actual transfer
|
|
scripted_effect 1061_buy_item_effect = {
|
|
#Weapon
|
|
if = {
|
|
limit = { has_variable = 1061_laamp_decision_weapon }
|
|
root = {
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_weaponsmith_craftsman
|
|
gold = prev.var:1061_weapon_value #Is set via the 1041_set_item_value_effect on the artifact itself
|
|
}
|
|
}
|
|
}
|
|
#Armor
|
|
if = {
|
|
limit = { has_variable = 1063_laamp_decision_armor }
|
|
root = {
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_armorer_craftsman
|
|
gold = prev.var:1063_armor_value
|
|
}
|
|
}
|
|
}
|
|
#Accessory
|
|
if = {
|
|
limit = { has_variable = 1065_laamp_decision_accessory }
|
|
root = {
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_jeweler_craftsman
|
|
gold = prev.var:1065_accessory_value
|
|
}
|
|
}
|
|
}
|
|
set_owner = root
|
|
}
|
|
|
|
|
|
#Visit Weaponsmith
|
|
ep3_laamp_decision_event.1061 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1061.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: Generics
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_weaponsmith
|
|
scope:weaponsmith_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1061.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:weaponsmith_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1061.desc_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME: We've seen this weaponsmith before
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_weaponsmith_craftsman
|
|
NOT = { exists = scope:been_to_weaponsmith }
|
|
}
|
|
desc = ep3_laamp_decision_event.1061.desc_reused_weaponsmith
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_weaponsmith }
|
|
}
|
|
desc = ep3_laamp_decision_event.1061.desc
|
|
}
|
|
}
|
|
}
|
|
theme = stewardship
|
|
override_sound = { reference = "event:/SFX/Events/Themes/sfx_event_theme_type_martial" }
|
|
override_background = { reference = armory }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
animation = marshal_random_weapon
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
animation = thinking
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_weaponsmith_craftsman
|
|
camera = camera_event_scheme_far_right
|
|
animation = inspect_weapon
|
|
}
|
|
artifact = {
|
|
target = scope:1061_first_weapon
|
|
position = lower_left_portrait
|
|
}
|
|
artifact = {
|
|
target = scope:1061_second_weapon
|
|
position = lower_center_portrait
|
|
}
|
|
artifact = {
|
|
target = scope:1061_third_weapon
|
|
position = lower_right_portrait
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
location.province_owner = { save_scope_as = bg_override_char }
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = weaponsmith }
|
|
#Find our weapons
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1061_first_weapon }
|
|
}
|
|
scope:laamp_weaponsmith_craftsman = {
|
|
#Have we created weapons recently, which we can pull?
|
|
if = {
|
|
limit = {
|
|
any_character_artifact ?= { has_variable = 1061_laamp_decision_weapon }
|
|
}
|
|
every_character_artifact = {
|
|
limit = { has_variable = 1061_laamp_decision_weapon }
|
|
add_to_list = list_of_potential_weapons
|
|
}
|
|
random_in_list = {
|
|
list = list_of_potential_weapons
|
|
save_scope_as = 1061_first_weapon
|
|
}
|
|
random_in_list = {
|
|
list = list_of_potential_weapons
|
|
limit = {
|
|
this != scope:1061_first_weapon
|
|
}
|
|
save_scope_as = 1061_second_weapon
|
|
}
|
|
random_in_list = {
|
|
list = list_of_potential_weapons
|
|
limit = {
|
|
NOR = {
|
|
this = scope:1061_first_weapon
|
|
this = scope:1061_second_weapon
|
|
}
|
|
}
|
|
save_scope_as = 1061_third_weapon
|
|
}
|
|
}
|
|
#If we don't have any old weapons; generate new ones!
|
|
hidden_effect_new_object = { #HAZMAT SUIT OF ERROR SUPRESSION
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1061_first_weapon }
|
|
}
|
|
#Set rarity, maybe
|
|
1041_chance_to_buff_item_rarity_effect = { VENDOR = scope:laamp_weaponsmith_craftsman }
|
|
#Generate weapon
|
|
create_artifact_weapon_effect = {
|
|
OWNER = scope:laamp_weaponsmith_craftsman
|
|
CREATOR = scope:laamp_weaponsmith_craftsman
|
|
SET_WEAPON_TYPE = flag:no
|
|
}
|
|
#Finalization
|
|
scope:newly_created_artifact ?= {
|
|
1061_set_weapon_variable_effect = yes
|
|
1061_buff_item_modifiers_effect = yes
|
|
#Don't need no notification about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
save_scope_as = 1061_first_weapon
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1061_second_weapon }
|
|
}
|
|
#Set rarity, maybe
|
|
1041_chance_to_buff_item_rarity_effect = { VENDOR = scope:laamp_weaponsmith_craftsman }
|
|
#Generate weapon
|
|
create_artifact_weapon_effect = {
|
|
OWNER = scope:laamp_weaponsmith_craftsman
|
|
CREATOR = scope:laamp_weaponsmith_craftsman
|
|
SET_WEAPON_TYPE = flag:no
|
|
}
|
|
#Finalization
|
|
scope:newly_created_artifact ?= {
|
|
1061_set_weapon_variable_effect = yes
|
|
1061_buff_item_modifiers_effect = yes
|
|
#Don't need no notification about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
save_scope_as = 1061_second_weapon
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1061_third_weapon }
|
|
}
|
|
#Set rarity, maybe
|
|
1041_chance_to_buff_item_rarity_effect = { VENDOR = scope:laamp_weaponsmith_craftsman }
|
|
#Generate weapon
|
|
create_artifact_weapon_effect = {
|
|
OWNER = scope:laamp_weaponsmith_craftsman
|
|
CREATOR = scope:laamp_weaponsmith_craftsman
|
|
SET_WEAPON_TYPE = flag:no
|
|
}
|
|
#Finalization
|
|
scope:newly_created_artifact ?= {
|
|
1061_set_weapon_variable_effect = yes
|
|
1061_buff_item_modifiers_effect = yes
|
|
#Don't need no notification about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
save_scope_as = 1061_third_weapon
|
|
}
|
|
}
|
|
#Set the value of the weapons
|
|
scope:1061_first_weapon = { 1041_set_item_value_effect = yes }
|
|
scope:1061_second_weapon = { 1041_set_item_value_effect = yes }
|
|
scope:1061_third_weapon = { 1041_set_item_value_effect = yes }
|
|
}
|
|
}
|
|
#Remember the weaponsmith
|
|
1010_remember_vendor_character_effect = { GUILD = weaponsmith CHARACTER = scope:laamp_weaponsmith_craftsman }
|
|
}
|
|
}
|
|
#Weapon #1
|
|
option = {
|
|
name = ep3_laamp_decision_event.1061.a
|
|
#Pay gold, transfer weapon
|
|
scope:1061_first_weapon = { 1061_buy_item_effect = yes }
|
|
#Then set correct variables and reroute us to the craftsmen
|
|
1061_bought_weapon_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < scope:1061_first_weapon.var:1061_weapon_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Weapon #2
|
|
option = {
|
|
name = ep3_laamp_decision_event.1061.b
|
|
#Pay gold, transfer weapon
|
|
scope:1061_second_weapon = { 1061_buy_item_effect = yes }
|
|
#Then set correct variables and reroute us to the craftsmen
|
|
1061_bought_weapon_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < scope:1061_second_weapon.var:1061_weapon_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Weapon #3
|
|
option = {
|
|
name = ep3_laamp_decision_event.1061.c
|
|
#Pay gold, transfer weapon
|
|
scope:1061_third_weapon = { 1061_buy_item_effect = yes }
|
|
#Then set correct variables and reroute us to the craftsmen
|
|
1061_bought_weapon_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < scope:1061_third_weapon.var:1061_weapon_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#I want to visit another craftsman
|
|
option = {
|
|
name = ep3_laamp_decision_event.1061.d
|
|
#Sets variables and returns us to craftman screen
|
|
1031_been_to_effect = { GUILD = weaponsmith }
|
|
ai_chance = {
|
|
base = 200
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 2
|
|
}
|
|
}
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:weaponsmith }
|
|
}
|
|
}
|
|
|
|
|
|
#Identify the armor artifacts
|
|
scripted_effect 1063_set_armor_variable_effect = {
|
|
set_variable = {
|
|
name = 1063_laamp_decision_armor
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
|
|
#Set the correct variable to block off the Armorer option and remove the desc flavor variable
|
|
scripted_effect 1063_bought_armor_effect = {
|
|
scope:1063_first_armor = { remove_variable ?= 1063_armor_value }
|
|
scope:1063_second_armor = { remove_variable ?= 1063_armor_value }
|
|
scope:1063_third_armor = { remove_variable ?= 1063_armor_value }
|
|
save_scope_value_as = {
|
|
name = laamp_decision_bought_armor
|
|
value = flag:yes
|
|
}
|
|
#Simulate shifting inventory
|
|
1061_chance_to_flush_inventory_effect = {
|
|
FIRST_ITEM = scope:1063_first_armor
|
|
SECOND_ITEM = scope:1063_second_armor
|
|
THIRD_ITEM = scope:1063_third_armor
|
|
VENDOR = scope:laamp_armorer_craftsman
|
|
}
|
|
#Go back to craftsmen district
|
|
hidden_effect = { 1061_return_to_craftsmen_effect = yes }
|
|
}
|
|
|
|
|
|
#Visit Armorer
|
|
ep3_laamp_decision_event.1063 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1063.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: Generics
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_armorer
|
|
scope:armorer_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1063.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:armorer_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1063.desc_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME: We've seen this armorer before
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_armorer_craftsman
|
|
NOT = { exists = scope:been_to_armorer }
|
|
}
|
|
desc = ep3_laamp_decision_event.1063.desc_reused_armorer
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_armorer }
|
|
}
|
|
desc = ep3_laamp_decision_event.1063.desc
|
|
}
|
|
}
|
|
}
|
|
theme = stewardship
|
|
override_sound = { reference = "event:/SFX/Events/Themes/sfx_event_theme_type_generic" }
|
|
override_background = { reference = armory }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
animation = personality_content
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
animation = thinking
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_armorer_craftsman
|
|
camera = camera_event_scheme_far_right
|
|
animation = personality_bold
|
|
}
|
|
artifact = {
|
|
target = scope:1063_first_armor
|
|
position = lower_left_portrait
|
|
}
|
|
artifact = {
|
|
target = scope:1063_second_armor
|
|
position = lower_center_portrait
|
|
}
|
|
artifact = {
|
|
target = scope:1063_third_armor
|
|
position = lower_right_portrait
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
location.province_owner = { save_scope_as = bg_override_char }
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = armorer }
|
|
#Find our armors
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1063_first_armor }
|
|
}
|
|
scope:laamp_armorer_craftsman = {
|
|
#Have we created armors recently, which we can pull?
|
|
if = {
|
|
limit = {
|
|
any_character_artifact ?= { has_variable = 1063_laamp_decision_armor }
|
|
}
|
|
every_character_artifact = {
|
|
limit = { has_variable = 1063_laamp_decision_armor }
|
|
add_to_list = list_of_potential_armors
|
|
}
|
|
random_in_list = {
|
|
list = list_of_potential_armors
|
|
save_scope_as = 1063_first_armor
|
|
}
|
|
random_in_list = {
|
|
list = list_of_potential_armors
|
|
limit = {
|
|
this != scope:1063_first_armor
|
|
}
|
|
save_scope_as = 1063_second_armor
|
|
}
|
|
random_in_list = {
|
|
list = list_of_potential_armors
|
|
limit = {
|
|
NOR = {
|
|
this = scope:1063_first_armor
|
|
this = scope:1063_second_armor
|
|
}
|
|
}
|
|
save_scope_as = 1063_third_armor
|
|
}
|
|
}
|
|
#If we don't have any old armors; generate new ones!
|
|
hidden_effect_new_object = { #HAZMAT SUIT OF ERROR SUPRESSION
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1063_first_armor }
|
|
}
|
|
#Set rarity, maybe
|
|
1041_chance_to_buff_item_rarity_effect = { VENDOR = scope:laamp_armorer_craftsman }
|
|
#Generate armor
|
|
create_artifact_armor_effect = {
|
|
OWNER = scope:laamp_armorer_craftsman
|
|
CREATOR = scope:laamp_armorer_craftsman
|
|
SET_ARMOR_TYPE = flag:no
|
|
}
|
|
#Finalization
|
|
scope:newly_created_artifact ?= {
|
|
1063_set_armor_variable_effect = yes
|
|
1061_buff_item_modifiers_effect = yes
|
|
#Don't need no notification about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
save_scope_as = 1063_first_armor
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1063_second_armor }
|
|
}
|
|
#Set rarity, maybe
|
|
1041_chance_to_buff_item_rarity_effect = { VENDOR = scope:laamp_armorer_craftsman }
|
|
#Generate armor
|
|
create_artifact_armor_effect = {
|
|
OWNER = scope:laamp_armorer_craftsman
|
|
CREATOR = scope:laamp_armorer_craftsman
|
|
SET_ARMOR_TYPE = flag:armor_type_lamellar
|
|
}
|
|
#Finalization
|
|
scope:newly_created_artifact ?= {
|
|
1063_set_armor_variable_effect = yes
|
|
1061_buff_item_modifiers_effect = yes
|
|
#Don't need no notification about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
save_scope_as = 1063_second_armor
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1063_third_armor }
|
|
}
|
|
#Set rarity, maybe
|
|
1041_chance_to_buff_item_rarity_effect = { VENDOR = scope:laamp_armorer_craftsman }
|
|
#Generate armor
|
|
create_artifact_armor_effect = {
|
|
OWNER = scope:laamp_armorer_craftsman
|
|
CREATOR = scope:laamp_armorer_craftsman
|
|
SET_ARMOR_TYPE = flag:armor_type_scale
|
|
}
|
|
#Finalization
|
|
scope:newly_created_artifact ?= {
|
|
1063_set_armor_variable_effect = yes
|
|
1061_buff_item_modifiers_effect = yes
|
|
#Don't need no notification about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
save_scope_as = 1063_third_armor
|
|
}
|
|
}
|
|
#Set the value of the armors
|
|
scope:1063_first_armor = { 1041_set_item_value_effect = yes }
|
|
scope:1063_second_armor = { 1041_set_item_value_effect = yes }
|
|
scope:1063_third_armor = { 1041_set_item_value_effect = yes }
|
|
}
|
|
}
|
|
#Remember the armorer
|
|
1010_remember_vendor_character_effect = { GUILD = armorer CHARACTER = scope:laamp_armorer_craftsman }
|
|
}
|
|
}
|
|
#Armor #1
|
|
option = {
|
|
name = ep3_laamp_decision_event.1063.a
|
|
#Pay gold, transfer armor
|
|
scope:1063_first_armor = { 1061_buy_item_effect = yes }
|
|
#Then set correct variables and reroute us to the craftsmen
|
|
1063_bought_armor_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < scope:1063_first_armor.var:1063_armor_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Armor #2
|
|
option = {
|
|
name = ep3_laamp_decision_event.1063.b
|
|
#Pay gold, transfer armor
|
|
scope:1063_second_armor = { 1061_buy_item_effect = yes }
|
|
#Then set correct variables and reroute us to the craftsmen
|
|
1063_bought_armor_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < scope:1063_second_armor.var:1063_armor_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Armor #3
|
|
option = {
|
|
name = ep3_laamp_decision_event.1063.c
|
|
#Pay gold, transfer armor
|
|
scope:1063_third_armor = { 1061_buy_item_effect = yes }
|
|
#Then set correct variables and reroute us to the craftsmen
|
|
1063_bought_armor_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < scope:1063_third_armor.var:1063_armor_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#TRIGGERED OPTION: Attempt to recruit the armorer
|
|
option = {
|
|
name = ep3_laamp_decision_event.1063.d
|
|
trigger = {
|
|
custom_description = {
|
|
text = not_have_armorer_building
|
|
can_employ_court_position_type = armorer_camp_officer
|
|
}
|
|
}
|
|
reason = unlocked_armorer
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_armorer_craftsman
|
|
gold = minor_gold_value
|
|
}
|
|
hidden_effect = {
|
|
reverse_add_opinion = {
|
|
target = scope:laamp_armorer_craftsman
|
|
modifier = recruited_me_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
add_courtier = scope:laamp_armorer_craftsman
|
|
#The actual effect happens in after
|
|
show_as_tooltip = {
|
|
camp_officer_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = armorer
|
|
CANDIDATE = scope:laamp_armorer_craftsman
|
|
}
|
|
}
|
|
#Sets variables and returns us to craftman screen
|
|
save_scope_value_as = {
|
|
name = laamp_decision_bought_armor
|
|
value = flag:no
|
|
}
|
|
#Go back to craftsmen district
|
|
hidden_effect = { 1061_return_to_craftsmen_effect = yes }
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < minor_gold_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
modifier = {
|
|
employs_court_position = armorer_camp_officer
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#I want to visit another craftsman
|
|
option = {
|
|
name = ep3_laamp_decision_event.1063.e
|
|
#Sets variables and returns us to craftman screen
|
|
1031_been_to_effect = { GUILD = armorer }
|
|
ai_chance = {
|
|
base = 200
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 2
|
|
}
|
|
}
|
|
}
|
|
after = {
|
|
if = {
|
|
limit = { scope:laamp_decision_bought_armor ?= flag:no }
|
|
#Appoint them
|
|
if = {
|
|
limit = {
|
|
can_appoint_char_to_court_position = {
|
|
CHAR = scope:laamp_armorer_craftsman
|
|
COURT_POS = armorer_camp_officer
|
|
}
|
|
}
|
|
camp_officer_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = armorer
|
|
CANDIDATE = scope:laamp_armorer_craftsman
|
|
}
|
|
}
|
|
}
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:armorer }
|
|
}
|
|
}
|
|
|
|
|
|
#Identify the accessory artifacts
|
|
scripted_effect 1065_set_accessory_variable_effect = {
|
|
set_variable = {
|
|
name = 1065_laamp_decision_accessory
|
|
days = visit_settlement_cooldown_days
|
|
}
|
|
}
|
|
|
|
#Set the correct variable to block off the Jeweler option and remove the desc flavor variable
|
|
scripted_effect 1065_bought_accessory_effect = {
|
|
scope:1065_first_accessory = { remove_variable ?= 1065_accessory_value }
|
|
scope:1065_second_accessory = { remove_variable ?= 1065_accessory_value }
|
|
scope:1065_third_accessory = { remove_variable ?= 1065_accessory_value }
|
|
save_scope_as = laamp_decision_bought_accessory
|
|
#Simulate shifting inventory
|
|
1061_chance_to_flush_inventory_effect = {
|
|
FIRST_ITEM = scope:1065_first_accessory
|
|
SECOND_ITEM = scope:1065_second_accessory
|
|
THIRD_ITEM = scope:1065_third_accessory
|
|
VENDOR = scope:laamp_jeweler_craftsman
|
|
}
|
|
#Go back to craftsmen district
|
|
hidden_effect = { 1061_return_to_craftsmen_effect = yes }
|
|
}
|
|
|
|
|
|
#Visit Jeweler
|
|
ep3_laamp_decision_event.1065 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1065.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN: Generics
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_jeweler
|
|
scope:jeweler_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1065.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:jeweler_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1065.desc_returned_02
|
|
}
|
|
}
|
|
#FIRST TIME: We've seen this jeweler before
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_jeweler_craftsman
|
|
NOT = { exists = scope:been_to_jeweler }
|
|
}
|
|
desc = ep3_laamp_decision_event.1065.desc_reused_jeweler
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_jeweler }
|
|
}
|
|
desc = ep3_laamp_decision_event.1065.desc
|
|
}
|
|
}
|
|
}
|
|
theme = stewardship
|
|
override_background = { reference = physicians_study }
|
|
left_portrait = {
|
|
trigger = { exists = scope:visiting_partner }
|
|
character = scope:visiting_partner
|
|
#It kinda makes sense, doesn't it?
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:been_to_jeweler
|
|
scope:jeweler_loc_tracker ?= 0
|
|
}
|
|
animation = interested
|
|
}
|
|
animation = war_over_tie
|
|
}
|
|
center_portrait = {
|
|
character = root
|
|
#It kinda makes sense, doesn't it?
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:been_to_jeweler
|
|
scope:jeweler_loc_tracker ?= 0
|
|
}
|
|
animation = disbelief
|
|
}
|
|
animation = thinking
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_jeweler_craftsman
|
|
camera = camera_event_scheme_vs_center_look_left
|
|
#It kinda makes sense, doesn't it?
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:been_to_jeweler
|
|
scope:jeweler_loc_tracker ?= 0
|
|
}
|
|
animation = paranoia
|
|
}
|
|
triggered_animation = {
|
|
trigger = { scope:jeweler_loc_tracker ?= 1 }
|
|
animation = writing
|
|
}
|
|
animation = chess_cocky
|
|
}
|
|
artifact = {
|
|
target = scope:1065_first_accessory
|
|
position = lower_left_portrait
|
|
}
|
|
artifact = {
|
|
target = scope:1065_second_accessory
|
|
position = lower_center_portrait
|
|
}
|
|
artifact = {
|
|
target = scope:1065_third_accessory
|
|
position = lower_right_portrait
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
location.province_owner = { save_scope_as = bg_override_char }
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_scene_loc_tracker_scope_effect = { SCENE = jeweler }
|
|
#Find our accessories
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1065_first_accessory }
|
|
}
|
|
scope:laamp_jeweler_craftsman = {
|
|
#Have we created accessories recently, which we can pull?
|
|
if = {
|
|
limit = {
|
|
any_character_artifact ?= { has_variable = 1065_laamp_decision_accessory }
|
|
}
|
|
every_character_artifact = {
|
|
limit = { has_variable = 1065_laamp_decision_accessory }
|
|
add_to_list = list_of_potential_accessories
|
|
}
|
|
random_in_list = {
|
|
list = list_of_potential_accessories
|
|
save_scope_as = 1065_first_accessory
|
|
}
|
|
random_in_list = {
|
|
list = list_of_potential_accessories
|
|
limit = {
|
|
this != scope:1065_first_accessory
|
|
}
|
|
save_scope_as = 1065_second_accessory
|
|
}
|
|
random_in_list = {
|
|
list = list_of_potential_accessories
|
|
limit = {
|
|
NOR = {
|
|
this = scope:1065_first_accessory
|
|
this = scope:1065_second_accessory
|
|
}
|
|
}
|
|
save_scope_as = 1065_third_accessory
|
|
}
|
|
}
|
|
#If we don't have any old accessories; generate new ones!
|
|
hidden_effect_new_object = { #HAZMAT SUIT OF ERROR SUPRESSION
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1065_first_accessory }
|
|
}
|
|
#Set rarity, maybe
|
|
1041_chance_to_buff_item_rarity_effect = { VENDOR = scope:laamp_armorer_craftsman }
|
|
#Generate accessory
|
|
random_list = {
|
|
50 = {
|
|
create_artifact_brooch_effect = {
|
|
OWNER = scope:laamp_jeweler_craftsman
|
|
SMITH = scope:laamp_jeweler_craftsman
|
|
}
|
|
}
|
|
50 = {
|
|
create_artifact_ring_effect = {
|
|
OWNER = scope:laamp_jeweler_craftsman
|
|
SMITH = scope:laamp_jeweler_craftsman
|
|
}
|
|
}
|
|
50 = {
|
|
create_artifact_necklace_effect = {
|
|
OWNER = scope:laamp_jeweler_craftsman
|
|
SMITH = scope:laamp_jeweler_craftsman
|
|
}
|
|
}
|
|
}
|
|
#Finalization
|
|
scope:newly_created_artifact ?= {
|
|
1065_set_accessory_variable_effect = yes
|
|
1061_buff_item_modifiers_effect = yes
|
|
#Don't need no notification about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
save_scope_as = 1065_first_accessory
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1065_second_accessory }
|
|
}
|
|
#Set rarity, maybe
|
|
1041_chance_to_buff_item_rarity_effect = { VENDOR = scope:laamp_armorer_craftsman }
|
|
#Generate accessory
|
|
random_list = {
|
|
50 = {
|
|
create_artifact_crown_effect = {
|
|
OWNER = scope:laamp_jeweler_craftsman
|
|
SMITH = scope:laamp_jeweler_craftsman
|
|
}
|
|
}
|
|
50 = {
|
|
create_artifact_regalia_effect = {
|
|
OWNER = scope:laamp_jeweler_craftsman
|
|
SMITH = scope:laamp_jeweler_craftsman
|
|
}
|
|
}
|
|
}
|
|
#Finalization
|
|
scope:newly_created_artifact ?= {
|
|
1065_set_accessory_variable_effect = yes
|
|
1061_buff_item_modifiers_effect = yes
|
|
#Don't need no notification about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
save_scope_as = 1065_second_accessory
|
|
}
|
|
}
|
|
if = {
|
|
limit = {
|
|
NOT = { exists = scope:1065_third_accessory }
|
|
}
|
|
#Set rarity, maybe
|
|
1041_chance_to_buff_item_rarity_effect = { VENDOR = scope:laamp_armorer_craftsman }
|
|
#Generate accessory
|
|
random_list = {
|
|
#Don't need two rings etc
|
|
50 = {
|
|
trigger = {
|
|
NOT = {
|
|
scope:1065_first_accessory = { artifact_type = brooch }
|
|
}
|
|
}
|
|
create_artifact_brooch_effect = {
|
|
OWNER = scope:laamp_jeweler_craftsman
|
|
SMITH = scope:laamp_jeweler_craftsman
|
|
}
|
|
}
|
|
50 = {
|
|
trigger = {
|
|
NOT = {
|
|
scope:1065_first_accessory = { artifact_type = ring }
|
|
}
|
|
}
|
|
create_artifact_ring_effect = {
|
|
OWNER = scope:laamp_jeweler_craftsman
|
|
SMITH = scope:laamp_jeweler_craftsman
|
|
}
|
|
}
|
|
50 = {
|
|
trigger = {
|
|
NOT = {
|
|
scope:1065_first_accessory = { artifact_type = necklace }
|
|
}
|
|
}
|
|
create_artifact_necklace_effect = {
|
|
OWNER = scope:laamp_jeweler_craftsman
|
|
SMITH = scope:laamp_jeweler_craftsman
|
|
}
|
|
}
|
|
}
|
|
#Finalization
|
|
scope:newly_created_artifact ?= {
|
|
1065_set_accessory_variable_effect = yes
|
|
1061_buff_item_modifiers_effect = yes
|
|
#Don't need no notification about this
|
|
1020_suppress_artifact_notifications_effect = yes
|
|
save_scope_as = 1065_third_accessory
|
|
}
|
|
}
|
|
#Set the value of the accessories
|
|
scope:1065_first_accessory = { 1041_set_item_value_effect = yes }
|
|
scope:1065_second_accessory = { 1041_set_item_value_effect = yes }
|
|
scope:1065_third_accessory = { 1041_set_item_value_effect = yes }
|
|
}
|
|
#Remember the jeweler
|
|
1010_remember_vendor_character_effect = { GUILD = jeweler CHARACTER = scope:laamp_jeweler_craftsman }
|
|
}
|
|
}
|
|
}
|
|
#Accessory #1
|
|
option = {
|
|
name = ep3_laamp_decision_event.1065.a
|
|
#Pay gold, transfer Accessory
|
|
scope:1065_first_accessory = { 1061_buy_item_effect = yes }
|
|
#Then set correct variables and reroute us to the craftsmen
|
|
1065_bought_accessory_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < scope:1065_first_accessory.var:1065_accessory_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Accessory #2
|
|
option = {
|
|
name = ep3_laamp_decision_event.1065.b
|
|
#Pay gold, transfer Accessory
|
|
scope:1065_second_accessory = { 1061_buy_item_effect = yes }
|
|
#Then set correct variables and reroute us to the craftsmen
|
|
1065_bought_accessory_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < scope:1065_second_accessory.var:1065_accessory_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Accessory #3
|
|
option = {
|
|
name = ep3_laamp_decision_event.1065.c
|
|
#Pay gold, transfer Accessory
|
|
scope:1065_third_accessory = { 1061_buy_item_effect = yes }
|
|
#Then set correct variables and reroute us to the craftsmen
|
|
1065_bought_accessory_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
short_term_gold < scope:1065_third_accessory.var:1065_accessory_value
|
|
short_term_gold < laamp_ai_spending_pants_value
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#I want to visit another craftsman
|
|
option = {
|
|
name = ep3_laamp_decision_event.1065.d
|
|
#Sets variables and returns us to craftman screen
|
|
1031_been_to_effect = { GUILD = jeweler }
|
|
ai_chance = {
|
|
base = 200
|
|
modifier = {
|
|
has_trait = greedy
|
|
factor = 2
|
|
}
|
|
}
|
|
}
|
|
after = {
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:jeweler }
|
|
}
|
|
}
|
|
|
|
|
|
#Hire the Quartermaster, show/set the effects and variables
|
|
scripted_effect 1067_hire_quartermaster_effect = {
|
|
hidden_effect = {
|
|
reverse_add_opinion = {
|
|
target = scope:laamp_quartermaster_recruit
|
|
modifier = recruited_me_opinion
|
|
opinion = 30
|
|
}
|
|
}
|
|
add_courtier = scope:laamp_quartermaster_recruit
|
|
#The actual effect happens in after
|
|
show_as_tooltip = {
|
|
camp_officer_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = quartermaster
|
|
CANDIDATE = scope:laamp_quartermaster_recruit
|
|
}
|
|
}
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
save_scope_value_as = {
|
|
name = laamp_decision_recruited_quartermaster
|
|
value = flag:yes
|
|
}
|
|
#Go back to craftsmen district
|
|
hidden_effect = { 1061_return_to_craftsmen_effect = yes }
|
|
}
|
|
|
|
|
|
#Visit Quartermaster
|
|
ep3_laamp_decision_event.1067 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1067.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
first_valid = {
|
|
#We've returned to this scene, now what
|
|
#RETURN:
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:been_to_quartermaster
|
|
scope:quartermaster_loc_tracker ?= 0
|
|
}
|
|
desc = ep3_laamp_decision_event.1067.desc_returned_01
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:quartermaster_loc_tracker ?= 1 }
|
|
desc = ep3_laamp_decision_event.1067.desc_returned_02
|
|
}
|
|
triggered_desc = {
|
|
trigger = { scope:quartermaster_loc_tracker ?= 2 }
|
|
desc = ep3_laamp_decision_event.1067.desc_returned_03
|
|
}
|
|
}
|
|
#FIRST TIME: We've seen this quartermaster before
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:laamp_recurring_quartermaster
|
|
NOT = { exists = scope:been_to_quartermaster }
|
|
}
|
|
desc = ep3_laamp_decision_event.1067.desc_reused_quartermaster
|
|
}
|
|
#FIRST TIME:
|
|
triggered_desc = {
|
|
trigger = {
|
|
NOT = { exists = scope:been_to_quartermaster }
|
|
}
|
|
desc = ep3_laamp_decision_event.1067.desc
|
|
}
|
|
}
|
|
}
|
|
theme = landless_adventurer
|
|
override_sound = { reference = "event:/MUSIC/Cues/Events/Positive/mx_cue_postive_effect" }
|
|
override_background = { reference = tavern }
|
|
left_portrait = {
|
|
character = root
|
|
animation = scheme
|
|
}
|
|
right_portrait = {
|
|
character = scope:laamp_quartermaster_recruit
|
|
animation = drink_goblet
|
|
}
|
|
immediate = {
|
|
#To prevent the character, for whatever reason, managing to not have the variable be removed when exiting VS
|
|
temporarily_lock_visit_settlement_effect = yes
|
|
#Run this once: Re-save the portrait so the Quartermaster is not the 1060_third_character (since they narratively moved to the tavern)
|
|
if = {
|
|
limit = { scope:1060_third_character = scope:laamp_quartermaster_recruit }
|
|
#Overwrite the portrait with ROOT to disable it
|
|
save_scope_as = 1060_third_character
|
|
#Remember the Quartermaster
|
|
1010_remember_vendor_character_effect = { GUILD = quartermaster CHARACTER = scope:laamp_quartermaster_recruit }
|
|
}
|
|
#Can we _not_ repeat the loc?
|
|
1025_set_and_check_hub_loc_tracker_scope_effect = { HUB = quartermaster } #This is only a hub because it has 3 random locs
|
|
}
|
|
#Pay up
|
|
option = {
|
|
name = ep3_laamp_decision_event.1067.a
|
|
pay_short_term_gold = {
|
|
target = scope:laamp_quartermaster_recruit
|
|
gold = minor_gold_value
|
|
}
|
|
#Wrap effect to hire 'em and also set up variables
|
|
1067_hire_quartermaster_effect = yes
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
any_courtier = { count >= many_followers_value }
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#I have a sizeable camp for you to manage
|
|
option = {
|
|
name = ep3_laamp_decision_event.1067.b
|
|
trigger = {
|
|
custom_tooltip = {
|
|
text = not_enough_followers.tt
|
|
any_courtier = { count >= many_followers_value }
|
|
}
|
|
}
|
|
reason = many_followers
|
|
#_Oh noes_
|
|
show_as_unavailable = { always = yes }
|
|
#Wrap effect to hire 'em and also set up variables
|
|
1067_hire_quartermaster_effect = yes
|
|
ai_chance = {
|
|
base = 1000 #Just do it
|
|
}
|
|
}
|
|
#Intrigue duel
|
|
option = {
|
|
name = ep3_laamp_decision_event.1067.c
|
|
duel = {
|
|
skill = intrigue
|
|
value = average_skill_rating
|
|
#Success: Hire 'em up
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
desc = ep3_laamp_decision_event.1067.c.success
|
|
send_interface_toast = {
|
|
title = ep3_laamp_decision_event.1067.c.success
|
|
left_icon = root
|
|
right_icon = scope:laamp_quartermaster_recruit
|
|
#Yippee!
|
|
1067_hire_quartermaster_effect = yes
|
|
}
|
|
}
|
|
#Failure: Bye, now
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -20
|
|
}
|
|
desc = ep3_laamp_decision_event.1067.c.failure
|
|
send_interface_toast = {
|
|
type = event_toast_text_bad
|
|
title = ep3_laamp_decision_event.1067.c.failure
|
|
desc = ep3_laamp_decision_event.1067.c.failure.tt
|
|
left_icon = root
|
|
right_icon = scope:laamp_quartermaster_recruit
|
|
#Oh well
|
|
custom_tooltip = ep3_laamp_decision_event.1067.c.failure.tt
|
|
#This 'finished' is different since it changes between flag:yes and flag:no
|
|
save_scope_value_as = {
|
|
name = laamp_decision_recruited_quartermaster
|
|
value = flag:no
|
|
}
|
|
1061_return_to_craftsmen_effect = yes
|
|
}
|
|
}
|
|
}
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
any_courtier = { count >= many_followers_value }
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
#Let's not
|
|
option = {
|
|
name = ep3_laamp_decision_event.1067.d
|
|
#Sets variables and returns us to craftman screen
|
|
1031_been_to_effect = { GUILD = quartermaster }
|
|
ai_chance = {
|
|
base = 100
|
|
modifier = {
|
|
any_courtier = { count >= many_followers_value }
|
|
factor = 0
|
|
}
|
|
}
|
|
}
|
|
after = {
|
|
if = {
|
|
limit = { scope:laamp_decision_recruited_quartermaster ?= flag:yes }
|
|
#Appoint them
|
|
if = {
|
|
limit = {
|
|
can_appoint_char_to_court_position = {
|
|
CHAR = scope:laamp_quartermaster_recruit
|
|
COURT_POS = quartermaster_camp_officer
|
|
}
|
|
}
|
|
camp_officer_grant_effect = {
|
|
EMPLOYER = root
|
|
POS = quartermaster
|
|
CANDIDATE = scope:laamp_quartermaster_recruit
|
|
}
|
|
}
|
|
}
|
|
#What was our last location
|
|
1000_update_last_location_effect = { LOCATION_FLAG = flag:quartermaster }
|
|
}
|
|
}
|
|
|
|
|
|
######################################################################
|
|
# END
|
|
######################################################################
|
|
|
|
|
|
#Seasoned Visitor Decision
|
|
|
|
scripted_effect 1100_book_creation_effect = {
|
|
if = {
|
|
limit = {
|
|
has_variable = poi_visited
|
|
}
|
|
if = {
|
|
limit = {
|
|
artifacts_use_indian_books_trigger = yes
|
|
}
|
|
create_artifact = {
|
|
name = marco_polo_book_title
|
|
type = journal
|
|
template = marco_polo_book
|
|
creator = root
|
|
description = marco_polo_book_desc
|
|
visuals = indian_book
|
|
save_scope_as = newly_created_artifact
|
|
modifier = artifact_monthly_prestige_1_modifier
|
|
wealth = 50
|
|
quality = 10
|
|
}
|
|
}
|
|
else = {
|
|
create_artifact = {
|
|
name = marco_polo_book_title
|
|
type = journal
|
|
template = marco_polo_book
|
|
creator = root
|
|
description = marco_polo_book_desc
|
|
visuals = book
|
|
save_scope_as = newly_created_artifact
|
|
modifier = artifact_monthly_prestige_1_modifier
|
|
wealth = 50
|
|
quality = 10
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
if = {
|
|
limit = {
|
|
var:poi_visited >= 60
|
|
}
|
|
scope:newly_created_artifact = {
|
|
add_artifact_modifier = artifact_monthly_lifestyle_xp_4_modifier
|
|
set_artifact_rarity = illustrious
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
var:poi_visited >= 48
|
|
}
|
|
scope:newly_created_artifact = {
|
|
add_artifact_modifier = artifact_monthly_lifestyle_xp_3_modifier
|
|
set_artifact_rarity = famed
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
var:poi_visited >= 36
|
|
}
|
|
scope:newly_created_artifact = {
|
|
add_artifact_modifier = artifact_monthly_lifestyle_xp_2_modifier
|
|
set_artifact_rarity = masterwork
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
var:poi_visited >= 24
|
|
}
|
|
scope:newly_created_artifact = {
|
|
add_artifact_modifier = artifact_monthly_lifestyle_xp_1_modifier
|
|
set_artifact_rarity = common
|
|
}
|
|
}
|
|
|
|
scope:newly_created_artifact = {
|
|
remove_artifact_modifier = artifact_monthly_prestige_1_modifier
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
scripted_effect 1100_lifestyle_perk_effect = {
|
|
if = {
|
|
limit = {
|
|
has_variable = poi_visited
|
|
}
|
|
if = {
|
|
limit = {
|
|
var:poi_visited >= 56
|
|
}
|
|
add_relevant_lifestyle_perk_point_effect = { NUMBER = 5 }
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
var:poi_visited >= 48
|
|
}
|
|
add_relevant_lifestyle_perk_point_effect = { NUMBER = 4 }
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
var:poi_visited >= 40
|
|
}
|
|
add_relevant_lifestyle_perk_point_effect = { NUMBER = 3 }
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
var:poi_visited >= 32
|
|
}
|
|
add_relevant_lifestyle_perk_point_effect = { NUMBER = 2 }
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
var:poi_visited >= 24
|
|
}
|
|
add_relevant_lifestyle_perk_point_effect = { NUMBER = 1 }
|
|
}
|
|
}
|
|
}
|
|
|
|
ep3_laamp_decision_event.1100 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1100.t
|
|
desc = ep3_laamp_decision_event.1100.desc
|
|
window = visit_settlement_window
|
|
theme = travel
|
|
override_background = { reference = relaxing_room }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = writing
|
|
}
|
|
|
|
immediate = {
|
|
add_character_flag = had_seasoned_visitor_decision
|
|
}
|
|
|
|
option = { #I will take it to my grave
|
|
name = ep3_laamp_decision_event.1100.a
|
|
flavor = ep3_laamp_decision_event.1100.a.flavor
|
|
custom_tooltip = ep3_laamp_decision_event.1100.a.desc
|
|
1100_lifestyle_perk_effect = yes
|
|
|
|
ai_chance = {
|
|
base = 50
|
|
}
|
|
}
|
|
|
|
option = { #I will write it down for future generations
|
|
name = ep3_laamp_decision_event.1100.b
|
|
flavor = ep3_laamp_decision_event.1100.b.flavor
|
|
1100_book_creation_effect = yes
|
|
custom_tooltip = ep3_laamp_decision_event.1100.b.desc
|
|
|
|
ai_chance = {
|
|
base = 100
|
|
}
|
|
}
|
|
|
|
option = { #Postpone the decision
|
|
name = ep3_laamp_decision_event.1100.c
|
|
flavor = ep3_laamp_decision_event.1100.c.flavor
|
|
custom_tooltip = ep3_laamp_decision_event.1100.c.desc
|
|
|
|
remove_character_flag = had_seasoned_visitor_decision
|
|
|
|
hidden_effect = {
|
|
add_prestige_no_experience = 1500
|
|
add_gold = 500
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
#Zealous Missionary Decision
|
|
|
|
ep3_laamp_decision_event.1101 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1101.t
|
|
desc = ep3_laamp_decision_event.1101.desc
|
|
window = visit_settlement_window
|
|
theme = faith
|
|
override_background = { reference = holy_site_generic }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = prayer
|
|
}
|
|
|
|
override_effect_2d = {
|
|
reference = legend_glow
|
|
}
|
|
|
|
immediate = {
|
|
location = {
|
|
save_scope_as = holy_site_location
|
|
}
|
|
set_variable = {
|
|
name = holy_site_ascension
|
|
value = scope:holy_site_location
|
|
}
|
|
}
|
|
|
|
option = {
|
|
name = ep3_laamp_decision_event.1101.a
|
|
custom_tooltip = ep3_laamp_decision_event.1101.a.desc
|
|
}
|
|
}
|
|
|
|
ep3_laamp_decision_event.1102 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1102.t
|
|
desc = ep3_laamp_decision_event.1102.desc
|
|
window = visit_settlement_window
|
|
theme = faith
|
|
override_background = { reference = terrain }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = {
|
|
learning >= 12
|
|
}
|
|
animation = prayer
|
|
}
|
|
animation = personality_zealous
|
|
}
|
|
|
|
immediate = {
|
|
add_character_flag = zealous_missionary_start
|
|
}
|
|
|
|
trigger = {
|
|
has_variable = holy_site_ascension
|
|
}
|
|
|
|
option = {
|
|
name = ep3_laamp_decision_event.1102.a
|
|
give_nickname = nick_the_missionary
|
|
custom_tooltip = ep3_laamp_decision_event.1102.a.desc
|
|
add_character_flag = {
|
|
flag = zealous_missionary_timer
|
|
years = 10
|
|
}
|
|
trigger_event = ep3_laamp_decision_event.1103
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1104
|
|
months = 122 #2 months after the timer runs out
|
|
}
|
|
set_variable = {
|
|
name = num_counties_converted
|
|
value = 0
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 100
|
|
}
|
|
}
|
|
|
|
option = {
|
|
name = ep3_laamp_decision_event.1102.b
|
|
custom_tooltip = ep3_laamp_decision_event.1102.b.desc
|
|
remove_character_flag = zealous_missionary_start
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
|
|
}
|
|
ep3_laamp_decision_event.1103 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1103.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
random_valid = {
|
|
triggered_desc = {
|
|
trigger = { scope:current_location.county.faith = scope:current_location.county.holder.faith }
|
|
desc = ep3_laamp_decision_event.1103.desc
|
|
}
|
|
desc = ep3_laamp_decision_event.1103.desc.alternative
|
|
}
|
|
}
|
|
theme = faith
|
|
override_background = { reference = terrain }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = {
|
|
martial >= 12
|
|
}
|
|
animation = inspect_weapon
|
|
}
|
|
triggered_animation = {
|
|
trigger = {
|
|
learning >= 12
|
|
}
|
|
animation = prayer
|
|
}
|
|
triggered_animation = {
|
|
trigger = {
|
|
always = yes
|
|
}
|
|
animation = personality_zealous
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
location = {
|
|
save_scope_as = current_location
|
|
}
|
|
}
|
|
|
|
trigger = { #Double safeguard
|
|
has_character_flag = zealous_missionary_timer
|
|
government_has_flag = government_is_landless_adventurer
|
|
location ?= {
|
|
has_holding = yes
|
|
}
|
|
NOT = {
|
|
location.faith = root.faith
|
|
is_ai = yes
|
|
any_player = {
|
|
OR = {
|
|
this = location.county.holder
|
|
this = location.county.holder.top_liege
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #pray very hard
|
|
name = {
|
|
text = {
|
|
random_valid = {
|
|
desc = ep3_laamp_decision_event.1103.a
|
|
desc = ep3_laamp_decision_event.1103.a.alternative
|
|
}
|
|
}
|
|
}
|
|
custom_tooltip = ep3_laamp_decision_event.1103.difficulty.desc
|
|
custom_tooltip = ep3_laamp_decision_event.1103.a.desc
|
|
|
|
duel = {
|
|
skills = { diplomacy learning }
|
|
value = very_high_skill_rating
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
modifier = {
|
|
add = {
|
|
subtract = location.county.county_opinion
|
|
}
|
|
}
|
|
modifier = {
|
|
factor = 0.75
|
|
location.county.faith.religion = root.religion
|
|
}
|
|
modifier = {
|
|
factor = 0.75
|
|
knows_language_of_culture = location.county.culture
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = ep3_laamp_decision_event.1103.a.success
|
|
left_icon = root
|
|
right_icon = location.county
|
|
location.county = {
|
|
set_county_faith = root.faith
|
|
}
|
|
ep3_hasan_advance_radicalism = yes
|
|
}
|
|
}
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -49
|
|
}
|
|
modifier = {
|
|
add = location.county.development_level
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = ep3_laamp_decision_event.1103.a.failure
|
|
left_icon = root
|
|
right_icon = location.county
|
|
add_stress = major_stress_gain
|
|
}
|
|
}
|
|
}
|
|
add_stress = miniscule_stress_gain
|
|
add_piety = {
|
|
value = 10
|
|
multiply = location.county.development_level
|
|
min = 20
|
|
}
|
|
|
|
reverse_add_opinion = {
|
|
modifier = vengeful_opinion
|
|
opinion = -75
|
|
target = location.county.holder
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 25
|
|
modifier = {
|
|
add = root.learning
|
|
}
|
|
}
|
|
}
|
|
|
|
option = {
|
|
trigger = {
|
|
root.faith = {
|
|
NOR = {
|
|
has_doctrine = tenet_dharmic_pacifism
|
|
has_doctrine = tenet_pacifism
|
|
}
|
|
}
|
|
|
|
}
|
|
name = {
|
|
text = {
|
|
random_valid = {
|
|
desc = ep3_laamp_decision_event.1103.b
|
|
desc = ep3_laamp_decision_event.1103.b.alternative
|
|
}
|
|
}
|
|
}
|
|
flavor = ep3_laamp_decision_event.1103.b.flavor
|
|
custom_tooltip = ep3_laamp_decision_event.1103.difficulty.desc
|
|
custom_tooltip = ep3_laamp_decision_event.1103.b.desc
|
|
|
|
duel = {
|
|
skills = { martial intrigue }
|
|
value = high_skill_rating
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = 3.5
|
|
min = -49
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = root.number_of_knights
|
|
multiply = 10
|
|
}
|
|
}
|
|
modifier = {
|
|
add = root.current_military_strength
|
|
}
|
|
modifier = {
|
|
factor = 1.2
|
|
root.faith = {
|
|
has_doctrine = tenet_armed_pilgrimages
|
|
}
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = ep3_laamp_decision_event.1103.a.success
|
|
left_icon = root
|
|
right_icon = location.county
|
|
location.county = {
|
|
set_county_faith = root.faith
|
|
}
|
|
ep3_hasan_advance_radicalism = yes
|
|
}
|
|
}
|
|
50 = {
|
|
compare_modifier = {
|
|
value = scope:duel_value
|
|
multiplier = -3.5
|
|
min = -49
|
|
}
|
|
modifier = {
|
|
add = location.county.development_level
|
|
}
|
|
modifier = {
|
|
add = location.barony.building_max_garrison
|
|
}
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = ep3_laamp_decision_event.1103.a.failure
|
|
left_icon = root
|
|
right_icon = location.county
|
|
increase_wounds_effect = { REASON = fight }
|
|
random_courtier ?= {
|
|
increase_wounds_effect = { REASON = fight }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
add_piety = 50
|
|
reverse_add_opinion = {
|
|
modifier = vengeful_opinion
|
|
opinion = -75
|
|
target = location.county.holder
|
|
}
|
|
|
|
|
|
ai_chance = {
|
|
base = 50
|
|
modifier = {
|
|
add = {
|
|
value = root.current_military_strength
|
|
multiply = 0.1
|
|
}
|
|
}
|
|
modifier = {
|
|
add = {
|
|
value = location.barony.building_max_garrison
|
|
multiply = -0.1
|
|
}
|
|
}
|
|
modifier = {
|
|
add = root.martial
|
|
}
|
|
}
|
|
}
|
|
|
|
option = {
|
|
name = {
|
|
text = {
|
|
random_valid = {
|
|
desc = ep3_laamp_decision_event.1103.c
|
|
desc = ep3_laamp_decision_event.1103.c.alternative
|
|
}
|
|
}
|
|
}
|
|
flavor = ep3_laamp_decision_event.1103.c.flavor
|
|
|
|
custom_tooltip = ep3_laamp_decision_event.1103.c.desc
|
|
|
|
add_stress = minor_stress_gain
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
|
|
after = {
|
|
hidden_effect = {
|
|
if = {
|
|
limit = {
|
|
location.county.faith ?= root.faith
|
|
exists = var:num_counties_converted
|
|
}
|
|
change_variable = {
|
|
name = num_counties_converted
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ep3_laamp_decision_event.1104 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1104.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:success
|
|
}
|
|
desc = ep3_laamp_decision_event.1104.desc
|
|
}
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:failure
|
|
}
|
|
desc = ep3_laamp_decision_event.1104.desc.failure
|
|
}
|
|
}
|
|
}
|
|
theme = faith
|
|
override_background = { reference = terrain }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:success
|
|
}
|
|
animation = happiness
|
|
}
|
|
triggered_animation = {
|
|
trigger = {
|
|
exists = scope:failure
|
|
}
|
|
animation = shame
|
|
}
|
|
}
|
|
|
|
override_effect_2d = {
|
|
trigger = {
|
|
exists = scope:success
|
|
}
|
|
reference = legend_glow
|
|
}
|
|
|
|
override_effect_2d = {
|
|
trigger = {
|
|
exists = scope:failure
|
|
}
|
|
reference = rain
|
|
}
|
|
|
|
trigger = {
|
|
has_variable = zealous_missionary_start
|
|
NOT = {
|
|
has_variable = zealous_missionary_timer
|
|
}
|
|
}
|
|
|
|
immediate = {
|
|
if = {
|
|
limit = {
|
|
has_variable = num_counties_converted
|
|
var:num_counties_converted >= 3
|
|
}
|
|
save_scope_as = success
|
|
}
|
|
else = {
|
|
save_scope_as = failure
|
|
}
|
|
}
|
|
|
|
option = {
|
|
trigger = {
|
|
exists = scope:success
|
|
}
|
|
name = ep3_laamp_decision_event.1104.a
|
|
add_piety = omega_piety_gain
|
|
add_trait = saint
|
|
}
|
|
|
|
option = {
|
|
trigger = {
|
|
exists = scope:failure
|
|
}
|
|
name = ep3_laamp_decision_event.1104.b
|
|
|
|
add_stress = monumental_stress_gain
|
|
add_piety_level = -5
|
|
if = {
|
|
limit = {
|
|
has_nickname = nick_the_missionary
|
|
}
|
|
remove_nickname = yes
|
|
give_nickname = nick_the_unworthy
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
ep3_laamp_decision_event.1110 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1110.t
|
|
window = visit_settlement_window
|
|
desc = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { exists = scope:first_kill }
|
|
desc = ep3_laamp_decision_event.1110.desc.has_kill
|
|
}
|
|
desc = ep3_laamp_decision_event.1110.desc.hasnt_kill
|
|
}
|
|
desc = ep3_laamp_decision_event.1110.desc.outro
|
|
}
|
|
|
|
theme = war
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = celebrate_sword
|
|
}
|
|
|
|
override_background = { reference = battlefield }
|
|
|
|
override_effect_2d = {
|
|
reference = legend_glow
|
|
}
|
|
|
|
immediate = {
|
|
ordered_killed_character = {
|
|
order_by = days_since_death
|
|
save_scope_as = first_kill
|
|
}
|
|
}
|
|
|
|
option = {
|
|
name = ep3_laamp_decision_event.1110.a
|
|
flavor = ep3_laamp_decision_event.1110.a.flavor
|
|
custom_tooltip = ep3_laamp_decision_event.1110.a.desc
|
|
add_character_flag = had_laamp_conq_decision
|
|
trigger_event = {
|
|
id = conqueror.0001
|
|
months = 4
|
|
}
|
|
spawn_army = {
|
|
men_at_arms = {
|
|
type = accolade_maa_vanguards
|
|
stacks = 2
|
|
}
|
|
men_at_arms = {
|
|
type = accolade_maa_lancers
|
|
stacks = 2
|
|
}
|
|
men_at_arms = {
|
|
type = accolade_maa_archers
|
|
stacks = 4
|
|
}
|
|
inheritable = no
|
|
uses_supply = no
|
|
location = root.location
|
|
name = event_troop_default_name
|
|
}
|
|
if = {
|
|
limit = {
|
|
exists = location.kingdom.holder
|
|
}
|
|
add_pressed_claim = location.kingdom
|
|
start_war = {
|
|
cb = ep3_laamp_adventurer_kingdom_invasion
|
|
target = location.kingdom.holder
|
|
claimant = root
|
|
target_title = location.kingdom
|
|
target_title = location.kingdom.title_capital_county
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
exists = location.duchy.holder
|
|
}
|
|
add_pressed_claim = location.duchy
|
|
start_war = {
|
|
cb = claim_cb
|
|
target = location.duchy.holder
|
|
claimant = root
|
|
target_title = location.duchy
|
|
target_title = location.duchy.title_capital_county
|
|
}
|
|
}
|
|
else_if = {
|
|
limit = {
|
|
exists = location.county.holder
|
|
}
|
|
add_pressed_claim = location.county
|
|
start_war = {
|
|
cb = claim_cb
|
|
target = location.county.holder
|
|
claimant = root
|
|
target_title = location.county
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_dlc_feature = legends }
|
|
create_legend_seed = {
|
|
type = heroic
|
|
quality = famed
|
|
chronicle = conqueror_chronicle
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
ep3_laamp_decision_event.1120 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1120.t
|
|
window = visit_settlement_window
|
|
desc = ep3_laamp_decision_event.1120.desc
|
|
|
|
theme = intrigue
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = personality_dishonorable
|
|
}
|
|
|
|
override_background = { reference = alley_night }
|
|
|
|
override_effect_2d = {
|
|
reference = fog
|
|
}
|
|
|
|
|
|
immediate = {
|
|
become_bandit_king_decision_effect = yes
|
|
set_variable = {
|
|
name = maa_number
|
|
value = 0
|
|
}
|
|
}
|
|
|
|
option = {
|
|
name = ep3_laamp_decision_event.1120.a
|
|
flavor = ep3_laamp_decision_event.1120.a.flavor
|
|
|
|
set_variable = { #error spam prevention
|
|
name = maa_number
|
|
value = 0
|
|
}
|
|
|
|
bandit_king_maa_spawn_effect = yes
|
|
}
|
|
}
|
|
|
|
ep3_laamp_decision_event.1130 = { #begin city construction
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1130.t
|
|
window = visit_settlement_window
|
|
desc = ep3_laamp_decision_event.1130.desc
|
|
|
|
theme = stewardship
|
|
|
|
override_background = { reference = terrain }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = survey
|
|
}
|
|
|
|
immediate = {
|
|
location = {
|
|
save_scope_as = city_location
|
|
}
|
|
}
|
|
|
|
option = { #less go
|
|
name = ep3_laamp_decision_event.1130.a
|
|
custom_tooltip = ep3_laamp_decision_event.1130.a.desc
|
|
add_character_flag = laamp_city_builder
|
|
scope:city_location = {
|
|
begin_create_holding = {
|
|
type = castle_holding
|
|
}
|
|
set_variable = laamp_city_construction
|
|
}
|
|
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1131
|
|
months = 1 # Checked monthly in trigger_fail for event
|
|
}
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1133
|
|
months = { 4 6 }
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
}
|
|
}
|
|
|
|
option = { #I'm a silly goose, nvm
|
|
name = ep3_laamp_decision_event.1130.b
|
|
add_gold = 400
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
}
|
|
|
|
ep3_laamp_decision_event.1131 = { #city is finished, wat do
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1131.t
|
|
desc = ep3_laamp_decision_event.1131.desc
|
|
|
|
theme = stewardship
|
|
|
|
override_background = { reference = alley_day }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = happiness
|
|
}
|
|
|
|
trigger = {
|
|
scope:city_location = {
|
|
has_holding_type = castle_holding
|
|
}
|
|
}
|
|
|
|
immediate = { #reward building spawn
|
|
save_scope_value_as = {
|
|
name = year_of_construction
|
|
value = current_year
|
|
}
|
|
|
|
laamp_city_builder_construction_effect = {
|
|
FLAG = mill
|
|
BUILDING = watermills
|
|
}
|
|
|
|
laamp_city_builder_construction_effect = {
|
|
FLAG = castle
|
|
BUILDING = castle
|
|
}
|
|
|
|
laamp_city_builder_construction_effect = {
|
|
FLAG = manor
|
|
BUILDING = farm_estates
|
|
}
|
|
|
|
laamp_city_builder_construction_effect = {
|
|
FLAG = guilds
|
|
BUILDING = guild_halls
|
|
}
|
|
|
|
laamp_city_builder_construction_effect = {
|
|
FLAG = prayer_hall
|
|
BUILDING = monastic_schools
|
|
}
|
|
}
|
|
|
|
on_trigger_fail = {
|
|
if = {
|
|
limit = {
|
|
scope:city_location = { #somehow, the city is still being built
|
|
has_ongoing_construction = yes
|
|
NOT = {
|
|
has_holding = yes
|
|
}
|
|
}
|
|
}
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1131
|
|
months = 1
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #well, actually imma get the whole county
|
|
name = ep3_laamp_decision_event.1131.a
|
|
|
|
add_pressed_claim = scope:city_location.county
|
|
add_pressed_claim = scope:city_location.barony
|
|
start_war = {
|
|
cb = claim_cb
|
|
target = scope:city_location.county.holder
|
|
claimant = root
|
|
target_title = scope:city_location.county
|
|
target_title = scope:city_location.barony
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
|
|
option = { #the city existence is a reward enough
|
|
name = ep3_laamp_decision_event.1131.b
|
|
add_prestige = 2000
|
|
give_nickname = nick_the_city_builder
|
|
custom_tooltip = ep3_laamp_decision_event.1131.b.desc
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1140
|
|
months = { 1 1 }
|
|
}
|
|
remove_character_flag = laamp_city_builder
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
}
|
|
}
|
|
|
|
after = {
|
|
remove_character_flag = laamp_city_builder_guilds
|
|
remove_character_flag = laamp_city_builder_guilds_upgrade
|
|
remove_character_flag = laamp_city_builder_castle
|
|
remove_character_flag = laamp_city_builder_castle_upgrade
|
|
remove_character_flag = laamp_city_builder_manor
|
|
remove_character_flag = laamp_city_builder_manor_upgrade
|
|
remove_character_flag = laamp_city_builder_prayer_hall
|
|
remove_character_flag = laamp_city_builder_prayer_hall_upgrade
|
|
remove_character_flag = laamp_city_builder_mill
|
|
remove_character_flag = laamp_city_builder_mill_upgrade
|
|
}
|
|
|
|
}
|
|
|
|
ep3_laamp_decision_event.1133 = { #get a mill
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1133.t
|
|
window = visit_settlement_window
|
|
desc = ep3_laamp_decision_event.1133.desc
|
|
|
|
theme = stewardship
|
|
|
|
override_background = { reference = terrain }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = survey
|
|
}
|
|
|
|
trigger = {
|
|
scope:city_location = {
|
|
has_ongoing_construction = yes
|
|
NOT = {
|
|
has_holding_type = castle_holding
|
|
}
|
|
}
|
|
OR = {
|
|
stewardship >= 18
|
|
has_trait = architect
|
|
}
|
|
}
|
|
|
|
on_trigger_fail = {
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1134
|
|
months = { 4 6 }
|
|
}
|
|
}
|
|
|
|
option = { #cool
|
|
name = ep3_laamp_decision_event.1133.a
|
|
add_character_flag = laamp_city_builder_mill
|
|
show_as_tooltip = {
|
|
scope:city_location = {
|
|
add_building = watermills_01
|
|
}
|
|
}
|
|
remove_short_term_gold = 80
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
|
|
}
|
|
|
|
option = { #go for it!
|
|
name = ep3_laamp_decision_event.1133.b
|
|
add_character_flag = laamp_city_builder_mill_upgrade
|
|
show_as_tooltip = {
|
|
scope:city_location = {
|
|
add_building = watermills_03
|
|
}
|
|
}
|
|
remove_short_term_gold = 200
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
}
|
|
}
|
|
|
|
option = { #nah
|
|
name = ep3_laamp_decision_event.1133.c
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
|
|
after = {
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1134
|
|
months = { 4 6 }
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
ep3_laamp_decision_event.1134 = { #get more settlers, main building upgrade
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1134.t
|
|
window = visit_settlement_window
|
|
desc = ep3_laamp_decision_event.1134.desc
|
|
|
|
theme = stewardship
|
|
|
|
override_background = { reference = terrain }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = survey
|
|
}
|
|
|
|
trigger = {
|
|
scope:city_location = {
|
|
has_ongoing_construction = yes
|
|
NOT = {
|
|
has_holding_type = castle_holding
|
|
}
|
|
}
|
|
OR = {
|
|
piety_level >= 3
|
|
prestige_level >= 3
|
|
}
|
|
}
|
|
|
|
on_trigger_fail = {
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1135
|
|
months = { 4 6 }
|
|
}
|
|
}
|
|
|
|
option = { #cool
|
|
name = ep3_laamp_decision_event.1134.a
|
|
add_character_flag = laamp_city_builder_castle
|
|
scope:city_location = {
|
|
show_as_tooltip = { add_building = castle_02 }
|
|
}
|
|
remove_short_term_gold = 20
|
|
if = {
|
|
limit = {
|
|
piety_level >= 3
|
|
}
|
|
add_piety = -300
|
|
}
|
|
else = {
|
|
add_prestige = -300
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
|
|
}
|
|
|
|
option = { #go for it!
|
|
name = ep3_laamp_decision_event.1134.b
|
|
add_character_flag = laamp_city_builder_castle_upgrade
|
|
scope:city_location = {
|
|
show_as_tooltip = { add_building = castle_03 }
|
|
}
|
|
remove_short_term_gold = 40
|
|
if = {
|
|
limit = {
|
|
piety_level >= 3
|
|
}
|
|
add_piety = -500
|
|
}
|
|
else = {
|
|
add_prestige = -500
|
|
}
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
}
|
|
}
|
|
|
|
option = { #nah
|
|
name = ep3_laamp_decision_event.1134.c
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
|
|
after = {
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1135
|
|
months = { 4 6 }
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
ep3_laamp_decision_event.1135 = { #argue for more favorable land assigment from county ruler, get manor houses building
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1135.t
|
|
window = visit_settlement_window
|
|
desc = ep3_laamp_decision_event.1135.desc
|
|
|
|
theme = stewardship
|
|
|
|
override_background = { reference = terrain }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = survey
|
|
}
|
|
|
|
right_portrait = {
|
|
character = scope:city_location.county.holder
|
|
animation = thinking
|
|
}
|
|
|
|
trigger = {
|
|
scope:city_location = {
|
|
has_ongoing_construction = yes
|
|
NOT = {
|
|
has_holding_type = castle_holding
|
|
}
|
|
}
|
|
scope:city_location.county.holder = {
|
|
reverse_opinion = {
|
|
target = root
|
|
value >= 40
|
|
}
|
|
}
|
|
NOR = {
|
|
scope:city_location = {
|
|
terrain = desert
|
|
terrain = desert_mountains
|
|
}
|
|
}
|
|
}
|
|
|
|
option = { #cool
|
|
name = ep3_laamp_decision_event.1135.a
|
|
add_character_flag = laamp_city_builder_manor
|
|
show_as_tooltip = {
|
|
scope:city_location = {
|
|
add_building = farm_estates_01
|
|
}
|
|
}
|
|
pay_short_term_gold = {
|
|
target = scope:city_location.county.holder
|
|
gold = 80
|
|
}
|
|
remove_short_term_gold = 60
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
|
|
option = { #go for it!
|
|
name = ep3_laamp_decision_event.1135.b
|
|
add_character_flag = laamp_city_builder_manor_upgrade
|
|
show_as_tooltip = {
|
|
scope:city_location = {
|
|
add_building = farm_estates_03
|
|
}
|
|
}
|
|
pay_short_term_gold = {
|
|
target = scope:city_location.county.holder
|
|
gold = 120
|
|
}
|
|
remove_short_term_gold = 220
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
}
|
|
}
|
|
|
|
option = { #nah
|
|
name = ep3_laamp_decision_event.1135.c
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
ep3_laamp_decision_event.1136 = { #utilize connections, get guildhall
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1136.t
|
|
window = visit_settlement_window
|
|
desc = ep3_laamp_decision_event.1136.desc
|
|
|
|
orphan = yes
|
|
|
|
theme = stewardship
|
|
|
|
override_background = { reference = terrain }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = survey
|
|
}
|
|
|
|
trigger = {
|
|
scope:city_location = {
|
|
has_ongoing_construction = yes
|
|
NOT = {
|
|
has_holding_type = castle_holding
|
|
}
|
|
}
|
|
prestige_level >= 3
|
|
}
|
|
|
|
on_trigger_fail = {
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1137
|
|
months = { 4 6 }
|
|
}
|
|
}
|
|
|
|
option = { #cool
|
|
name = ep3_laamp_decision_event.1136.a
|
|
add_character_flag = laamp_city_builder_guilds
|
|
show_as_tooltip = {
|
|
scope:city_location = {
|
|
add_building = guild_halls_01
|
|
}
|
|
}
|
|
add_prestige = -400
|
|
remove_short_term_gold = 120
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
|
|
}
|
|
|
|
option = { #go for it!
|
|
name = ep3_laamp_decision_event.1136.b
|
|
add_character_flag = laamp_city_builder_guilds_upgrade
|
|
show_as_tooltip = {
|
|
scope:city_location = {
|
|
add_building = guild_halls_03
|
|
}
|
|
}
|
|
add_prestige = -600
|
|
remove_short_term_gold = 200
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
}
|
|
}
|
|
|
|
option = { #nah
|
|
name = ep3_laamp_decision_event.1136.c
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
|
|
after = {
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1137
|
|
months = { 4 6 }
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
ep3_laamp_decision_event.1137 = { #utilize connections, get prayer hall
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1137.t
|
|
window = visit_settlement_window
|
|
desc = ep3_laamp_decision_event.1137.desc
|
|
|
|
theme = stewardship
|
|
|
|
override_background = { reference = terrain }
|
|
|
|
left_portrait = {
|
|
character = root
|
|
animation = survey
|
|
}
|
|
|
|
trigger = {
|
|
scope:city_location = {
|
|
has_ongoing_construction = yes
|
|
NOT = {
|
|
has_holding_type = castle_holding
|
|
}
|
|
}
|
|
piety_level >= 3
|
|
}
|
|
|
|
option = { #cool
|
|
name = ep3_laamp_decision_event.1137.a
|
|
add_character_flag = laamp_city_builder_prayer_hall
|
|
show_as_tooltip = {
|
|
scope:city_location = {
|
|
add_building = monastic_schools_01
|
|
}
|
|
}
|
|
add_piety = -400
|
|
remove_short_term_gold = 120
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
|
|
}
|
|
|
|
option = { #go for it!
|
|
name = ep3_laamp_decision_event.1137.b
|
|
add_character_flag = laamp_city_builder_prayer_hall_upgrade
|
|
show_as_tooltip = {
|
|
scope:city_location = {
|
|
add_building = monastic_schools_03
|
|
}
|
|
}
|
|
add_piety = -600
|
|
remove_short_term_gold = 200
|
|
|
|
ai_chance = {
|
|
base = 10
|
|
}
|
|
}
|
|
|
|
option = { #nah
|
|
name = ep3_laamp_decision_event.1137.c
|
|
|
|
ai_chance = {
|
|
base = 0
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
ep3_laamp_decision_event.1140 = { #city pays dividend
|
|
hidden = yes
|
|
|
|
trigger = {
|
|
has_government = landless_adventurer_government
|
|
current_year <= laamp_city_construction_year_value
|
|
}
|
|
|
|
immediate = {
|
|
send_interface_toast = {
|
|
type = event_toast_effect_good
|
|
title = ep3_laamp_decision_event.1140.toast
|
|
left_icon = scope:city_location.barony
|
|
add_gold = {
|
|
value = 0
|
|
add = {
|
|
value = 4
|
|
multiply = scope:city_location.combined_building_level
|
|
}
|
|
add = {
|
|
value = 3
|
|
multiply = scope:city_location.county.development_level
|
|
}
|
|
multiply = { # Slowly decrease over time, by 1% every year
|
|
value = {
|
|
value = laamp_city_construction_year_value
|
|
subtract = current_year
|
|
divide = 100
|
|
}
|
|
}
|
|
min = 25
|
|
max = 200
|
|
}
|
|
}
|
|
primary_title.holder ?= {
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1140
|
|
months = { 11 13 }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
##################################################
|
|
# Butcher Animals
|
|
# by Ewan Cowhig Croft
|
|
# 1201 - 1210
|
|
##################################################
|
|
|
|
scripted_effect 1201_prune_dog_stories_effect = {
|
|
remove_dog_story_modifiers_effect = yes
|
|
random_owned_story = {
|
|
type = story_cycle_pet_dog
|
|
hidden_effect = { end_story = yes }
|
|
}
|
|
}
|
|
|
|
|
|
# Your camp eats its dogs.
|
|
ep3_laamp_decision_event.1201 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1201.t
|
|
desc = {
|
|
desc = ep3_laamp_decision_event.1201.desc.intro
|
|
first_valid = {
|
|
# There's a whole kennels being eaten, including our dog.
|
|
triggered_desc = {
|
|
trigger = {
|
|
exists = scope:kennels_gone
|
|
has_character_modifier = dog_story_modifier
|
|
}
|
|
desc = ep3_laamp_decision_event.1201.desc.eaten.kennels.have_dog
|
|
}
|
|
# There's a whole kennels being eaten, but we lack a dog.
|
|
triggered_desc = {
|
|
trigger = { exists = scope:kennels_gone }
|
|
desc = ep3_laamp_decision_event.1201.desc.eaten.kennels.no_dog
|
|
}
|
|
# There's one dog being eaten, and it's ours.
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dogs_killed = 1
|
|
has_character_modifier = dog_story_modifier
|
|
}
|
|
desc = ep3_laamp_decision_event.1201.desc.eaten.one.have_dog
|
|
}
|
|
# There's one dog being eaten, and it's someone else's.
|
|
triggered_desc = {
|
|
trigger = { scope:dogs_killed = 1 }
|
|
desc = ep3_laamp_decision_event.1201.desc.eaten.one.no_dog
|
|
}
|
|
# There's many dogs being eaten, one of them ours.
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dogs_killed >= 4
|
|
has_character_modifier = dog_story_modifier
|
|
}
|
|
desc = ep3_laamp_decision_event.1201.desc.eaten.many.have_dog
|
|
}
|
|
# There's many dogs being eaten, none of them ours.
|
|
triggered_desc = {
|
|
trigger = { scope:dogs_killed >= 4 }
|
|
desc = ep3_laamp_decision_event.1201.desc.eaten.many.no_dog
|
|
}
|
|
# There's a bare handful of dogs being eaten, one of them ours.
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:dogs_killed <= 3
|
|
has_character_modifier = dog_story_modifier
|
|
}
|
|
desc = ep3_laamp_decision_event.1201.desc.eaten.some.have_dog
|
|
}
|
|
# There's a bare handful of dogs being eaten, none of them ours.
|
|
desc = ep3_laamp_decision_event.1201.desc.eaten.some.no_dog
|
|
}
|
|
desc = ep3_laamp_decision_event.1201.desc.outro
|
|
}
|
|
theme = laamp
|
|
left_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = { has_trait = callous }
|
|
animation = dismissal
|
|
}
|
|
animation = stress
|
|
}
|
|
right_portrait = {
|
|
character = scope:portrait_char
|
|
animation = fear
|
|
}
|
|
|
|
immediate = {
|
|
# Apply cooldown.
|
|
add_character_flag = {
|
|
flag = recently_ate_dogs
|
|
years = butcher_animals_decision_regular_cooldown_value
|
|
}
|
|
# Register how many provisions we'll get.
|
|
domicile = {
|
|
change_provisions = {
|
|
value = {
|
|
value = 0
|
|
root = {
|
|
every_courtier = {
|
|
limit = { has_character_modifier = dog_story_modifier }
|
|
add = butcher_animals_decision_dog_provision_value
|
|
}
|
|
if = {
|
|
limit = { has_character_modifier = dog_story_modifier }
|
|
add = butcher_animals_decision_dog_provision_value
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_domicile_building = baggage_train_kennel }
|
|
add = butcher_animals_decision_dog_building_provision_value
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Sort our aesthetics.
|
|
## How many dogs are we losing?
|
|
save_scope_value_as = {
|
|
name = dogs_killed
|
|
value = {
|
|
every_courtier = {
|
|
limit = { has_character_modifier = dog_story_modifier }
|
|
add = 1
|
|
}
|
|
if = {
|
|
limit = { has_character_modifier = dog_story_modifier }
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
## Grab a portrait if possible.
|
|
random_courtier = {
|
|
limit = {
|
|
NOT = { has_trait = callous }
|
|
has_character_modifier = dog_story_modifier
|
|
}
|
|
weight = {
|
|
modifier = {
|
|
add = 1000
|
|
OR = {
|
|
is_close_family_of = root
|
|
is_consort_of = root
|
|
has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root }
|
|
}
|
|
}
|
|
}
|
|
save_scope_as = portrait_char
|
|
}
|
|
# Aaaand remove our dogs.
|
|
## We do this separately in various blocks for proper tooltipping & linking.
|
|
every_courtier = {
|
|
custom = ep3_laamp_decision_event.1201.tt.followers_with_dogs
|
|
limit = {
|
|
NOT = { has_trait = callous }
|
|
has_character_modifier = dog_story_modifier
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = butcher_opinion
|
|
opinion = -25
|
|
}
|
|
}
|
|
every_courtier = {
|
|
limit = { has_character_modifier = dog_story_modifier }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1201.tt.dog_lost
|
|
subject = this
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
every_courtier = { 1201_prune_dog_stories_effect = yes }
|
|
}
|
|
# Liquidate the kennels.
|
|
domicile = {
|
|
if = {
|
|
limit = { has_domicile_building = baggage_train_kennel }
|
|
remove_domicile_building = baggage_train_kennel
|
|
# Flag that this happened.
|
|
save_scope_value_as = {
|
|
name = kennels_gone
|
|
value = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Non-callous.
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { has_character_modifier = dog_story_modifier }
|
|
desc = ep3_laamp_decision_event.1201.a.own_dog
|
|
}
|
|
desc = ep3_laamp_decision_event.1201.a
|
|
}
|
|
}
|
|
}
|
|
|
|
# We do stress first because it's more if you eat your own pets.
|
|
if = {
|
|
limit = { has_character_modifier = dog_story_modifier }
|
|
# Goodbye, good boy.
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1201.tt.your_dog_lost
|
|
1201_prune_dog_stories_effect = yes
|
|
}
|
|
stress_impact = {
|
|
base = massive_stress_gain
|
|
sadistic = minor_stress_impact_loss
|
|
compassionate = minor_stress_impact_gain
|
|
}
|
|
}
|
|
else = {
|
|
stress_impact = {
|
|
base = major_stress_gain
|
|
sadistic = minor_stress_impact_loss
|
|
compassionate = minor_stress_impact_gain
|
|
}
|
|
}
|
|
|
|
# The AI only takes this if they have no other option.
|
|
ai_chance = { base = 0 }
|
|
}
|
|
|
|
# Callous.
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { has_character_modifier = dog_story_modifier }
|
|
desc = ep3_laamp_decision_event.1201.b.own_dog
|
|
}
|
|
desc = ep3_laamp_decision_event.1201.b
|
|
}
|
|
}
|
|
}
|
|
trigger = { has_trait = callous }
|
|
trait = callous
|
|
|
|
# Eh, I can get another.
|
|
if = {
|
|
limit = { has_character_modifier = dog_story_modifier }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1201.tt.your_dog_lost
|
|
1201_prune_dog_stories_effect = yes
|
|
}
|
|
}
|
|
|
|
stress_impact = { callous = massive_stress_impact_loss }
|
|
# If the AI is callous, they should always take this.
|
|
ai_chance = { base = 1000 }
|
|
}
|
|
}
|
|
|
|
scripted_effect 1202_prune_cat_stories_effect = {
|
|
remove_cat_story_modifiers_effect = yes
|
|
random_owned_story = {
|
|
type = story_cycle_pet_cat
|
|
hidden_effect = { end_story = yes }
|
|
}
|
|
}
|
|
|
|
# Your camp eats its cats.
|
|
ep3_laamp_decision_event.1202 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1202.t
|
|
desc = {
|
|
desc = ep3_laamp_decision_event.1202.desc.intro
|
|
first_valid = {
|
|
# There's one cat being eaten, and it's ours.
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:cats_killed = 1
|
|
has_character_modifier = cat_story_modifier
|
|
}
|
|
desc = ep3_laamp_decision_event.1202.desc.eaten.one.have_cat
|
|
}
|
|
# There's one cat being eaten, and it's someone else's.
|
|
triggered_desc = {
|
|
trigger = { scope:cats_killed = 1 }
|
|
desc = ep3_laamp_decision_event.1202.desc.eaten.one.no_cat
|
|
}
|
|
# There's many cats being eaten, one of them ours.
|
|
triggered_desc = {
|
|
trigger = {
|
|
scope:cats_killed >= 4
|
|
has_character_modifier = cat_story_modifier
|
|
}
|
|
desc = ep3_laamp_decision_event.1202.desc.eaten.many.have_cat
|
|
}
|
|
# There's many cats being eaten, none of them ours.
|
|
triggered_desc = {
|
|
trigger = { scope:cats_killed >= 4 }
|
|
desc = ep3_laamp_decision_event.1202.desc.eaten.many.no_cat
|
|
}
|
|
# There's a bare handful of cats being eaten, one of them ours.
|
|
triggered_desc = {
|
|
trigger = { has_character_modifier = cat_story_modifier }
|
|
desc = ep3_laamp_decision_event.1202.desc.eaten.some.have_cat
|
|
}
|
|
# There's a bare handful of cats being eaten, none of them ours.
|
|
desc = ep3_laamp_decision_event.1202.desc.eaten.some.no_cat
|
|
}
|
|
desc = ep3_laamp_decision_event.1202.desc.outro
|
|
}
|
|
theme = laamp
|
|
left_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = { has_trait = callous }
|
|
animation = dismissal
|
|
}
|
|
animation = stress
|
|
}
|
|
right_portrait = {
|
|
character = scope:portrait_char
|
|
animation = fear
|
|
}
|
|
|
|
immediate = {
|
|
# Apply cooldown.
|
|
add_character_flag = {
|
|
flag = recently_ate_cats
|
|
years = butcher_animals_decision_regular_cooldown_value
|
|
}
|
|
# Register how many provisions we'll get.
|
|
domicile = {
|
|
change_provisions = {
|
|
value = {
|
|
value = 0
|
|
root = {
|
|
every_courtier = {
|
|
limit = { has_character_modifier = cat_story_modifier }
|
|
add = butcher_animals_decision_cat_provision_value
|
|
}
|
|
if = {
|
|
limit = { has_character_modifier = cat_story_modifier }
|
|
add = butcher_animals_decision_cat_provision_value
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
# Sort our aesthetics.
|
|
## How many cats are we losing?
|
|
save_scope_value_as = {
|
|
name = cats_killed
|
|
value = {
|
|
every_courtier = {
|
|
limit = { has_character_modifier = cat_story_modifier }
|
|
add = 1
|
|
}
|
|
if = {
|
|
limit = { has_character_modifier = cat_story_modifier }
|
|
add = 1
|
|
}
|
|
}
|
|
}
|
|
## Grab a portrait if possible.
|
|
random_courtier = {
|
|
limit = {
|
|
NOT = { has_trait = callous }
|
|
has_character_modifier = cat_story_modifier
|
|
}
|
|
weight = {
|
|
modifier = {
|
|
add = 1000
|
|
OR = {
|
|
is_close_family_of = root
|
|
is_consort_of = root
|
|
has_any_moderate_good_relationship_with_character_trigger = { CHARACTER = root }
|
|
}
|
|
}
|
|
}
|
|
save_scope_as = portrait_char
|
|
}
|
|
# Aaaand remove our cats.
|
|
## We do this separately in various blocks for proper tooltipping & linking.
|
|
every_courtier = {
|
|
custom = ep3_laamp_decision_event.1201.tt.followers_with_cats
|
|
limit = {
|
|
NOT = { has_trait = callous }
|
|
has_character_modifier = cat_story_modifier
|
|
}
|
|
add_opinion = {
|
|
target = root
|
|
modifier = butcher_opinion
|
|
opinion = -25
|
|
}
|
|
}
|
|
every_courtier = {
|
|
limit = { has_character_modifier = cat_story_modifier }
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1202.tt.cat_lost
|
|
subject = this
|
|
}
|
|
}
|
|
hidden_effect = {
|
|
every_courtier = { 1202_prune_cat_stories_effect = yes }
|
|
}
|
|
}
|
|
|
|
# Non-callous.
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { has_character_modifier = cat_story_modifier }
|
|
desc = ep3_laamp_decision_event.1202.a.own_cat
|
|
}
|
|
desc = ep3_laamp_decision_event.1202.a
|
|
}
|
|
}
|
|
}
|
|
|
|
# We do stress first because it's more if you eat your own pets.
|
|
if = {
|
|
limit = { has_character_modifier = cat_story_modifier }
|
|
# Our regal companionship is ended.
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1202.tt.your_cat_lost
|
|
1202_prune_cat_stories_effect = yes
|
|
}
|
|
stress_impact = {
|
|
base = massive_stress_gain
|
|
sadistic = minor_stress_impact_loss
|
|
compassionate = minor_stress_impact_gain
|
|
}
|
|
}
|
|
else = {
|
|
stress_impact = {
|
|
base = major_stress_gain
|
|
sadistic = minor_stress_impact_loss
|
|
compassionate = minor_stress_impact_gain
|
|
}
|
|
}
|
|
|
|
# The AI only takes this if they have no other option.
|
|
ai_chance = { base = 0 }
|
|
}
|
|
|
|
# Callous.
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { has_character_modifier = cat_story_modifier }
|
|
desc = ep3_laamp_decision_event.1202.b.own_cat
|
|
}
|
|
desc = ep3_laamp_decision_event.1202.b
|
|
}
|
|
}
|
|
}
|
|
trigger = { has_trait = callous }
|
|
trait = callous
|
|
|
|
# A cat is a cat.
|
|
if = {
|
|
limit = { has_character_modifier = cat_story_modifier }
|
|
# Our regal companionship is ended.
|
|
custom_tooltip = {
|
|
text = ep3_laamp_decision_event.1202.tt.your_cat_lost
|
|
1202_prune_cat_stories_effect = yes
|
|
}
|
|
}
|
|
|
|
stress_impact = { callous = massive_stress_impact_loss }
|
|
# If the AI is callous, they should always take this.
|
|
ai_chance = { base = 1000 }
|
|
}
|
|
}
|
|
|
|
|
|
scripted_effect 1203_prune_horse_stories_effect = {
|
|
remove_horse_story_modifiers_effect = yes
|
|
random_owned_story = {
|
|
type = story_cycle_martial_lifestyle_warhorse
|
|
end_story = yes
|
|
}
|
|
}
|
|
|
|
# Your camp eats its horses.
|
|
ep3_laamp_decision_event.1203 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1203.t
|
|
desc = {
|
|
desc = ep3_laamp_decision_event.1203.desc.intro
|
|
first_valid = {
|
|
# Both your horse and your reserve steeds are getting eaten.
|
|
triggered_desc = {
|
|
trigger = {
|
|
has_character_modifier = horse_story_modifier
|
|
exists = scope:horses_gone
|
|
}
|
|
desc = ep3_laamp_decision_event.1203.desc.eaten.both
|
|
}
|
|
# Just your horse is getting eaten.
|
|
triggered_desc = {
|
|
trigger = { has_character_modifier = horse_story_modifier }
|
|
desc = ep3_laamp_decision_event.1203.desc.eaten.own_horse
|
|
}
|
|
# Just the reserve steeds are getting eaten.
|
|
triggered_desc = {
|
|
trigger = { exists = scope:horses_gone }
|
|
desc = ep3_laamp_decision_event.1203.desc.eaten.reserve_steeds
|
|
}
|
|
}
|
|
desc = ep3_laamp_decision_event.1203.desc.outro
|
|
}
|
|
theme = laamp
|
|
left_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = { has_trait = callous }
|
|
animation = dismissal
|
|
}
|
|
animation = stress
|
|
}
|
|
|
|
immediate = {
|
|
# Apply cooldown.
|
|
add_character_flag = {
|
|
flag = recently_ate_horses
|
|
years = butcher_animals_decision_regular_cooldown_value
|
|
}
|
|
# Make it look like we've killed our horse, but hold them till after for loc.
|
|
show_as_tooltip = { 1203_prune_horse_stories_effect = yes }
|
|
# Register how many provisions we'll get.
|
|
domicile = {
|
|
change_provisions = {
|
|
root = {
|
|
if = {
|
|
limit = { has_character_modifier = horse_story_modifier }
|
|
add = butcher_animals_decision_horse_provision_value
|
|
}
|
|
}
|
|
if = {
|
|
limit = { has_domicile_building = baggage_train_ample_steeds }
|
|
add = butcher_animals_decision_horse_building_provision_value
|
|
}
|
|
}
|
|
# Liquidate the horses.
|
|
if = {
|
|
limit = { has_domicile_building = baggage_train_ample_steeds }
|
|
remove_domicile_building = baggage_train_ample_steeds
|
|
# Flag that this happened.
|
|
save_scope_value_as = {
|
|
name = horses_gone
|
|
value = yes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Non-callous: even in death, they carry us forward..
|
|
option = {
|
|
name = {
|
|
text = {
|
|
first_valid = {
|
|
triggered_desc = {
|
|
trigger = { exists = scope:horses_gone }
|
|
desc = ep3_laamp_decision_event.1203.a.many_steeds
|
|
}
|
|
desc = ep3_laamp_decision_event.1203.a.single_steed
|
|
}
|
|
}
|
|
}
|
|
|
|
stress_impact = {
|
|
base = major_stress_gain
|
|
sadistic = minor_stress_impact_loss
|
|
compassionate = minor_stress_impact_gain
|
|
}
|
|
# The AI only takes this if they have no other option.
|
|
ai_chance = { base = 0 }
|
|
}
|
|
|
|
# Callous: you know, this isn't that bad actually...
|
|
option = {
|
|
name = ep3_laamp_decision_event.1203.b
|
|
trigger = { has_trait = callous }
|
|
trait = callous
|
|
|
|
stress_impact = { callous = massive_stress_impact_loss }
|
|
# If the AI is callous, they should always take this.
|
|
ai_chance = { base = 1000 }
|
|
}
|
|
|
|
after = {
|
|
hidden_effect = { 1203_prune_horse_stories_effect = yes }
|
|
}
|
|
}
|
|
|
|
# Your camp eats its elephants.
|
|
ep3_laamp_decision_event.1204 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1204.t
|
|
desc = ep3_laamp_decision_event.1204.desc
|
|
theme = laamp
|
|
left_portrait = {
|
|
character = root
|
|
triggered_animation = {
|
|
trigger = { has_trait = callous }
|
|
animation = dismissal
|
|
}
|
|
animation = stress
|
|
}
|
|
|
|
immediate = {
|
|
# Apply cooldown.
|
|
add_character_flag = {
|
|
flag = recently_ate_elephants
|
|
years = butcher_animals_decision_elephant_cooldown_value
|
|
}
|
|
# Register how many provisions we'll get.
|
|
domicile = {
|
|
change_provisions = butcher_animals_decision_elephant_building_provision
|
|
# Liquidate the elephants.
|
|
if = {
|
|
limit = { has_domicile_building = proving_grounds_elephantry_reserve }
|
|
remove_domicile_building = proving_grounds_elephantry_reserve
|
|
}
|
|
}
|
|
}
|
|
|
|
# Non-callous.
|
|
option = {
|
|
name = ep3_laamp_decision_event.1204.a
|
|
|
|
stress_impact = {
|
|
base = major_stress_gain
|
|
sadistic = minor_stress_impact_loss
|
|
compassionate = minor_stress_impact_gain
|
|
}
|
|
# The AI only takes this if they have no other option.
|
|
ai_chance = { base = 0 }
|
|
}
|
|
|
|
# Callous.
|
|
option = {
|
|
name = ep3_laamp_decision_event.1204.b
|
|
trigger = { has_trait = callous }
|
|
trait = callous
|
|
|
|
stress_impact = { callous = massive_stress_impact_loss }
|
|
# If the AI is callous, they should always take this.
|
|
ai_chance = { base = 1000 }
|
|
}
|
|
|
|
# Will there be additional consequences?
|
|
after = {
|
|
if = {
|
|
limit = {
|
|
any_maa_regiment = { is_unit_type = elephant_cavalry }
|
|
}
|
|
trigger_event = {
|
|
id = ep3_laamp_decision_event.1205
|
|
years = 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
# Elephant survivors never forget.
|
|
ep3_laamp_decision_event.1205 = {
|
|
type = character_event
|
|
title = ep3_laamp_decision_event.1205.t
|
|
desc = ep3_laamp_decision_event.1205.desc
|
|
theme = laamp
|
|
left_portrait = {
|
|
character = root
|
|
animation = shock
|
|
}
|
|
|
|
immediate = { add_character_modifier = ep3_laamp_decision_event_1205_modifier }
|
|
|
|
# Damn and blast these recalcitrant beasts!
|
|
option = {
|
|
name = ep3_laamp_decision_event.1205.a
|
|
|
|
custom_tooltip = ep3_laamp_decision_event.1205.a.tt
|
|
|
|
# No stress, no AI.
|
|
}
|
|
}
|
|
|
|
scripted_trigger ep3_laamp_decision_event_1300_age_diff_trigger = {
|
|
OR = {
|
|
age <= {
|
|
value = scope:char_current.age
|
|
add = 5
|
|
}
|
|
scope:char_current.age >= {
|
|
value = age
|
|
add = 5
|
|
}
|
|
}
|
|
}
|
|
|
|
#Youths of LAAMP-prone cultures consider becoming LAAMPs
|
|
ep3_laamp_decision_event.1300 = {
|
|
hidden = yes
|
|
trigger = {
|
|
laamp_youth_cultural_tradition_trigger = yes
|
|
#Looser skill reqs for eager-ass Normans
|
|
trigger_if = {
|
|
limit = {
|
|
culture = {
|
|
has_cultural_parameter = much_more_likely_to_be_laamps
|
|
}
|
|
}
|
|
OR = {
|
|
prowess >= 8
|
|
martial >= 8
|
|
}
|
|
}
|
|
trigger_else = {
|
|
OR = {
|
|
prowess >= 10
|
|
martial >= 10
|
|
}
|
|
}
|
|
ai_boldness > 0
|
|
ai_energy > 0
|
|
}
|
|
immediate = {
|
|
random = {
|
|
chance = 0
|
|
modifier = { add = ep3_laamp_chance_score_value }
|
|
#Counteract bonus in above value somewhat
|
|
modifier = {
|
|
always = yes
|
|
add = -50
|
|
}
|
|
create_landless_adventurer_title_effect = {
|
|
REASON = flag:runaway_allowed
|
|
FLAVOR_CHAR = liege
|
|
}
|
|
# Create a bunch of secondary chars to go on their adventure with them (so that Norman/Turkish bands don't immediately de-Normanify/Turkify).
|
|
while = {
|
|
count = 3
|
|
create_character = {
|
|
template = soldier_friend_character
|
|
employer = root
|
|
culture = root.culture
|
|
faith = root.faith
|
|
age = root.age
|
|
gender_female_chance = root_soldier_female_chance
|
|
after_creation = { add_to_list = created_chars_list }
|
|
}
|
|
}
|
|
while = {
|
|
count = 3
|
|
create_character = {
|
|
template = mercenary
|
|
employer = root
|
|
culture = root.culture
|
|
faith = root.faith
|
|
gender_female_chance = root_soldier_female_chance
|
|
after_creation = { add_to_list = created_chars_list }
|
|
}
|
|
}
|
|
## Plus add starting drama.
|
|
every_in_list = {
|
|
list = created_chars_list
|
|
save_scope_as = char_current
|
|
random_list = {
|
|
100 = {
|
|
trigger = {
|
|
any_in_list = {
|
|
list = created_chars_list
|
|
can_set_relation_friend_trigger = { CHARACTER = scope:char_current }
|
|
}
|
|
}
|
|
random_in_list = {
|
|
list = created_chars_list
|
|
limit = {
|
|
can_set_relation_friend_trigger = { CHARACTER = scope:char_current }
|
|
}
|
|
set_random_friendship_reason = { TARGET = scope:char_current }
|
|
}
|
|
}
|
|
100 = {
|
|
trigger = {
|
|
any_in_list = {
|
|
list = created_chars_list
|
|
can_set_relation_rival_trigger = { CHARACTER = scope:char_current }
|
|
}
|
|
}
|
|
random_in_list = {
|
|
list = created_chars_list
|
|
limit = {
|
|
can_set_relation_rival_trigger = { CHARACTER = scope:char_current }
|
|
}
|
|
set_random_rivalry_reason = {
|
|
TARGET = scope:char_current
|
|
RELATION = rival
|
|
}
|
|
}
|
|
}
|
|
100 = {
|
|
trigger = {
|
|
any_in_list = {
|
|
list = created_chars_list
|
|
ep3_laamp_decision_event_1300_age_diff_trigger = yes
|
|
can_set_relation_lover_trigger = { CHARACTER = scope:char_current }
|
|
}
|
|
}
|
|
random_in_list = {
|
|
list = created_chars_list
|
|
limit = {
|
|
ep3_laamp_decision_event_1300_age_diff_trigger = yes
|
|
can_set_relation_lover_trigger = { CHARACTER = scope:char_current }
|
|
}
|
|
set_random_lover_reason = { TARGET = scope:char_current }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
trigger_event = ep3_laamps.0003
|
|
if = { # Debug AI tracking
|
|
limit = { debug_only = yes }
|
|
if = {
|
|
limit = { exists = global_var:ai_birthday_cultrad_laamp_count }
|
|
change_global_variable = {
|
|
name = ai_birthday_cultrad_laamp_count
|
|
add = 1
|
|
}
|
|
}
|
|
else = {
|
|
set_global_variable = {
|
|
name = ai_birthday_cultrad_laamp_count
|
|
value = 1
|
|
}
|
|
}
|
|
debug_log = "AI became adventurer due to cultural tradition"
|
|
debug_log_scopes = yes
|
|
}
|
|
}
|
|
}
|
|
}
|