8316 lines
248 KiB
Text
8316 lines
248 KiB
Text
|
|
##################################################
|
||
|
|
# INFO
|
||
|
|
# For laamp contracts that are broadly applicable: that is, they should be able to trigger virtually anywhere and with a minimum of triggers.
|
||
|
|
# The idea is that any given laamp led by a character skilled in any one thing should always be viable — maybe through crime, maybe by demeaning themselves, but they should always have some contracts around to work with.
|
||
|
|
##################################################
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
##################################################
|
||
|
|
# GROUPS (for populate_task_contracts_for_area)
|
||
|
|
#
|
||
|
|
# laamp_contracts_criminal_group
|
||
|
|
# laamp_contracts_diplomacy_group
|
||
|
|
# laamp_contracts_hireling_group
|
||
|
|
# laamp_contracts_hunting_group
|
||
|
|
# laamp_contracts_intrigue_group
|
||
|
|
# laamp_contracts_learning_group
|
||
|
|
# laamp_contracts_martial_group
|
||
|
|
# laamp_contracts_stewardship_group
|
||
|
|
# laamp_contracts_justicar_group
|
||
|
|
#
|
||
|
|
|
||
|
|
##################################################
|
||
|
|
# #Diplo Contracts
|
||
|
|
# laamp_base_0001 Regale court with stories
|
||
|
|
# laamp_base_0011 Improve ruler's reputation
|
||
|
|
# laamp_base_0021 Hobnob with local ruler
|
||
|
|
# laamp_base_0031 Paid Mediator
|
||
|
|
# laamp_base_0041 Confidence trickster
|
||
|
|
#
|
||
|
|
# #Martial Contracts
|
||
|
|
# laamp_base_1001 Hunt criminals
|
||
|
|
# laamp_base_1011 Act as hired muscle
|
||
|
|
# laamp_base_1021 Help train local MaA
|
||
|
|
# laamp_base_1031 Garrison service
|
||
|
|
# laamp_base_1041 Ambush travellers
|
||
|
|
#
|
||
|
|
# #Stewardship Contracts
|
||
|
|
# laamp_base_2001 Collect taxes for a third party
|
||
|
|
# laamp_base_2011 Perform a census
|
||
|
|
# laamp_base_2021 Help construct a building
|
||
|
|
# laamp_base_2031 Settle an administrative boundary dispute
|
||
|
|
# laamp_base_2041 Collect fake taxes
|
||
|
|
#
|
||
|
|
# #Intrigue Contracts
|
||
|
|
# laamp_base_3001 Provide intelligence from your trips
|
||
|
|
# laamp_base_3011 Murder a character's rival
|
||
|
|
# laamp_base_3021 Abduct a character's rival
|
||
|
|
# laamp_base_3031 Attack the property of a character's rival
|
||
|
|
# laamp_base_3041 Heist from a ruler's treasury
|
||
|
|
#
|
||
|
|
# #Learning Contracts
|
||
|
|
# laamp_base_4001 Transcribe texts for a learned ruler
|
||
|
|
# laamp_base_4011 Help settle theological arguments
|
||
|
|
# laamp_base_4021 Create a work of learning for a ruler
|
||
|
|
# laamp_base_4031 Solicit Charity
|
||
|
|
# laamp_base_4041 Sell bogus relics
|
||
|
|
# laamp_base_4100 Act as a tutor for ruler's child
|
||
|
|
#
|
||
|
|
# #Prowess Contracts
|
||
|
|
# laamp_base_5001 Hunt in the wilds
|
||
|
|
# laamp_base_5011 Guard merchant properties
|
||
|
|
# laamp_base_5021 Guard a local ruler at a minor event
|
||
|
|
# laamp_base_5031 Go rustling
|
||
|
|
# laamp_base_5041 Go poaching
|
||
|
|
#
|
||
|
|
# #Justicar Contracts
|
||
|
|
# laamp_base_6001 Protect the innocent
|
||
|
|
# laamp_base_6011 Rescue a Fair Non-Combatant Gender
|
||
|
|
# laamp_base_6021 Participate in a Chivalry Play
|
||
|
|
# laamp_base_6031 Do a Pass d'Armes
|
||
|
|
##################################################
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
##################################################
|
||
|
|
# DIPLO CONTRACTS
|
||
|
|
|
||
|
|
# Regale court with stories
|
||
|
|
laamp_base_0001 = {
|
||
|
|
group = laamp_contracts_diplomacy_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/diplomacy.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_diplomacy_value
|
||
|
|
add = laamp_contracts_weight_up_diplomacy_slight_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that like to hear from strangers.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = trusting }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = eccentric }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that don't have time for riff-raff.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arrogant }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
laamp_task_contract_employer_not_antisocial_trigger = yes
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_0001_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.0001
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_half_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Critical Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_critical_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Improve ruler's reputation
|
||
|
|
laamp_base_0011 = {
|
||
|
|
group = laamp_contracts_diplomacy_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/diplomacy.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_diplomacy_value
|
||
|
|
add = laamp_contracts_weight_up_diplomacy_slight_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits most likely to suffer from reputational damage generally.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = shy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = sadistic }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that don't acknowledge fault.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arrogant }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
scope:employer = {
|
||
|
|
# Doesn't feel right coming from anyone too famous, even if they're currently hated.
|
||
|
|
prestige_level <= high_prestige_level
|
||
|
|
OR = {
|
||
|
|
# Anyone who could use a little more political capital.
|
||
|
|
prestige <= 500
|
||
|
|
# Or who's got a bit of a... reputation.
|
||
|
|
strife_opinion >= 1
|
||
|
|
tyranny >= 1
|
||
|
|
# And any important unlikeable characters in their realm that indicate they might be a bit of a prick.
|
||
|
|
any_relation = {
|
||
|
|
type = rival
|
||
|
|
liege ?= prev
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_0011_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.0011
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Critical Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Hobnob with local ruler
|
||
|
|
laamp_base_0021 = {
|
||
|
|
group = laamp_contracts_diplomacy_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/diplomacy.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_diplomacy_value
|
||
|
|
add = laamp_contracts_weight_up_diplomacy_slight_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Actively sociable traits.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = trusting }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = humble }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that don't have time for riff-raff.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arrogant }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
laamp_task_contract_employer_not_antisocial_trigger = yes
|
||
|
|
scope:employer = {
|
||
|
|
NOR = {
|
||
|
|
any_relation = { type = friend }
|
||
|
|
any_relation = { type = lover }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_0021_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.0021
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_half_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_half_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Critical Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_critical_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Paid Mediator
|
||
|
|
laamp_base_0031 = {
|
||
|
|
group = laamp_contracts_diplomacy_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/diplomacy.dds"
|
||
|
|
|
||
|
|
travel = no
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_diplomacy_value
|
||
|
|
add = laamp_contracts_weight_up_diplomacy_slight_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that like to outsource.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = shy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = lazy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arbitrary }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that prefer a hand-on approach.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = diligent }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = just }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = patient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = greedy }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
# Specific flavour triggers.
|
||
|
|
scope:employer = {
|
||
|
|
AND = {
|
||
|
|
highest_held_title_tier >= tier_county
|
||
|
|
sub_realm_size >= 3
|
||
|
|
}
|
||
|
|
NOR = {
|
||
|
|
has_trait = arrogant
|
||
|
|
has_trait = arbitrary
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Then we start the travel.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
trigger_event = laamp_base_contract_schemes.0034
|
||
|
|
set_variable = {
|
||
|
|
name = laamp_base_0031_tally
|
||
|
|
value = 0
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_completed = {
|
||
|
|
# Clean up our variables & such.
|
||
|
|
task_contract_taker = {
|
||
|
|
remove_variable ?= laamp_base_0031_tally
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_diplomacy
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_martial
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_stewardship
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_intrigue
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_learning
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_prowess
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_invalidated = {
|
||
|
|
# Clean up our variables & such.
|
||
|
|
task_contract_taker = {
|
||
|
|
remove_variable ?= laamp_base_0031_tally
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_diplomacy
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_martial
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_stewardship
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_intrigue
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_learning
|
||
|
|
remove_character_flag = laamp_base_0031_contract_used_prowess
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_critical_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Critical Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Confidence trickster
|
||
|
|
laamp_base_0041 = {
|
||
|
|
group = laamp_contracts_criminal_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/diplomacy.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
is_criminal = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_diplomacy_value
|
||
|
|
add = laamp_contracts_weight_up_diplomacy_slight_value
|
||
|
|
add = laamp_contracts_weight_up_criminal_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Credulous traits.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = trusting }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = honest }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = eccentric }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that are naturally suspicious.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = cynical }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = deceitful }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
## Paranoid is already excluded from even vaguely triggering this.
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
scope:employer = {
|
||
|
|
NOT = { has_trait = paranoid }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
root.task_contract_taker = {
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_0041_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.0041
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
set_variable = {
|
||
|
|
name = animation
|
||
|
|
value = 0
|
||
|
|
}
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_crime_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Criminal Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_criminal_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = 0
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = trickster
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = 0
|
||
|
|
OPINION = task_contract_opinion_crime_failure_value
|
||
|
|
OPINION_TYPE = attempted_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = trickster
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
##################################################
|
||
|
|
# MARTIAL & PROWESS CONTRACTS
|
||
|
|
|
||
|
|
# Hunt criminals
|
||
|
|
laamp_base_1001 = {
|
||
|
|
group = laamp_contracts_justicar_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/war.dds"
|
||
|
|
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_martial_value
|
||
|
|
add = laamp_contracts_weight_up_martial_slight_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that are happy to outsource or care largely for results.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = lazy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = just }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that prefer a personal touch.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = patient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = diligent }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = sadistic }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
## Won't resort to this.
|
||
|
|
laamp_task_contract_employer_would_resort_to_violence_trigger = yes
|
||
|
|
## Effects require a capital county.
|
||
|
|
scope:employer.capital_county ?= {
|
||
|
|
# Aaaand we need to have at least three duchies in our de jure kingdom.
|
||
|
|
kingdom = {
|
||
|
|
any_in_de_jure_hierarchy = {
|
||
|
|
continue = { tier >= tier_duchy }
|
||
|
|
tier = tier_duchy
|
||
|
|
count >= 3
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
# Specific flavour triggers.
|
||
|
|
## Effects require a capital county.
|
||
|
|
exists = root.task_contract_employer.capital_county
|
||
|
|
## Make sure that if we've got our recidivist, then they've not died at any time other than when they're _specifically_ allowed to.
|
||
|
|
OR = {
|
||
|
|
NOT = { has_variable = recidivist }
|
||
|
|
var:recidivist ?= {
|
||
|
|
OR = {
|
||
|
|
is_alive = yes
|
||
|
|
root = { has_variable = duel_engaged }
|
||
|
|
}
|
||
|
|
is_imprisoned = no
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Then we start the travel.
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_contract_schemes.1004 }
|
||
|
|
# Track our score/encounters.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = encounters_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
# & numbers of chars checked for loc.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = wins_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_major_gain
|
||
|
|
XP_MIN = knight_errant_xp_major_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_recruitment = {
|
||
|
|
positive = no
|
||
|
|
visible = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_critical_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = bandit
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Act as hired muscle
|
||
|
|
laamp_base_1011 = {
|
||
|
|
group = laamp_contracts_hireling_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/war.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_martial_value
|
||
|
|
add = laamp_contracts_weight_up_martial_slight_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that want to be effective but subtle.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = deceitful }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = patient }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arbitrary }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that feel this type of manipulation is beneath them
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = just }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
## Plus just some where the narrative would feel weird.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = sadistic }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
## Won't resort to this.
|
||
|
|
laamp_task_contract_employer_would_resort_to_violence_trigger = yes
|
||
|
|
laamp_task_contract_employer_would_resort_to_deceit_trigger = yes
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_1011_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.1011
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = var:gold_success_standard
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_medium_gain
|
||
|
|
XP_MIN = knight_errant_xp_medium_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Critical Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_major_gain
|
||
|
|
XP_MIN = knight_errant_xp_major_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Ambush travellers
|
||
|
|
laamp_base_1041 = {
|
||
|
|
group = laamp_contracts_criminal_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/war.dds"
|
||
|
|
|
||
|
|
is_criminal = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_martial_value
|
||
|
|
add = laamp_contracts_weight_up_martial_slight_value
|
||
|
|
add = laamp_contracts_weight_up_criminal_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that don't mind telegraphing weakness.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = trusting }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = honest }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that wouldn't just admit something was wrong.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = deceitful }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arrogant }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
laamp_task_contract_employer_not_antisocial_trigger = yes
|
||
|
|
# Must be at least a count.
|
||
|
|
scope:employer.highest_held_title_tier >= tier_county
|
||
|
|
# Plus make sure we'd have a valid destination to even grab.
|
||
|
|
scope:employer.capital_county = {
|
||
|
|
# Counts travel two duchies over.
|
||
|
|
trigger_if = {
|
||
|
|
limit = { scope:employer.highest_held_title_tier = tier_county }
|
||
|
|
duchy = {
|
||
|
|
any_title_to_title_neighboring_duchy = {
|
||
|
|
any_title_to_title_neighboring_duchy = {
|
||
|
|
this != scope:employer.capital_county.duchy
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# Dukes travel a kingdom over.
|
||
|
|
trigger_else_if = {
|
||
|
|
limit = { scope:employer.highest_held_title_tier = tier_duchy }
|
||
|
|
kingdom = {
|
||
|
|
any_title_to_title_neighboring_kingdom = { exists = this }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# Kings and emperors travel an empire over.
|
||
|
|
trigger_else = {
|
||
|
|
empire = {
|
||
|
|
any_title_to_title_neighboring_empire = { exists = this }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
root.task_contract_taker = {
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Then we start the travel.
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_contract_schemes.1044 }
|
||
|
|
# Plus, set up some variables for us.
|
||
|
|
## Encounters list.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = encounters_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = encounters_max
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
## Our actual haul.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = haul_actual
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
## Path length + length:event ratio — we'll use these to determine how quickly we should get the events.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = path_length
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = event_ratio
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = event_ratio_tracker
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
set_variable = {
|
||
|
|
name = animation
|
||
|
|
value = 0
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Criminal Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_criminal_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
NOT = { exists = scope:suppress_gold_warning }
|
||
|
|
}
|
||
|
|
custom_tooltip = laamp_base_1041.tt.gold_rewards_depend_on_travellers
|
||
|
|
}
|
||
|
|
else = { custom_tooltip = laamp_base_1041.tt.haul_actual }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = 0
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = bandit
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = 0
|
||
|
|
OPINION = task_contract_opinion_crime_failure_value
|
||
|
|
OPINION_TYPE = attempted_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = bandit
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Go rustling
|
||
|
|
laamp_base_5031 = {
|
||
|
|
group = laamp_contracts_criminal_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/war.dds"
|
||
|
|
|
||
|
|
is_criminal = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_prowess_value
|
||
|
|
add = laamp_contracts_weight_up_criminal_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = laamp_contract_would_signpost_own_prosperity_value
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
scope:employer.sub_realm_size >= 2
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
# Specific flavour triggers.
|
||
|
|
root.task_contract_employer.sub_realm_size >= 2
|
||
|
|
root.task_contract_taker = {
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Then we start the travel.
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_contract_schemes.5034 }
|
||
|
|
# Plus, set up some variables for us.
|
||
|
|
## Progress tallies.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = encounter_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = encounter_max
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = wins_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
set_variable = {
|
||
|
|
name = animation
|
||
|
|
value = 0
|
||
|
|
}
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_crime_value
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_critical_crime_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Criminal Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_criminal_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Critical Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = poacher
|
||
|
|
XP_MAX = gallowsbait_xp_major_gain
|
||
|
|
XP_MIN = gallowsbait_xp_major_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Criminal Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_criminal_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = poacher
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_crime_failure_value
|
||
|
|
OPINION_TYPE = attempted_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = poacher
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Mug people.
|
||
|
|
laamp_base_5051 = {
|
||
|
|
group = laamp_contracts_criminal_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/war.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
is_criminal = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_prowess_value
|
||
|
|
add = laamp_contracts_weight_up_criminal_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = { multiply = task_contract_weight_by_tier_value }
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
scope:employer.highest_held_title_tier >= tier_county
|
||
|
|
NOT = { scope:employer = { government_has_flag = government_is_herder } }
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
NOT = { scope:employer = { government_has_flag = government_is_herder } }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
root.task_contract_taker = {
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
NOT = { scope:employer = { government_has_flag = government_is_herder } }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
NOT = { scope:employer = { government_has_flag = government_is_herder } }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_5051_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = scope:task_contract.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.5051
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_crime_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = marauder
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
bandit_king_maa_spawn_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_crime_failure_value
|
||
|
|
OPINION_TYPE = attempted_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = marauder
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
bandit_king_maa_spawn_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
##################################################
|
||
|
|
# STEWARDSHIP CONTRACTS
|
||
|
|
|
||
|
|
# Collect taxes for a third party
|
||
|
|
laamp_base_2001 = {
|
||
|
|
group = laamp_contracts_hireling_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/stewardship.dds"
|
||
|
|
|
||
|
|
travel = no
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_stewardship_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that want their money and think you can get it.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = greedy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = trusting }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = lazy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that either can wait or won't trust you.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = paranoid }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = diligent }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
# Specific flavour triggers.
|
||
|
|
laamp_task_contract_employer_would_chase_money_trigger = yes
|
||
|
|
# And we must have at least one mayor to act as the locus.
|
||
|
|
scope:employer = {
|
||
|
|
any_vassal = { laamp_base_2001_valid_mayor_trigger = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
# Make sure our baron hasn't died.
|
||
|
|
var:person_a = { is_alive = yes }
|
||
|
|
# And that, in MP, our secondaries haven't died either.
|
||
|
|
OR = {
|
||
|
|
NOT = { has_variable = person_b }
|
||
|
|
var:person_b = { is_alive = yes }
|
||
|
|
}
|
||
|
|
OR = {
|
||
|
|
NOT = { has_variable = person_c }
|
||
|
|
var:person_b = { is_alive = yes }
|
||
|
|
}
|
||
|
|
OR = {
|
||
|
|
NOT = { has_variable = person_d }
|
||
|
|
var:person_b = { is_alive = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Grab our best possible baron.
|
||
|
|
scope:employer = {
|
||
|
|
ordered_vassal = {
|
||
|
|
limit = { laamp_base_2001_valid_mayor_trigger = yes }
|
||
|
|
order_by = {
|
||
|
|
value = ai_greed
|
||
|
|
add = {
|
||
|
|
value = ai_honor
|
||
|
|
multiply = -0.5
|
||
|
|
}
|
||
|
|
# Weight down the capital if we can, as it feels weird to not go a city over.
|
||
|
|
if = {
|
||
|
|
limit = { primary_title.county.holder = scope:employer }
|
||
|
|
add = -1000
|
||
|
|
}
|
||
|
|
}
|
||
|
|
save_scope_as = person_a
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# Track this as a variable so that we can invalidate if they die.
|
||
|
|
set_variable = {
|
||
|
|
name = person_a
|
||
|
|
value = scope:person_a
|
||
|
|
}
|
||
|
|
# Plus our score.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = clues_gathered
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
# & numbers of chars checked for loc.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = chars_checked
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
# Then we start the travel.
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_contract_schemes.2004 }
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_half_value
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_qualified_reduced_tax
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_third_value
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_qualified_insufficient_evidence
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_half_value
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_qualified_beaten_down
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_third_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Critical Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_massive_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_qualified_reduced_tax = {
|
||
|
|
visible = no
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_qualified_reduced_tax
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_reduced_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_qualified_insufficient_evidence = {
|
||
|
|
visible = no
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_qualified_insufficient_evidence
|
||
|
|
PRESTIGE = -200
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_qualified_beaten_down = {
|
||
|
|
visible = no
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_qualified_beaten_down
|
||
|
|
PRESTIGE = -200
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_reduced_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_critical = {
|
||
|
|
positive = no
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = -300
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_critical_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = marauder
|
||
|
|
XP_MAX = gallowsbait_xp_major_gain
|
||
|
|
XP_MIN = gallowsbait_xp_major_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_took_wrong_side = {
|
||
|
|
visible = no
|
||
|
|
positive = no
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_critical_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Perform a census
|
||
|
|
laamp_base_2011 = {
|
||
|
|
group = laamp_contracts_stewardship_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/stewardship.dds"
|
||
|
|
|
||
|
|
travel = no
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_stewardship_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that care especially for rules and documentation.
|
||
|
|
### A.k.a: the good kind of designer.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = diligent }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = just }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = greedy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that don't much care for paperwork, preferring vibes.
|
||
|
|
### A.k.a: the bad kind of designer.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = lazy }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arbitrary }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
scope:employer = {
|
||
|
|
domain_size >= 2
|
||
|
|
}
|
||
|
|
# Specific flavour triggers.
|
||
|
|
scope:employer.laamp_base_2011_actual_surveyable_holdings_per_tier_value >= scope:employer.laamp_base_2011_desired_surveyable_holdings_per_tier_value
|
||
|
|
## A census isn't necessarily about money but given the expense involved... yeah most of the time it is.
|
||
|
|
laamp_task_contract_employer_would_chase_money_trigger = yes
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Then we start the travel.
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_contract_schemes.2014 }
|
||
|
|
# Track our score.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = destinations_processed
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
# Plus our methods.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = destinations_processed_legit_success
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = destinations_processed_quartermaster_success
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = destinations_processed_lied_success
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = destinations_processed_guessed_success
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = destinations_processed_legit_failure
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = destinations_processed_quartermaster_failure
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = destinations_processed_lied_failure
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = destinations_processed_guessed_failure
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Critical Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_critical = {
|
||
|
|
positive = no
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = -300
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_critical_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = marauder
|
||
|
|
XP_MAX = gallowsbait_xp_major_gain
|
||
|
|
XP_MIN = gallowsbait_xp_major_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Help construct a building
|
||
|
|
laamp_base_2021 = {
|
||
|
|
group = laamp_contracts_stewardship_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/stewardship.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_stewardship_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that want fresh buildings but aren't great at organising such.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = greedy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = fickle }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = lazy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that do well at construction.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = generous }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = stubborn }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = diligent }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
# Specific flavour triggers.
|
||
|
|
scope:employer = {
|
||
|
|
NOR = {
|
||
|
|
has_trait = architect
|
||
|
|
stewardship >= high_skill_rating
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_2021_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.2021
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Critical Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_critical_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Settle a local dispute
|
||
|
|
laamp_base_2031 = {
|
||
|
|
group = laamp_contracts_stewardship_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/stewardship.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_stewardship_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that are likely to run into these kinds of political troubles but not super able to deal with them.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = honest }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arbitrary }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = fickle }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that would avoid or swiftly resolve the issue.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = deceitful }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = patient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = just }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = stubborn }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
# Don't weight down barons like we usually would, because we _only_ want barons here.
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
# This time around we're dealing with minor disputes, so we only want barons.
|
||
|
|
scope:employer.highest_held_title_tier = tier_barony
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Then we roll our first event..
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_contract_schemes.2035 }
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_half_value
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = success_camp_purpose
|
||
|
|
value = task_contract_success_gold_gain_half_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = success_sacked_settlement
|
||
|
|
value = task_contract_success_gold_gain_critical_crime_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Critical Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_camp_purpose = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
visible = no
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:success_camp_purpose
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_sacked_settlement = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
visible = no
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:success_sacked_settlement
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = marauder
|
||
|
|
XP_MAX = gallowsbait_xp_major_gain
|
||
|
|
XP_MIN = gallowsbait_xp_major_gain
|
||
|
|
}
|
||
|
|
bandit_king_maa_spawn_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Collect fake taxes
|
||
|
|
laamp_base_2041 = {
|
||
|
|
group = laamp_contracts_criminal_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/stewardship.dds"
|
||
|
|
|
||
|
|
travel = no
|
||
|
|
is_criminal = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_stewardship_value
|
||
|
|
add = laamp_contracts_weight_up_criminal_massive_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = laamp_contract_would_signpost_own_prosperity_value
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
scope:employer.sub_realm_size >= laamp_base_2041_num_counties_to_rob_value
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
root.task_contract_taker = {
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Then we start the travel.
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_contract_schemes.2044 }
|
||
|
|
# Plus, set up some variables for us.
|
||
|
|
## Progress tallies.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = wins_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = losses_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
## Victory tiers.
|
||
|
|
save_scope_value_as = {
|
||
|
|
name = win_t1_threshold
|
||
|
|
value = {
|
||
|
|
value = scope:employer.laamp_base_2041_num_counties_to_rob_sans_capital_value
|
||
|
|
divide = 3
|
||
|
|
floor = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t1_threshold
|
||
|
|
VAL = scope:win_t1_threshold
|
||
|
|
}
|
||
|
|
save_scope_value_as = {
|
||
|
|
name = win_t2_threshold
|
||
|
|
value = {
|
||
|
|
value = scope:employer.laamp_base_2041_num_counties_to_rob_sans_capital_value
|
||
|
|
divide = 3
|
||
|
|
multiply = 2
|
||
|
|
floor = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t2_threshold
|
||
|
|
VAL = scope:win_t2_threshold
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t3_threshold
|
||
|
|
VAL = scope:employer.laamp_base_2041_num_counties_to_rob_sans_capital_value
|
||
|
|
}
|
||
|
|
## Roll difficulties.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = stewardship_diff
|
||
|
|
VAL = 10
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = intrigue_diff
|
||
|
|
VAL = 10
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = bard_diff
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = stress_charge
|
||
|
|
VAL = 20
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
set_variable = {
|
||
|
|
name = animation
|
||
|
|
value = 0
|
||
|
|
}
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_crime_value
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_qualified
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_half_crime_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_critical_crime_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = trickster
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_qualified = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_qualified
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = trickster
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = trickster
|
||
|
|
XP_MAX = gallowsbait_xp_major_gain
|
||
|
|
XP_MIN = gallowsbait_xp_major_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = 0
|
||
|
|
OPINION = task_contract_opinion_crime_failure_value
|
||
|
|
OPINION_TYPE = attempted_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = trickster
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_qualified = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
visible = no
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = 0
|
||
|
|
OPINION = task_contract_opinion_crime_backed_down_value
|
||
|
|
OPINION_TYPE = attempted_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = trickster
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
##################################################
|
||
|
|
# INTRIGUE CONTRACTS
|
||
|
|
|
||
|
|
# Provide intelligence from your trips
|
||
|
|
laamp_base_3001 = {
|
||
|
|
group = laamp_contracts_intrigue_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/intrigue.dds"
|
||
|
|
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_intrigue_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that value foreign intelligence.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = deceitful }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arbitrary }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = patient }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that don't care for espionage.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = honest }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = just }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
scope:employer = {
|
||
|
|
highest_held_title_tier >= tier_county
|
||
|
|
OR = {
|
||
|
|
any_neighboring_and_across_water_realm_same_rank_owner = {
|
||
|
|
count >= 3
|
||
|
|
laamp_base_3001_valid_neighbours_trigger = { EMPLOYER = scope:employer }
|
||
|
|
}
|
||
|
|
AND = {
|
||
|
|
highest_held_title_tier >= tier_empire
|
||
|
|
any_neighboring_and_across_water_top_liege_realm_owner = {
|
||
|
|
count >= 3
|
||
|
|
highest_held_title_tier >= tier_kingdom
|
||
|
|
laamp_base_3001_valid_neighbours_trigger = { EMPLOYER = scope:employer }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# Specific flavour triggers.
|
||
|
|
laamp_task_contract_employer_not_antisocial_trigger = yes
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the travel.
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_contract_schemes.3004 }
|
||
|
|
# Plus, set up a tracking variable for us.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = wins_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_qualified
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_half_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Critical Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_qualified = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_qualified
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Murder a character's rival
|
||
|
|
laamp_base_3011 = {
|
||
|
|
group = laamp_contracts_criminal_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/intrigue.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
is_criminal = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_intrigue_value
|
||
|
|
add = laamp_contracts_weight_up_criminal_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that want someone killed and don't much care how.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = wrathful }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = sadistic }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arbitrary }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that won't hire thugs to solve their problems just on principle.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = calm }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = just }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
laamp_task_contract_employer_would_resort_to_violence_trigger = yes
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
root.task_contract_taker = {
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Now, nab us a suitable target.
|
||
|
|
task_contract_employer = { laamp_contract_grab_suitable_rival_for_disposal_effect = yes }
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_3011_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.var:target
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.3011
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
set_variable = {
|
||
|
|
name = animation
|
||
|
|
value = 1
|
||
|
|
}
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_crime_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = marauder
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
bandit_king_maa_spawn_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = marauder
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
bandit_king_maa_spawn_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Abduct a character's rival
|
||
|
|
laamp_base_3021 = {
|
||
|
|
group = laamp_contracts_criminal_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/intrigue.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
is_criminal = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_intrigue_value
|
||
|
|
add = laamp_contracts_weight_up_criminal_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that like a personal touch in the ol' donjon.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = sadistic }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = wrathful }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arbitrary }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that prefer efficiency.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = diligent }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
laamp_task_contract_employer_would_resort_to_violence_trigger = yes
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
root.task_contract_taker = {
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Now, nab us a suitable target.
|
||
|
|
task_contract_employer = { laamp_contract_grab_suitable_rival_for_disposal_effect = yes }
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_3021_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.var:target
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.3021
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
set_variable = {
|
||
|
|
name = animation
|
||
|
|
value = 1
|
||
|
|
}
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_crime_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = marauder
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
bandit_king_maa_spawn_effect = yes
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = marauder
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Attack the property of a character's rival
|
||
|
|
laamp_base_3031 = {
|
||
|
|
group = laamp_contracts_criminal_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/intrigue.dds"
|
||
|
|
|
||
|
|
is_criminal = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_intrigue_value
|
||
|
|
add = laamp_contracts_weight_up_criminal_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that like a subtle, yet violent, touch.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = deceitful }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = patient }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
### Ok emphasising "violent" over "subtle" here.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = wrathful }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arbitrary }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that prefer bluntness or honesty.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = honest }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = calm }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = just }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
# Specific flavour triggers.
|
||
|
|
laamp_task_contract_employer_would_resort_to_violence_trigger = yes
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
root.task_contract_taker = {
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Now, nab us a suitable target.
|
||
|
|
task_contract_employer = { laamp_contract_grab_suitable_rival_for_disposal_effect = yes }
|
||
|
|
# Save a scope that stops us getting double gallowsbait XP later on.
|
||
|
|
save_scope_value_as = {
|
||
|
|
name = suppress_gallowsbait
|
||
|
|
value = yes
|
||
|
|
}
|
||
|
|
# Then we start the chainlet.
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_contract_schemes.3034 }
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
set_variable = {
|
||
|
|
name = animation
|
||
|
|
value = 1
|
||
|
|
}
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_crime_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
NOT = { exists = scope:suppress_gallowsbait }
|
||
|
|
}
|
||
|
|
# Wrapped like this because, even with the scope definitely present, it was somehow slipping the net & applying anyway.
|
||
|
|
show_as_tooltip = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = bandit
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
bandit_king_maa_spawn_effect = yes
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
NOT = { exists = scope:suppress_gallowsbait }
|
||
|
|
}
|
||
|
|
# Wrapped like this because, even with the scope definitely present, it was somehow slipping the net & applying anyway.
|
||
|
|
show_as_tooltip = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = bandit
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_qualified = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = 0
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Heist from a ruler's treasury
|
||
|
|
laamp_base_3041 = {
|
||
|
|
group = laamp_contracts_criminal_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/intrigue.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
is_criminal = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_intrigue_value
|
||
|
|
add = laamp_contracts_weight_up_criminal_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = laamp_contract_would_signpost_own_prosperity_value
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
root.task_contract_taker = {
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_3041_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.3041
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
set_variable = {
|
||
|
|
name = animation
|
||
|
|
value = 0
|
||
|
|
}
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_crime_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = 0
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = thief
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
bandit_king_maa_spawn_effect = yes
|
||
|
|
}
|
||
|
|
custom_tooltip = laamp_base_3041.tt.chance_for_more
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = 0
|
||
|
|
OPINION = task_contract_opinion_crime_failure_value
|
||
|
|
OPINION_TYPE = attempted_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = thief
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
##################################################
|
||
|
|
# LEARNING CONTRACTS
|
||
|
|
|
||
|
|
# Transcribe texts for a learned ruler
|
||
|
|
laamp_base_4001 = {
|
||
|
|
group = laamp_contracts_learning_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/learning.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_learning_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that appreciate works of learning.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = scholar }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = theologian }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = eccentric }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = patient }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = shy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that don't support these gorramned NERDS.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = athletic }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = task_contract_employer
|
||
|
|
value = scope:task_contract.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_qualified
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_half_value
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_critical_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For easy access
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Trigger the first education event
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_learning_contract_events.4001 }
|
||
|
|
# Plus, set up some variables for us.
|
||
|
|
## Progress tallies.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = score_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = text_passages_left
|
||
|
|
VAL = 3
|
||
|
|
}
|
||
|
|
### Victory tiers.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t1_threshold
|
||
|
|
VAL = 3 #You smooch by on the standard answer
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t2_threshold
|
||
|
|
VAL = 7 #You use your language/traits twice and also have a successful embellishment
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t3_threshold
|
||
|
|
VAL = 9 #All three embellishments are successful :yeslikethis:
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_qualified = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_qualified
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_reduced_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Learning Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_learning_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = task_contract_success_piety_gain_half_value
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Learning Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_learning_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = task_contract_success_piety_gain_full_value
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#Help settle theological arguments
|
||
|
|
laamp_base_4011 = {
|
||
|
|
group = laamp_contracts_learning_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/learning.dds"
|
||
|
|
|
||
|
|
travel = no
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_learning_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that would happily delegate a debate.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = shy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = fickle }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = lazy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that would leap into a debate wholesale.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = patient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = stubborn }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = diligent }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
scope:employer = {
|
||
|
|
NOR = {
|
||
|
|
government_has_flag = government_is_tribal
|
||
|
|
faith = { has_doctrine_parameter = unreformed }
|
||
|
|
has_trait = cynical
|
||
|
|
}
|
||
|
|
AND = {
|
||
|
|
highest_held_title_tier >= tier_duchy
|
||
|
|
any_sub_realm_barony = {
|
||
|
|
title_province = { has_holding = yes }
|
||
|
|
this != scope:employer.capital_barony
|
||
|
|
count >= 3
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For easy access
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
#Set this up here to calculate win thresholds
|
||
|
|
scope:employer = {
|
||
|
|
add_character_flag = is_in_task_contract_event_chain
|
||
|
|
ordered_sub_realm_barony = {
|
||
|
|
limit = {
|
||
|
|
title_province = { has_holding = yes }
|
||
|
|
this != scope:employer.capital_barony
|
||
|
|
}
|
||
|
|
order_by = {
|
||
|
|
value = county_opinion
|
||
|
|
multiply = -1
|
||
|
|
}
|
||
|
|
max = 5
|
||
|
|
check_range_bounds = no
|
||
|
|
add_to_list = destination_baronies_list
|
||
|
|
}
|
||
|
|
scope:employer.capital_province = { save_scope_as = employer_location_destination }
|
||
|
|
ordered_in_list = {
|
||
|
|
list = destination_baronies_list
|
||
|
|
order_by = "squared_distance(prev.capital_province)"
|
||
|
|
max = 5
|
||
|
|
check_range_bounds = no
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
NOT = { exists = scope:destination_1 }
|
||
|
|
}
|
||
|
|
save_scope_as = destination_1
|
||
|
|
}
|
||
|
|
else_if = {
|
||
|
|
limit = {
|
||
|
|
NOT = {
|
||
|
|
this = scope:destination_1
|
||
|
|
exists = scope:destination_2
|
||
|
|
}
|
||
|
|
}
|
||
|
|
save_scope_as = destination_2
|
||
|
|
}
|
||
|
|
else_if = {
|
||
|
|
limit = {
|
||
|
|
NOT = {
|
||
|
|
this = scope:destination_1
|
||
|
|
this = scope:destination_2
|
||
|
|
exists = scope:destination_3
|
||
|
|
}
|
||
|
|
}
|
||
|
|
save_scope_as = destination_3
|
||
|
|
}
|
||
|
|
else_if = {
|
||
|
|
limit = {
|
||
|
|
NOT = {
|
||
|
|
this = scope:destination_1
|
||
|
|
this = scope:destination_2
|
||
|
|
this = scope:destination_3
|
||
|
|
exists = scope:destination_4
|
||
|
|
}
|
||
|
|
}
|
||
|
|
save_scope_as = destination_4
|
||
|
|
}
|
||
|
|
else_if = {
|
||
|
|
limit = {
|
||
|
|
NOT = {
|
||
|
|
this = scope:destination_1
|
||
|
|
this = scope:destination_2
|
||
|
|
this = scope:destination_3
|
||
|
|
this = scope:destination_4
|
||
|
|
exists = scope:destination_5
|
||
|
|
}
|
||
|
|
}
|
||
|
|
save_scope_as = destination_5
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# Plus, set up some variables for us.
|
||
|
|
## Progress tallies.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = wins_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = encounter_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
### Victory tiers.
|
||
|
|
if = {
|
||
|
|
limit = { exists = scope:destination_5 }
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t1_threshold
|
||
|
|
VAL = 2
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t2_threshold
|
||
|
|
VAL = 4
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t3_threshold
|
||
|
|
VAL = 5
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else_if = {
|
||
|
|
limit = { exists = scope:destination_4 }
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t1_threshold
|
||
|
|
VAL = 1
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t2_threshold
|
||
|
|
VAL = 2
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t3_threshold
|
||
|
|
VAL = 4
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t1_threshold
|
||
|
|
VAL = 1
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t2_threshold
|
||
|
|
VAL = 2
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t3_threshold
|
||
|
|
VAL = 3
|
||
|
|
}
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = opportunities_left_tally
|
||
|
|
VAL = var:win_t3_threshold
|
||
|
|
}
|
||
|
|
# Then we start the travel.
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_learning_contract_events.4011 }
|
||
|
|
}
|
||
|
|
on_invalidated = {
|
||
|
|
task_contract_employer = { remove_character_flag = is_in_task_contract_event_chain }
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_qualified
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_half_value
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_critical_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_qualified = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Learning Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_learning_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_qualified
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = task_contract_success_piety_gain_half_value
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_reduced_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_employer = { remove_character_flag = is_in_task_contract_event_chain }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
# Camp building extra Learning Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_learning_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = task_contract_success_piety_gain_full_value
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
task_contract_employer = { remove_character_flag = is_in_task_contract_event_chain }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Learning Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_learning_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_critical_value
|
||
|
|
PIETY = task_contract_success_piety_gain_critical_value
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
task_contract_employer = { remove_character_flag = is_in_task_contract_event_chain }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = task_contract_failure_piety_loss_full_value
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_employer = { remove_character_flag = is_in_task_contract_event_chain }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Create a work of learning for a ruler
|
||
|
|
laamp_base_4021 = {
|
||
|
|
group = laamp_contracts_learning_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/learning.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_learning_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that appreciate works of learning.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = scholar }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = theologian }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = eccentric }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = patient }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = shy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that don't support these gorramned NERDS.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = athletic }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
#You really shouldn't have terrible Learning
|
||
|
|
root.learning >= average_skill_level
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For easy access
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# How many chapters do you want to write?
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_learning_contract_events.4021 }
|
||
|
|
#We set up the variables in the intro event
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_qualified
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_half_value
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_qualified = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
# Camp building extra Stewardship Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_stewardship_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
# Standard Reward.
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_qualified
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_reduced_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Learning Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_learning_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = task_contract_success_piety_gain_half_value
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Learning Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_learning_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = task_contract_success_piety_gain_half_value
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = task_contract_failure_piety_loss_full_value
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Solicit Charity
|
||
|
|
laamp_base_4031 = {
|
||
|
|
group = laamp_contracts_learning_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/learning.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_learning_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that take pity on passers by.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = generous }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = compassionate }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = improvident }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = profligate }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that don't give a damn about wanderers (or who it would look a bit weird for).
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = greedy }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = sadistic }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
# Specific flavour triggers.
|
||
|
|
laamp_task_contract_employer_not_antisocial_trigger = yes
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_4031_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.4031
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Learning Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_learning_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Learning Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_learning_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = task_contract_success_piety_gain_half_value
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_massive_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = task_contract_failure_piety_loss_full_value
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Sell bogus relics
|
||
|
|
laamp_base_4041 = {
|
||
|
|
group = laamp_contracts_criminal_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/learning.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
is_criminal = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_learning_value
|
||
|
|
add = laamp_contracts_weight_up_criminal_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that make you gullible, or at least more vulnerable to scam artistry.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = trusting }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = fickle }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = eccentric }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that make you naturally suspicious.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = stubborn }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = deceitful }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
scope:employer = {
|
||
|
|
NOR = {
|
||
|
|
government_has_flag = government_is_tribal
|
||
|
|
faith = { has_doctrine_parameter = unreformed }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# Specific flavour triggers.
|
||
|
|
laamp_task_contract_employer_not_antisocial_trigger = yes
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
root.task_contract_taker = {
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_4041_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.4041
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
set_variable = {
|
||
|
|
name = animation
|
||
|
|
value = 0
|
||
|
|
}
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_crime_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Learning/Criminal Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= {
|
||
|
|
OR = {
|
||
|
|
has_domicile_parameter = camp_improved_learning_contract_rewards
|
||
|
|
has_domicile_parameter = camp_improved_criminal_contract_rewards
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = 0
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = trickster
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_value
|
||
|
|
PIETY = task_contract_failure_piety_loss_full_value
|
||
|
|
PROVISIONS = 0
|
||
|
|
OPINION = task_contract_opinion_crime_failure_value
|
||
|
|
OPINION_TYPE = attempted_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = trickster
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#Act as a tutor for ruler's child
|
||
|
|
laamp_base_4100 = {
|
||
|
|
group = laamp_contracts_learning_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/learning.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_learning_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that appreciate works of learning.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = scholar }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = theologian }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = eccentric }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = patient }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = shy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that don't support these gorramned NERDS.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = impatient }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = athletic }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
scope:employer = {
|
||
|
|
any_courtier = {
|
||
|
|
age >= 6
|
||
|
|
age < 15 #Give us a year to complete the contract
|
||
|
|
is_available = yes
|
||
|
|
location = scope:employer.location
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
root.var:task_contract_target = { age < 15 }
|
||
|
|
#Since the kid is saved as the target; we automatically invalidate if kid becomes unavailable, right?
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = {
|
||
|
|
random_courtier = {
|
||
|
|
limit = {
|
||
|
|
age >= 6
|
||
|
|
age < 15 #Give us a year to complete the contract
|
||
|
|
is_available = yes
|
||
|
|
location = prev.location #The employer's location
|
||
|
|
}
|
||
|
|
weight = {
|
||
|
|
base = 1
|
||
|
|
#Prioritize relevant children
|
||
|
|
modifier = {
|
||
|
|
add = 10
|
||
|
|
is_primary_heir_of = scope:task_contract.task_contract_employer
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
add = 5
|
||
|
|
trigger_if = {
|
||
|
|
limit = {
|
||
|
|
scope:task_contract.task_contract_employer = { has_realm_law = female_only_law }
|
||
|
|
}
|
||
|
|
is_female = yes
|
||
|
|
}
|
||
|
|
trigger_else = { always = no }
|
||
|
|
}
|
||
|
|
modifier = {
|
||
|
|
add = 5
|
||
|
|
trigger_if = {
|
||
|
|
limit = {
|
||
|
|
scope:task_contract.task_contract_employer = { has_realm_law = male_only_law }
|
||
|
|
}
|
||
|
|
is_male = yes
|
||
|
|
}
|
||
|
|
trigger_else = { always = no }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
save_scope_as = task_contract_target
|
||
|
|
}
|
||
|
|
}
|
||
|
|
set_variable = {
|
||
|
|
name = task_contract_employer
|
||
|
|
value = scope:task_contract.task_contract_employer
|
||
|
|
}
|
||
|
|
set_task_contract_target = scope:task_contract_target
|
||
|
|
set_variable = {
|
||
|
|
name = task_contract_target
|
||
|
|
value = scope:task_contract.task_contract_target
|
||
|
|
}
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_critical_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
# For easy access
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
task_contract_target = { save_scope_as = child_to_educate }
|
||
|
|
# Trigger the first education event
|
||
|
|
task_contract_taker ?= { trigger_event = laamp_base_learning_contract_events.4100 }
|
||
|
|
# Plus, set up some variables for us.
|
||
|
|
## Progress tallies.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = wins_tally
|
||
|
|
VAL = 0
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = educational_moments_left
|
||
|
|
VAL = 3
|
||
|
|
}
|
||
|
|
### Victory tiers.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t1_threshold
|
||
|
|
VAL = 2
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = win_t2_threshold
|
||
|
|
VAL = 3
|
||
|
|
}
|
||
|
|
## Roll difficulties.
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = learning_diff
|
||
|
|
VAL = 10
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = topic_diff
|
||
|
|
VAL = 10
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = support_person_diff
|
||
|
|
VAL = 5
|
||
|
|
}
|
||
|
|
increment_variable_effect = {
|
||
|
|
VAR = stress_charge
|
||
|
|
VAL = 20
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
on_invalidated = {
|
||
|
|
task_contract_taker = {
|
||
|
|
remove_character_flag = is_in_task_contract_event_chain
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
root.task_contract_taker = {
|
||
|
|
any_character_active_contract = {
|
||
|
|
this = root
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer = {
|
||
|
|
save_scope_as = task_contract_employer
|
||
|
|
}
|
||
|
|
save_scope_value_as = {
|
||
|
|
name = task_contract_tier
|
||
|
|
value = root.task_contract_tier
|
||
|
|
}
|
||
|
|
var:task_contract_target = {
|
||
|
|
save_scope_as = task_contract_target
|
||
|
|
}
|
||
|
|
|
||
|
|
task_contract_taker = {
|
||
|
|
set_variable = {
|
||
|
|
name = invalidated_task_contract_type
|
||
|
|
value = flag:laamp_base_4100
|
||
|
|
}
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_employer = {
|
||
|
|
is_alive = no
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer.primary_title.holder ?= {
|
||
|
|
save_scope_as = employer_heir
|
||
|
|
}
|
||
|
|
task_contract_taker = {
|
||
|
|
save_scope_value_as = {
|
||
|
|
name = task_contract_invalidation_reason
|
||
|
|
value = flag:employer_dead
|
||
|
|
}
|
||
|
|
trigger_event = ep3_contract_event.0012
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else_if = {
|
||
|
|
limit = {
|
||
|
|
scope:task_contract_target = {
|
||
|
|
is_alive = no
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_taker = {
|
||
|
|
save_scope_value_as = {
|
||
|
|
name = task_contract_invalidation_reason
|
||
|
|
value = flag:target_dead
|
||
|
|
}
|
||
|
|
trigger_event = ep3_contract_event.0012
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
#Need at least 2 successful teaching moments
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
# Camp building extra Learning Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_learning_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
# Camp building extra Learning Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_learning_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
# Critical Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_critical_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
##################################################
|
||
|
|
# JUSTICAR CONTRACTS
|
||
|
|
|
||
|
|
# Protect the innocent
|
||
|
|
laamp_base_6001 = {
|
||
|
|
group = laamp_contracts_justicar_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/war.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_prowess_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that value prosperity in their subjects.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = greedy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = generous }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = humble }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = avaricious }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that won't do favours for some grubby merchant.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arrogant }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_6001_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.6001
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
# Make sure critical values are a bit higher.
|
||
|
|
save_scope_value_as = { name = gold_safety_margin value = flag:yes }
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_critical
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
task_contract_taker = {
|
||
|
|
# Update gallowsbait score.
|
||
|
|
lower_gallowsbait_xp_effect = { VALUE = -5 }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_minor_gain
|
||
|
|
XP_MIN = knight_errant_xp_minor_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_critical
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
task_contract_taker = {
|
||
|
|
# Update gallowsbait score.
|
||
|
|
lower_gallowsbait_xp_effect = { VALUE = -10 }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_medium_gain
|
||
|
|
XP_MIN = knight_errant_xp_medium_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rescue a Fair Non-Combatant Gender
|
||
|
|
laamp_base_6011 = {
|
||
|
|
group = laamp_contracts_justicar_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/war.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_prowess_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gallant }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
|
||
|
|
# Weight down
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
scope:employer.capital_province = { is_wooded_trigger = yes }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_6011_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.6011
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = task_contract_success_provisions_gain_minor_value
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
task_contract_taker = {
|
||
|
|
# Update gallowsbait score.
|
||
|
|
lower_gallowsbait_xp_effect = { VALUE = -5 }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_minor_gain
|
||
|
|
XP_MIN = knight_errant_xp_minor_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Participate in a Chivalry Play
|
||
|
|
laamp_base_6021 = {
|
||
|
|
group = laamp_contracts_justicar_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/diplomacy.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_diplomacy_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gallant }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = lifestyle_reveler }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
|
||
|
|
# Weight down
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_6021_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.6021
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
task_contract_taker = {
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_minor_gain
|
||
|
|
XP_MIN = knight_errant_xp_minor_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Do a Pass d'Armes
|
||
|
|
laamp_base_6031 = {
|
||
|
|
group = laamp_contracts_justicar_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/martial.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_prowess_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gallant }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
employer_has_treasury_to_offer_job_trigger = yes
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
task_contract_employer = { save_scope_as = employer }
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
start_scheme = {
|
||
|
|
type = laamp_base_6031_contract_scheme
|
||
|
|
contract = root
|
||
|
|
target_character = root.task_contract_employer
|
||
|
|
}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.6031
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
# Make our gold rewards static.
|
||
|
|
grab_gold_fuzz_number_effect = yes
|
||
|
|
save_scope_as = task_contract
|
||
|
|
set_variable = {
|
||
|
|
name = gold_success_standard
|
||
|
|
value = task_contract_taker.task_contract_success_gold_gain_full_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = scope:task_contract.var:gold_success_standard
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
task_contract_taker = {
|
||
|
|
# Update gallowsbait score.
|
||
|
|
lower_gallowsbait_xp_effect = { VALUE = -10 }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_minor_gain
|
||
|
|
XP_MIN = knight_errant_xp_minor_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
##################################################
|
||
|
|
# DEPRECATED CONTRACTS
|
||
|
|
|
||
|
|
# Help train local MaA
|
||
|
|
laamp_base_1021 = {
|
||
|
|
group = laamp_contracts_martial_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/martial.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_martial_value
|
||
|
|
add = laamp_contracts_weight_up_martial_slight_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that believe in readiness for war.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = brave }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = wrathful }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = diligent }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that don't think they gain anything from this.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arrogant }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
always = no
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
#start_scheme = {
|
||
|
|
# type = laamp_base_1021_contract_scheme
|
||
|
|
# contract = root
|
||
|
|
# target_character = root.task_contract_employer
|
||
|
|
#}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
#scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.1021
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = task_contract_success_gold_gain_full_value
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_minor_gain
|
||
|
|
XP_MIN = knight_errant_xp_minor_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Critical Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = task_contract_success_gold_gain_full_value
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_massive_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_medium_gain
|
||
|
|
XP_MIN = knight_errant_xp_medium_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Garrison service
|
||
|
|
laamp_base_1031 = {
|
||
|
|
group = laamp_contracts_hireling_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/martial.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_martial_value
|
||
|
|
add = laamp_contracts_weight_up_martial_slight_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that care about defence.
|
||
|
|
### We don't check paranoid because they're already filtered out due to this being relative strangers.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = stubborn }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = greedy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that think their defences are definitely fiiiiiine.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arrogant }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = trusting }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = fickle }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
always = no
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
# Specific flavour triggers.
|
||
|
|
laamp_task_contract_employer_not_antisocial_trigger = yes
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
#start_scheme = {
|
||
|
|
# type = laamp_base_1031_contract_scheme
|
||
|
|
# contract = root
|
||
|
|
# target_character = root.task_contract_employer
|
||
|
|
#}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
#scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.1031
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = task_contract_success_gold_gain_full_value
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_minor_gain
|
||
|
|
XP_MIN = knight_errant_xp_minor_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Critical Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = task_contract_success_gold_gain_full_value
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_massive_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_minor_gain
|
||
|
|
XP_MIN = knight_errant_xp_minor_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Hunt in the wilds
|
||
|
|
laamp_base_5001 = {
|
||
|
|
group = laamp_contracts_hunting_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/war.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_prowess_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that hate being outdoors.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = shy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = lazy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = fickle }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = craven }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that love being outside.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = gregarious }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = diligent }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = stubborn }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
always = no
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
# Specific flavour triggers.
|
||
|
|
scope:employer = {
|
||
|
|
NOR = {
|
||
|
|
has_trait = lifestyle_hunter
|
||
|
|
has_trait = athletic
|
||
|
|
has_trait = brave
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
#start_scheme = {
|
||
|
|
# type = laamp_base_5001_contract_scheme
|
||
|
|
# contract = root
|
||
|
|
# target_character = root.task_contract_employer
|
||
|
|
#}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
#scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.5001
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = task_contract_success_gold_gain_full_value
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Counts towards Knight of the Swan
|
||
|
|
task_contract_taker = {
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Critical Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = task_contract_success_gold_gain_full_value
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_massive_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Counts towards Knight of the Swan
|
||
|
|
task_contract_taker = {
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Guard merchant properties
|
||
|
|
laamp_base_5011 = {
|
||
|
|
group = laamp_contracts_hireling_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/war.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_prowess_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that value prosperity in their subjects.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = greedy }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = generous }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = humble }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = avaricious }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that won't do favours for some grubby merchant.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arrogant }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = callous }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
always = no
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
#start_scheme = {
|
||
|
|
# type = laamp_base_5011_contract_scheme
|
||
|
|
# contract = root
|
||
|
|
# target_character = root.task_contract_employer
|
||
|
|
#}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
#scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.5011
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = task_contract_success_gold_gain_full_value
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_medium_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_minor_gain
|
||
|
|
XP_MIN = knight_errant_xp_minor_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
success_critical = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Critical Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = task_contract_success_gold_gain_full_value
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_half_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_excelled_reward_value
|
||
|
|
OPINION_TYPE = critically_succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_medium_gain
|
||
|
|
XP_MIN = knight_errant_xp_medium_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Guard a local ruler at a minor event
|
||
|
|
laamp_base_5021 = {
|
||
|
|
group = laamp_contracts_hireling_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/war.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_prowess_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = {
|
||
|
|
# Weight up.
|
||
|
|
## Traits that suspect treason: either because they're paranoid or as a self-report.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = paranoid }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = deceitful }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = arbitrary }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = fickle }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = disloyal }
|
||
|
|
add = task_contract_weight_bonus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Weight down.
|
||
|
|
## Traits that think loyalty is unshakeable.
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = trusting }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = honest }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = just }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = stubborn }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
if = {
|
||
|
|
limit = { has_trait = loyal }
|
||
|
|
add = task_contract_weight_malus_employer_has_associated_traits_value
|
||
|
|
}
|
||
|
|
# Restrictions.
|
||
|
|
min = task_contract_weight_employer_associated_traits_min_value
|
||
|
|
max = task_contract_weight_employer_associated_traits_max_value
|
||
|
|
}
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
# This weight is an override, so make sure it's placed at the bottom.
|
||
|
|
add = task_contract_weight_employer_contact_list_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
always = no
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
# Specific flavour triggers.
|
||
|
|
OR = {
|
||
|
|
laamp_task_contract_employer_not_antisocial_trigger = yes
|
||
|
|
# Grant an exception to the paranoid antisocialness here: narratively, it's presented like their paranoia of their guards overwhelms their paranoia of you.
|
||
|
|
has_trait = paranoid
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
#start_scheme = {
|
||
|
|
# type = laamp_base_5021_contract_scheme
|
||
|
|
# contract = root
|
||
|
|
# target_character = root.task_contract_employer
|
||
|
|
#}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
#scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.5021
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = task_contract_success_gold_gain_full_value
|
||
|
|
PRESTIGE = task_contract_success_prestige_gain_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_reward_value
|
||
|
|
OPINION_TYPE = succeeded_task_contract_opinion
|
||
|
|
CONTACT = yes
|
||
|
|
CONTACT_HOOK = yes
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
task_contract_taker = { task_successful_noncrim_contract_count_effect = yes }
|
||
|
|
# Update Knight-Errant score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_knight_errant_xp_effect = {
|
||
|
|
XP_MAX = knight_errant_xp_medium_gain
|
||
|
|
XP_MIN = knight_errant_xp_medium_gain
|
||
|
|
}
|
||
|
|
task_contract_justicar_contract_tracker_effect = yes
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_full_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_standard_failure_value
|
||
|
|
OPINION_TYPE = failed_task_contract_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Go poaching
|
||
|
|
laamp_base_5041 = {
|
||
|
|
group = laamp_contracts_criminal_group
|
||
|
|
icon = "gfx/interface/icons/scheme_types/war.dds"
|
||
|
|
|
||
|
|
travel = yes
|
||
|
|
is_criminal = yes
|
||
|
|
use_diplomatic_range = no
|
||
|
|
|
||
|
|
weight = {
|
||
|
|
# Standard weights.
|
||
|
|
value = task_contract_weight_default_value
|
||
|
|
add = laamp_contracts_weight_up_prowess_value
|
||
|
|
add = laamp_contracts_weight_up_criminal_value
|
||
|
|
# Employer weights.
|
||
|
|
scope:employer = {
|
||
|
|
add = laamp_contract_would_signpost_own_prosperity_value
|
||
|
|
multiply = task_contract_weight_by_tier_value
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Validity Triggers
|
||
|
|
valid_to_create = {
|
||
|
|
always = no
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
valid_laamp_sensible_start_trigger = yes
|
||
|
|
rule_out_dramatic_laamp_employers_trigger = yes
|
||
|
|
NOT = {
|
||
|
|
scope:employer = { government_has_flag = government_is_tribal }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
valid_to_accept = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_accept_only_trigger = yes
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = scope:employer
|
||
|
|
LAAMP = root
|
||
|
|
}
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
scope:employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_continue = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
root.task_contract_taker = {
|
||
|
|
NOT = {
|
||
|
|
house = {
|
||
|
|
has_house_modifier = legacy_adventurer_house_modifier
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
valid_to_keep = {
|
||
|
|
# Standard triggers.
|
||
|
|
valid_laamp_basic_trigger = {
|
||
|
|
EMPLOYER = root.task_contract_employer
|
||
|
|
LAAMP = root.task_contract_taker
|
||
|
|
}
|
||
|
|
task_contract_employer = { is_landed = yes }
|
||
|
|
}
|
||
|
|
|
||
|
|
# On_actions
|
||
|
|
on_accepted = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_accept_contract" }
|
||
|
|
# For the intro event.
|
||
|
|
save_scope_as = task_contract
|
||
|
|
# Then we start the scheme.
|
||
|
|
task_contract_taker ?= {
|
||
|
|
#start_scheme = {
|
||
|
|
# type = laamp_base_5041_contract_scheme
|
||
|
|
# contract = root
|
||
|
|
# target_character = root.task_contract_employer
|
||
|
|
#}
|
||
|
|
# Make a note of what the scheme even is; we'll need this for the event too.
|
||
|
|
#scope:task_contract.scheme = { save_scope_as = scheme }
|
||
|
|
trigger_event = laamp_base_contract_schemes.5041
|
||
|
|
}
|
||
|
|
}
|
||
|
|
on_create = {
|
||
|
|
scope:contract = {
|
||
|
|
set_variable = {
|
||
|
|
name = animation
|
||
|
|
value = 0
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
# Rewards
|
||
|
|
task_contract_reward = {
|
||
|
|
success_standard = {
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" }
|
||
|
|
# Camp building extra Criminal Rewards: +50%.
|
||
|
|
if = {
|
||
|
|
limit = {
|
||
|
|
task_contract_taker.domicile ?= { has_domicile_parameter = camp_improved_criminal_contract_rewards }
|
||
|
|
}
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:yes }
|
||
|
|
}
|
||
|
|
else = {
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
}
|
||
|
|
# Standard Rewards.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = task_contract_success_gold_gain_crime_value
|
||
|
|
PRESTIGE = 0
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_success_provisions_gain_major_value
|
||
|
|
OPINION = task_contract_opinion_crime_success_value
|
||
|
|
OPINION_TYPE = succeeded_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = poacher
|
||
|
|
XP_MIN = gallowsbait_xp_medium_gain
|
||
|
|
XP_MAX = gallowsbait_xp_medium_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
failure_standard = {
|
||
|
|
positive = no
|
||
|
|
should_print_on_complete = yes
|
||
|
|
effect = {
|
||
|
|
task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" }
|
||
|
|
save_scope_value_as = { name = extra_reward value = flag:no }
|
||
|
|
# Standard Penalties.
|
||
|
|
laamp_rewards_disburse_ordinary_currency_effect = {
|
||
|
|
GOLD = 0
|
||
|
|
PRESTIGE = task_contract_failure_prestige_loss_crime_value
|
||
|
|
PIETY = 0
|
||
|
|
PROVISIONS = task_contract_failure_provisions_gain_minor_value
|
||
|
|
OPINION = task_contract_opinion_crime_failure_value
|
||
|
|
OPINION_TYPE = attempted_criminal_contract_against_me_opinion
|
||
|
|
CONTACT = no
|
||
|
|
CONTACT_HOOK = no
|
||
|
|
EXTRA_REWARD = scope:extra_reward
|
||
|
|
}
|
||
|
|
# Update gallowsbait score.
|
||
|
|
task_contract_taker = {
|
||
|
|
laamp_rewards_apply_criminal_xp_effect = {
|
||
|
|
TRACK = poacher
|
||
|
|
XP_MIN = gallowsbait_xp_minor_gain
|
||
|
|
XP_MAX = gallowsbait_xp_minor_gain
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|