################################################## # INFO # Extra contracts for laamps. ################################################## laamp_boost_legitimacy_contract = { group = laamp_contracts_diplomacy_group icon = "gfx/interface/icons/scheme_types/diplomacy.dds" travel = yes use_diplomatic_range = yes valid_to_create = { # Standard triggers. valid_laamp_basic_trigger = { EMPLOYER = scope:employer LAAMP = root } employer_has_treasury_to_offer_job_trigger = yes valid_laamp_sensible_start_trigger = yes scope:employer = { legitimacy_level <= 2 top_liege = this is_landed = yes is_ai = yes NOR = { location = root.location government_has_flag = government_is_theocracy } highest_held_title_tier > tier_county location = { squared_distance = { target = root.location value <= squared_distance_large } } } } valid_to_accept = { # Standard triggers. valid_laamp_basic_accept_only_trigger = yes valid_laamp_basic_trigger = { EMPLOYER = scope:employer LAAMP = root } } valid_to_continue = { # Standard triggers. valid_laamp_basic_trigger = { EMPLOYER = root.task_contract_employer LAAMP = root.task_contract_taker } } valid_to_keep = { # Standard triggers. valid_laamp_basic_trigger = { EMPLOYER = root.task_contract_employer LAAMP = root.task_contract_taker } } weight = { # Standard weights. value = task_contract_weight_interesting_somewhat_rare_value add = laamp_contracts_weight_up_diplomacy_value add = laamp_contracts_weight_up_diplomacy_slight_value add = task_contract_weight_employer_contact_list_value scope:employer = { multiply = task_contract_weight_by_tier_value } } on_create = { scope:contract = { save_scope_as = task_contract task_contract_employer = { save_scope_as = task_contract_employer capital_province = { save_scope_as = task_contract_destination } } set_variable = { name = task_contract_employer value = scope:task_contract_employer } set_variable = { name = task_contract_destination value = scope:task_contract_destination } # Make our gold rewards static. grab_gold_fuzz_number_effect = yes save_scope_as = task_contract set_variable = { name = gold_success_standard value = task_contract_taker.task_contract_success_gold_gain_full_value } } } on_accepted = { save_scope_as = task_contract task_contract_taker = { trigger_event = { id = ep3_contract_event.0510 delayed = yes } } } task_contract_reward = { success_standard = { should_print_on_complete = yes effect = { save_scope_as = task_contract task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_success_on_contract" } save_scope_value_as = { name = extra_reward value = flag:no } task_contract_taker = { send_interface_toast = { title = laamp_transport_contract.success #Re-using left_icon = scope:task_contract.task_contract_taker right_icon = scope:task_contract.task_contract_employer scope:task_contract = { # Standard Rewards. laamp_rewards_disburse_ordinary_currency_effect = { GOLD = scope:task_contract.var:gold_success_standard PRESTIGE = task_contract_success_prestige_gain_full_value PIETY = 0 PROVISIONS = 0 OPINION = task_contract_opinion_standard_reward_value OPINION_TYPE = succeeded_task_contract_opinion CONTACT = yes CONTACT_HOOK = no EXTRA_REWARD = scope:extra_reward } task_contract_employer = { add_legitimacy = minor_legitimacy_gain } } } } } } failure_standard = { positive = no effect = { save_scope_as = task_contract task_contract_taker = { play_sound_effect = "event:/DLC/EP3/SFX/UI/Contracts/ep3_ui_contracts_failure_on_contract" } save_scope_value_as = { name = extra_reward value = flag:no } # Standard Penalties. laamp_rewards_disburse_ordinary_currency_effect = { GOLD = 0 PRESTIGE = task_contract_failure_prestige_loss_full_value PIETY = 0 PROVISIONS = task_contract_failure_provisions_gain_minor_value OPINION = task_contract_opinion_standard_failure_value OPINION_TYPE = failed_task_contract_opinion CONTACT = no CONTACT_HOOK = no EXTRA_REWARD = scope:extra_reward } task_contract_employer = { add_legitimacy = miniscule_legitimacy_loss } } } failure_critical = { positive = no effect = { save_scope_as = task_contract # Standard Penalties. laamp_rewards_disburse_ordinary_currency_effect = { GOLD = 0 PRESTIGE = task_contract_failure_prestige_loss_double_value PIETY = 0 PROVISIONS = task_contract_failure_provisions_gain_minor_value OPINION = task_contract_opinion_critical_failure_value OPINION_TYPE = failed_task_contract_opinion CONTACT = no CONTACT_HOOK = no EXTRA_REWARD = scope:extra_reward } task_contract_employer = { add_legitimacy = medium_legitimacy_loss add_prestige = task_contract_failure_prestige_loss_double_value add_stress = medium_stress_gain } } } } } laamp_rid_councillor_contract = { group = laamp_contracts_martial_group icon = "gfx/interface/icons/scheme_types/martial.dds" travel = yes use_diplomatic_range = yes is_criminal = yes valid_to_create = { # Standard triggers. valid_laamp_basic_trigger = { EMPLOYER = scope:employer LAAMP = root } employer_has_treasury_to_offer_job_trigger = yes valid_laamp_sensible_start_trigger = yes scope:employer = { top_liege = this is_landed = yes is_ai = yes NOT = { government_has_flag = government_is_theocracy } highest_held_title_tier > tier_county #Requires a council location = { #Not too far away squared_distance = { target = root.location value <= squared_distance_large } } any_councillor = { #Has a councillor who they hate count > 1 is_ai = yes reverse_opinion = { target = scope:employer value <= high_negative_opinion } } } } valid_to_accept = { # Standard triggers. valid_laamp_basic_accept_only_trigger = yes valid_laamp_basic_trigger = { EMPLOYER = scope:employer LAAMP = root } } valid_to_continue = { # Standard triggers. valid_laamp_basic_trigger = { EMPLOYER = root.task_contract_employer LAAMP = root.task_contract_taker } } valid_to_keep = { # Standard triggers. valid_laamp_basic_trigger = { EMPLOYER = root.task_contract_employer LAAMP = root.task_contract_taker } } weight = { # Standard weights. value = task_contract_weight_interesting_somewhat_rare_value add = laamp_contracts_weight_up_martial_value add = laamp_contracts_weight_up_martial_slight_value add = task_contract_weight_employer_contact_list_value scope:employer = { multiply = task_contract_weight_by_tier_value } } on_create = { scope:contract = { save_scope_as = task_contract task_contract_employer = { save_scope_as = task_contract_employer capital_province = { save_scope_as = task_contract_destination } } set_variable = { name = task_contract_employer value = scope:task_contract_employer } set_variable = { name = task_contract_destination value = scope:task_contract_destination } # Make our gold rewards static. grab_gold_fuzz_number_effect = yes save_scope_as = task_contract set_variable = { name = gold_success_critical value = task_contract_success_gold_gain_full_value } set_variable = { name = gold_success_standard value = task_contract_success_gold_gain_half_value } } } on_accepted = { save_scope_as = task_contract task_contract_taker = { trigger_event = { id = ep3_contract_event.0550 delayed = no } } } task_contract_reward = { success_critical = { should_print_on_complete = yes effect = { save_scope_value_as = { name = extra_reward value = flag:no } save_scope_as = task_contract laamp_rewards_disburse_ordinary_currency_effect = { GOLD = scope:task_contract.var:gold_success_critical PRESTIGE = task_contract_success_prestige_gain_full_value PIETY = 0 PROVISIONS = task_contract_success_provisions_gain_major_value OPINION = task_contract_opinion_excelled_reward_value OPINION_TYPE = critically_succeeded_task_contract_opinion CONTACT = yes CONTACT_HOOK = yes EXTRA_REWARD = scope:extra_reward } } } success_standard = { should_print_on_complete = yes effect = { save_scope_value_as = { name = extra_reward value = flag:no } save_scope_as = task_contract laamp_rewards_disburse_ordinary_currency_effect = { GOLD = scope:task_contract.var:gold_success_standard PRESTIGE = task_contract_success_prestige_gain_half_value PIETY = 0 PROVISIONS = task_contract_success_provisions_gain_minor_value OPINION = task_contract_opinion_standard_reward_value OPINION_TYPE = succeeded_task_contract_opinion CONTACT = yes CONTACT_HOOK = no EXTRA_REWARD = scope:extra_reward } task_contract_taker = { # Update gallowsbait score. laamp_rewards_apply_criminal_xp_effect = { TRACK = marauder XP_MIN = gallowsbait_xp_medium_gain XP_MAX = gallowsbait_xp_medium_gain } } } } failure_standard = { positive = no effect = { save_scope_value_as = { name = extra_reward value = flag:no } save_scope_as = task_contract task_contract_taker = { add_prestige = task_contract_failure_prestige_loss_full_value add_piety = minor_piety_loss reverse_add_opinion = { opinion = -35 modifier = failed_task_contract_opinion target = scope:task_contract.task_contract_employer } # Update gallowsbait score. laamp_rewards_apply_criminal_xp_effect = { TRACK = marauder XP_MIN = gallowsbait_xp_medium_gain XP_MAX = gallowsbait_xp_medium_gain } } } } failure_critical = { positive = no effect = { save_scope_as = task_contract task_contract_taker = { add_prestige = task_contract_failure_prestige_loss_double_value add_piety = medium_piety_loss add_stress = minor_stress_gain reverse_add_opinion = { opinion = -65 modifier = failed_task_contract_opinion target = scope:task_contract.task_contract_employer } # Update gallowsbait score. laamp_rewards_apply_criminal_xp_effect = { TRACK = marauder XP_MIN = gallowsbait_xp_major_gain XP_MAX = gallowsbait_xp_major_gain } } } } } } laamp_gain_wanderer_contract = { group = laamp_contracts_martial_group icon = "gfx/interface/icons/scheme_types/martial.dds" travel = yes use_diplomatic_range = yes valid_to_create = { valid_laamp_basic_trigger = { EMPLOYER = scope:employer LAAMP = root } valid_laamp_sensible_start_trigger = yes prestige_level >= 2 scope:employer = { is_landed = no is_ai = yes in_diplomatic_range = root prestige_level < root.prestige_level location = { #Not too far away squared_distance = { target = root.location value <= squared_distance_large } } primary_title = { is_mercenary_company = no } NOR = { government_has_flag = government_is_theocracy government_allows = administrative } } } valid_to_accept = { valid_laamp_basic_accept_only_trigger = yes valid_laamp_basic_trigger = { EMPLOYER = scope:employer LAAMP = root } is_available = yes prestige_level >= 2 scope:employer = { is_landed = no is_ai = yes in_diplomatic_range = root prestige_level < root.prestige_level location = { #Not too far away squared_distance = { target = root.location value <= squared_distance_large } } primary_title = { is_mercenary_company = no } NOR = { government_has_flag = government_is_theocracy government_allows = administrative } } } weight = { # Keep it rare and use it to fill in gaps between other contracts value = task_contract_weight_interesting_very_rare_value } on_create = { scope:contract = { save_scope_as = task_contract task_contract_employer = { save_scope_as = task_contract_employer capital_province = { save_scope_as = task_contract_destination } } set_variable = { name = task_contract_employer value = scope:task_contract_employer } set_variable = { name = task_contract_destination value = scope:task_contract_destination } # Make our gold rewards static. grab_gold_fuzz_number_effect = yes save_scope_as = task_contract set_variable = { name = gold_success_standard value = task_contract_success_gold_gain_half_value } } } on_accepted = { save_scope_as = task_contract task_contract_employer = { save_scope_as = task_contract_employer capital_province = { save_scope_as = task_contract_destination } } task_contract_taker = { trigger_event = { id = ep3_contract_event.0570 delayed = no } } } task_contract_reward = { success_standard = { should_print_on_complete = yes effect = { save_scope_value_as = { name = extra_reward value = flag:no } save_scope_as = task_contract laamp_rewards_disburse_ordinary_currency_effect = { GOLD = scope:task_contract.var:gold_success_standard PRESTIGE = task_contract_success_prestige_gain_half_value PIETY = 0 PROVISIONS = 0 OPINION = task_contract_opinion_standard_reward_value OPINION_TYPE = succeeded_task_contract_opinion CONTACT = no CONTACT_HOOK = no EXTRA_REWARD = scope:extra_reward } task_contract_taker = { add_intrigue_lifestyle_xp = medium_lifestyle_xp add_courtier = scope:task_contract.task_contract_employer } } } failure_standard = { positive = no effect = { save_scope_as = task_contract task_contract_taker = { add_stress = medium_stress_gain add_character_modifier = { modifier = ep3_clumsy_rescuer_modifier years = 5 } reverse_add_opinion = { opinion = -50 modifier = failed_task_contract_opinion target = scope:task_contract.task_contract_employer } } } } } } laamp_find_secret_contract = { group = laamp_contracts_intrigue_group icon = "gfx/interface/icons/scheme_types/intrigue.dds" travel = yes use_diplomatic_range = yes valid_to_create = { valid_laamp_basic_accept_only_trigger = yes valid_laamp_basic_trigger = { EMPLOYER = scope:employer LAAMP = root } valid_laamp_sensible_start_trigger = yes scope:employer = { is_ai = yes location = { #Not too far away squared_distance = { target = root.location value <= squared_distance_large } } NOT = { government_has_flag = government_is_theocracy } OR = { any_courtier_or_guest = { any_secret = { count > 0 NOT = { is_known_by = scope:employer } } } any_vassal = { any_secret = { count > 0 NOT = { is_known_by = scope:employer } } } } } } valid_to_accept = { valid_laamp_basic_trigger = { EMPLOYER = scope:employer LAAMP = root } scope:employer = { is_ai = yes location = { #Not too far away squared_distance = { target = root.location value <= squared_distance_large } } NOT = { government_has_flag = government_is_theocracy } } } valid_to_continue = { # Standard triggers. valid_laamp_basic_trigger = { EMPLOYER = root.task_contract_employer LAAMP = root.task_contract_taker } } valid_to_keep = { # Standard triggers. valid_laamp_basic_trigger = { EMPLOYER = root.task_contract_employer LAAMP = root.task_contract_taker } scope:employer = { OR = { any_courtier_or_guest = { any_secret = { count > 0 NOT = { is_known_by = scope:employer } } } any_vassal = { any_secret = { count > 0 NOT = { is_known_by = scope:employer } } } } } } weight = { value = task_contract_weight_default_value add = laamp_contracts_weight_up_intrigue_value add = task_contract_weight_employer_contact_list_value scope:employer = { multiply = task_contract_weight_by_tier_value } } on_create = { scope:contract = { save_scope_as = task_contract task_contract_employer = { save_scope_as = task_contract_employer if = { limit = { any_vassal = { any_secret = { count > 0 NOT = { is_known_by = scope:task_contract_employer } } } } random_vassal = { limit = { any_secret = { count > 0 NOT = { is_known_by = scope:task_contract_employer } } } save_scope_as = secret_haver } } else = { random_courtier_or_guest = { save_scope_as = secret_haver } } scope:secret_haver.location = { save_scope_as = task_contract_destination } } set_variable = { name = task_contract_employer value = scope:task_contract_employer } set_variable = { name = task_contract_destination value = scope:task_contract_destination } } scope:contract = { # Make our gold rewards static. grab_gold_fuzz_number_effect = yes save_scope_as = task_contract set_variable = { name = gold_success_standard value = task_contract_success_gold_gain_half_value } } } on_accepted = { save_scope_as = task_contract task_contract_employer = { save_scope_as = task_contract_employer if = { limit = { any_vassal = { any_secret = { count > 0 NOT = { is_known_by = scope:task_contract_employer } } } } random_vassal = { limit = { any_secret = { count > 0 NOT = { is_known_by = scope:task_contract_employer } } } save_scope_as = secret_haver } } else = { random_courtier_or_guest = { save_scope_as = secret_haver } } scope:secret_haver.location = { save_scope_as = task_contract_destination } } task_contract_taker = { trigger_event = { id = ep3_contract_event.0580 delayed = no } } } task_contract_reward = { success_standard = { should_print_on_complete = yes effect = { save_scope_value_as = { name = extra_reward value = flag:no } save_scope_as = task_contract laamp_rewards_disburse_ordinary_currency_effect = { GOLD = scope:task_contract.var:gold_success_standard PRESTIGE = task_contract_success_prestige_gain_half_value PIETY = 0 PROVISIONS = task_contract_success_provisions_gain_minor_value OPINION = task_contract_opinion_standard_reward_value OPINION_TYPE = succeeded_task_contract_opinion CONTACT = no CONTACT_HOOK = no EXTRA_REWARD = scope:extra_reward } } } failure_standard = { positive = no effect = { save_scope_as = task_contract task_contract_taker = { add_stress = minor_stress_gain add_prestige = task_contract_failure_prestige_loss_full_value reverse_add_opinion = { opinion = -50 modifier = failed_task_contract_opinion target = scope:task_contract.task_contract_employer } } } } } } laamp_eliminate_heir_contract = { group = laamp_contracts_intrigue_group icon = "gfx/interface/icons/scheme_types/intrigue.dds" travel = yes use_diplomatic_range = yes is_criminal = yes valid_to_create = { valid_laamp_basic_accept_only_trigger = yes valid_laamp_basic_trigger = { EMPLOYER = scope:employer LAAMP = root } valid_laamp_sensible_start_trigger = yes scope:employer = { is_ai = yes in_diplomatic_range = root is_landed = yes location = { #Not too far away squared_distance = { target = root.location value <= squared_distance_large } } NOR = { government_has_flag = government_is_theocracy government_allows = administrative } AND = { #They have a primary heir they dislike, and another one they like primary_heir ?= { reverse_opinion = { target = scope:employer value <= high_negative_opinion } age > 16 #No murderin' babies } any_heir = { count > 1 } } } } valid_to_accept = { valid_laamp_basic_trigger = { EMPLOYER = scope:employer LAAMP = root } } valid_to_continue = { # Standard triggers. valid_laamp_basic_trigger = { EMPLOYER = root.task_contract_employer LAAMP = root.task_contract_taker } } valid_to_keep = { # Standard triggers. valid_laamp_basic_trigger = { EMPLOYER = root.task_contract_employer LAAMP = root.task_contract_taker } } weight = { #Let's not have this happen too often value = task_contract_weight_interesting_very_rare_value add = task_contract_weight_employer_contact_list_value } on_create = { scope:contract = { save_scope_as = task_contract task_contract_employer = { save_scope_as = task_contract_employer random_heir = { limit = { is_primary_heir_of = scope:task_contract_employer reverse_opinion = { target = scope:task_contract_employer value <= high_negative_opinion } age > 16 #No murderin' babies } save_scope_as = heir } scope:heir.location = { save_scope_as = task_contract_destination } } set_variable = { name = task_contract_employer value = scope:task_contract_employer } set_variable = { name = task_contract_destination value = scope:task_contract_destination } # Make our gold rewards static. grab_gold_fuzz_number_effect = yes save_scope_as = task_contract set_variable = { name = gold_success_standard value = task_contract_success_gold_gain_full_value } } } on_accepted = { save_scope_as = task_contract task_contract_employer = { save_scope_as = task_contract_employer random_heir = { limit = { is_primary_heir_of = scope:task_contract_employer reverse_opinion = { target = scope:task_contract_employer value <= high_negative_opinion } age > 16 #No murderin' babies } save_scope_as = heir } random_heir = { limit = { NOT = { is_primary_heir_of = scope:task_contract_employer } reverse_opinion = { target = scope:task_contract_employer value >= low_positive_opinion } } save_scope_as = favoured_heir } scope:heir.location = { save_scope_as = task_contract_destination } } task_contract_taker = { trigger_event = { id = ep3_contract_event.0590 delayed = no } } } task_contract_reward = { success_standard = { should_print_on_complete = yes effect = { save_scope_value_as = { name = extra_reward value = flag:no } save_scope_as = task_contract laamp_rewards_disburse_ordinary_currency_effect = { GOLD = scope:task_contract.var:gold_success_standard PRESTIGE = task_contract_success_prestige_gain_full_value PIETY = 0 PROVISIONS = task_contract_success_provisions_gain_major_value OPINION = task_contract_opinion_excelled_reward_value OPINION_TYPE = succeeded_task_contract_opinion CONTACT = yes CONTACT_HOOK = yes EXTRA_REWARD = scope:extra_reward } } } failure_standard = { positive = no effect = { save_scope_value_as = { name = extra_reward value = flag:no } save_scope_as = task_contract laamp_rewards_disburse_ordinary_currency_effect = { GOLD = 0 PRESTIGE = task_contract_failure_prestige_loss_full_value PIETY = 0 PROVISIONS = task_contract_failure_provisions_gain_minor_value OPINION = task_contract_opinion_standard_failure_value OPINION_TYPE = failed_task_contract_opinion CONTACT = no CONTACT_HOOK = no EXTRA_REWARD = scope:extra_reward } } } } }