From 284477741acdf14c0d154f60fad4943fb33b3e96 Mon Sep 17 00:00:00 2001 From: Thakia Date: Fri, 2 Oct 2026 12:55:50 -0300 Subject: [PATCH 1/2] Updating Files --- common/accolade_names/00_accolade_names.txt | 4 +- common/activities/activity_types/funeral.txt | 327 ++-- common/activities/activity_types/hike.txt | 67 +- common/activities/activity_types/hunt.txt | 308 +--- .../activity_types/imperial_examination.txt | 130 +- .../activities/activity_types/inspection.txt | 167 +- .../activities/activity_types/pilgrimage.txt | 1579 ++++++++++++----- common/activities/activity_types/playdate.txt | 137 +- common/activities/activity_types/tour.txt | 165 +- common/activities/activity_types/wedding.txt | 252 +-- .../pulse_actions/education_actions.txt | 142 +- common/artifacts/features/00_features.txt | 63 +- common/artifacts/features/_features.info | 9 + 13 files changed, 2059 insertions(+), 1291 deletions(-) create mode 100644 common/artifacts/features/_features.info diff --git a/common/accolade_names/00_accolade_names.txt b/common/accolade_names/00_accolade_names.txt index 9cc988ca8..7c3bbe620 100644 --- a/common/accolade_names/00_accolade_names.txt +++ b/common/accolade_names/00_accolade_names.txt @@ -3935,7 +3935,9 @@ accolade_the_foe_of_enemy_faith = { triggered_desc = { trigger = { NOR = { - faith.religion = religion:christianity_religion + faith.religion = religion:catholic_religion + faith.religion = religion:eastern_orthodox_religion + faith.religion = religion:protestant_religion faith = { has_doctrine_parameter = christian_syncretic_actor } diff --git a/common/activities/activity_types/funeral.txt b/common/activities/activity_types/funeral.txt index 583c8f209..0ced02be8 100644 --- a/common/activities/activity_types/funeral.txt +++ b/common/activities/activity_types/funeral.txt @@ -10,7 +10,7 @@ activity_funeral = { is_shown = { highest_held_title_tier > tier_barony - is_landed = yes + is_landed_or_landless_administrative_or_theocratic = yes trigger_if = { limit = { is_ai = yes @@ -19,15 +19,7 @@ activity_funeral = { short_term_gold >= funeral_activity_cost } has_ce1_dlc_trigger = yes - #Every other activity must be blocked until an uncrowned AI crowns themselves - trigger_if = { - limit = { - is_ai = yes - } - NOT = { - has_realm_law = uncrowned - } - } + ai_activity_coronation_check = yes } can_start_showing_failures_only = { @@ -47,7 +39,10 @@ activity_funeral = { limit = { is_ai = yes } - has_available_funeral_target = yes + custom_tooltip = { + text = has_someone_to_bury_tt + has_available_funeral_target = yes + } } } @@ -67,10 +62,8 @@ activity_funeral = { is_valid = { scope:host = { - is_alive = yes - is_imprisoned = no - is_landed = yes - NOT = { is_incapable = yes } + is_physically_able = yes + is_landed_or_landless_administrative_or_theocratic = yes } # If no one shows up trigger_if = { @@ -80,7 +73,15 @@ activity_funeral = { has_attending_activity_guests = yes } } - + + on_invalidated = { + invalidation_imprisoned_effect = yes + invalidation_incapable_effect = yes + invalidation_unlanded_non_nf_effect = yes + invalidation_nobody_present_effect = yes + invalidation_host_isolated_effect = yes + } + on_host_death = { if = { # Transfer hostly duties to the heir if possible limit = { @@ -154,6 +155,12 @@ activity_funeral = { } desc = activity_funeral_wavel } + triggered_desc = { # Temple leased to a monastic order + trigger = { + pam_province_has_monastic_lease_trigger = yes + } + desc = activity_funeral_monastic + } # Double good / ++ triggered_desc = { trigger = { @@ -166,7 +173,7 @@ activity_funeral = { # Things your religion values triggered_desc = { trigger = { - scope:host.faith = { has_doctrine_parameter = sky_burials_active } + scope:host.rite = { rite_has_parameter = sky_burials_active } is_mountainous_trigger = yes } desc = activity_funeral_mountain @@ -205,6 +212,12 @@ activity_funeral = { } add = 100 } + if = { # Temple leased to a monastic order + limit = { + pam_province_has_monastic_lease_trigger = yes + } + add = 100 + } # Double good / ++ if = { limit = { @@ -217,7 +230,7 @@ activity_funeral = { # Things your religion values if = { limit = { - scope:host.faith = { has_doctrine_parameter = sky_burials_active } + scope:host.rite = { rite_has_parameter = sky_burials_active } is_mountainous_trigger = yes } add = 50 @@ -386,7 +399,7 @@ activity_funeral = { } if = { limit = { - faith = { has_doctrine = tenet_ritual_celebrations } + rite = { rite_has_tenet = tenet_ritual_celebrations } } add = { value = 35 @@ -395,7 +408,7 @@ activity_funeral = { } if = { limit = { - faith = { has_doctrine = tenet_hedonistic } + rite = { rite_has_tenet = tenet_hedonistic } } add = { value = 35 @@ -404,8 +417,8 @@ activity_funeral = { } if = { limit = { - host.faith = { - has_doctrine = tenet_asceticism + host.rite = { + rite_has_tenet = tenet_asceticism } } add = { @@ -487,56 +500,7 @@ activity_funeral = { } } } - # Plague - if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity < apocalyptic } - } - would_follow_social_distancing_value >= -1 - } - add = { - value = -60 - desc = "Plague in Domain" - } - } - else_if = { - limit = { - any_realm_county = { - has_province_with_epidemic = { intensity < apocalyptic } - } - would_follow_social_distancing_value >= -1 - } - add = { - value = -20 - desc = "Plague in Top Realm" - } - } - if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity = apocalyptic } - } - } - add = { - value = -200 - desc = "Apocalyptic Plague in Domain" - } - } - else_if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity = apocalyptic } - } - } - add = { - value = -40 - desc = "Apocalyptic Plague in Top Realm" - } - } + add = activity_general_ai_will_do_value } ################### @@ -574,6 +538,7 @@ activity_funeral = { 1 = activity_invite_rule_vassals 1 = activity_invite_rule_confederates 2 = activity_invite_rule_fellow_vassals + 2 = activity_invite_rule_clergy 3 = activity_invite_rule_courtiers 4 = activity_invite_rule_guests 1 = activity_invite_spouses @@ -588,12 +553,12 @@ activity_funeral = { } host_intents = { - intents = { mourn_intent murder_attendee_intent woo_attendee_intent befriend_attendee_intent legitimacy_intent } + intents = { mourn_intent murder_attendee_intent woo_attendee_intent befriend_attendee_intent legitimacy_intent spread_personal_tenet_intent } default = mourn_intent } guest_intents = { - intents = { mourn_intent murder_attendee_intent woo_attendee_intent befriend_attendee_intent legitimacy_intent } + intents = { mourn_intent murder_attendee_intent woo_attendee_intent befriend_attendee_intent legitimacy_intent spread_personal_tenet_intent } default = mourn_intent } @@ -603,6 +568,7 @@ activity_funeral = { # Scripted Modifiers activity_guest_shared_ai_accept_modifier = yes + activity_guest_clergy_shared_ai_accept_modifier = yes } travel_entourage_selection = { @@ -629,7 +595,6 @@ activity_funeral = { gold = { add = { value = 0 - desc = funeral_activity_cost_desc add = { value = funeral_activity_cost desc = funeral_activity_cost_desc @@ -660,47 +625,47 @@ activity_funeral = { } add = { value = funeral_activity_cost - multiply = funeral_activity_cost_increase_max - subtract = funeral_activity_cost + multiply = activity_cost_scale_by_era + multiply = funeral_activity_cost_increase_max # + 50% desc = funeral_cost_increase_great_temple } } if = { limit = { - root.faith ?= { has_doctrine_parameter = mummification_funeral } + root.rite ?= { rite_has_parameter = mummification_funeral } } add = { value = funeral_activity_cost - multiply = 2 - subtract = funeral_activity_cost + multiply = activity_cost_scale_by_era desc = funeral_cost_increase_mummification } } - if = { + else_if = { limit = { - root.faith ?= { has_doctrine_parameter = cremation_funeral } + root.rite ?= { rite_has_parameter = cremation_funeral } } - add = { + subtract = { value = funeral_activity_cost + multiply = activity_cost_scale_by_era multiply = funeral_activity_cost_discount_max - subtract = funeral_activity_cost desc = funeral_cost_discount_cremation } } if = { limit = { - domicile ?= { has_domicile_parameter = estate_cheaper_funeral_cost } - } - subtract = { - value = 0 - add = { - value = funeral_activity_cost - add = { - value = feast_activity_cost - multiply = activity_cost_scale_by_era - subtract = feast_activity_cost + OR = { + domicile ?= { has_domicile_parameter = estate_cheaper_funeral_cost } + scope:province ?= { + any_province_domicile = { + has_domicile_parameter = ecclesiastical_cheaper_funeral_cost + owner.rite = root.rite + } } } + } + subtract = { + value = funeral_activity_cost + multiply = activity_cost_scale_by_era multiply = estate_cheaper_funeral_cost_value desc = estate_cheaper_funeral_cost_desc } @@ -759,6 +724,38 @@ activity_funeral = { multiply = law_legacy_cost_reduction_mult } } + if = { + limit = { + OR = { + domicile ?= { has_domicile_parameter = estate_cheaper_funeral_cost } + capital_province ?= { + any_province_domicile = { + has_domicile_parameter = ecclesiastical_cheaper_funeral_cost + owner = { rite = root.rite } + } + } + domicile.domicile_location ?= { + any_province_domicile = { + has_domicile_parameter = ecclesiastical_cheaper_funeral_cost + owner = { rite = root.rite } + } + } + } + } + subtract = { + value = 0 + add = { + value = funeral_activity_cost + add = { + value = feast_activity_cost + multiply = activity_cost_scale_by_era + subtract = feast_activity_cost + } + } + multiply = estate_cheaper_funeral_cost_value + desc = estate_cheaper_funeral_cost_desc + } + } if = { limit = { confederation ?= { has_cohesion_level_parameter = any_member_activity_cost_reduced } @@ -811,6 +808,12 @@ activity_funeral = { map_entity = "building_western_feast_01_entity" + ################### + # GRAPHICS + ################### + + header_background = "gfx/interface/illustrations/activity_header_backgrounds/activity_funeral.dds" + # Travel background = { # Bridge trigger = { @@ -1099,8 +1102,8 @@ activity_funeral = { exists = scope:activity exists = scope:host scope:host = { - faith = { - has_doctrine_parameter = cremation_funeral + rite = { + rite_has_parameter = cremation_funeral } } } @@ -1162,16 +1165,16 @@ activity_funeral = { } triggered_animation = { trigger = { - scope:character.faith = { - has_doctrine_parameter = bewailment_funeral + scope:character.rite = { + rite_has_parameter = bewailment_funeral } } animation = { wailing grief } } triggered_animation = { trigger = { - scope:character.faith = { - NOT = { has_doctrine_parameter = bewailment_funeral } + scope:character.rite = { + NOT = { rite_has_parameter = bewailment_funeral } } } animation = { grief sadness } @@ -1223,16 +1226,16 @@ activity_funeral = { scripted_animation = { triggered_animation = { trigger = { - scope:character.faith = { - has_doctrine_parameter = bewailment_funeral + scope:character.rite = { + rite_has_parameter = bewailment_funeral } } animation = { sadness } } triggered_animation = { trigger = { - scope:character.faith = { - NOT = { has_doctrine_parameter = bewailment_funeral } + scope:character.rite = { + NOT = { rite_has_parameter = bewailment_funeral } } } animation = { wailing } @@ -1257,16 +1260,16 @@ activity_funeral = { scripted_animation = { triggered_animation = { trigger = { - scope:character.faith = { - has_doctrine_parameter = bewailment_funeral + scope:character.rite = { + rite_has_parameter = bewailment_funeral } } animation = { stress crying } } triggered_animation = { trigger = { - scope:character.faith = { - NOT = { has_doctrine_parameter = bewailment_funeral } + scope:character.rite = { + NOT = { rite_has_parameter = bewailment_funeral } } } animation = { stress crying } @@ -1307,6 +1310,9 @@ activity_funeral = { funeral_option_ceremony = { funeral_ceremony_bad = { is_shown = { has_dlc_feature = advanced_activities } + default = { + has_personal_tenet_flag = tenet_vows_of_poverty_humble_host + } ai_will_do = { value = 0 @@ -1317,7 +1323,18 @@ activity_funeral = { } } funeral_ceremony_normal = { - default = yes + is_valid = { + trigger_if = { + limit = { has_dlc_feature = advanced_activities } + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } + } + default = { + OR = { + NOT = { has_personal_tenet_flag = tenet_vows_of_poverty_humble_host } + NOT = { has_dlc_feature = advanced_activities } + } + } cost = { gold = { @@ -1389,6 +1406,9 @@ activity_funeral = { } funeral_ceremony_good = { is_shown = { has_dlc_feature = advanced_activities } + is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } cost = { gold = { @@ -1506,6 +1526,18 @@ activity_funeral = { limit = { this = scope:host } scope:activity = { save_scope_as = activity } trigger_event = funeral.0100 + if = { + limit = { + has_pam_dlc_trigger = yes + scope:activity.activity_location = { + pam_province_has_monastic_lease_trigger = yes + } + } + trigger_event = { + id = pam_monastic_funeral.0001 + days = 3 + } + } scope:activity = { progress_activity_phase_after = { weeks = 1 } } } } @@ -1556,6 +1588,15 @@ activity_funeral = { desc = activity_funeral_tos } } + if = { # Temple leased to a monastic order + limit = { + pam_province_has_monastic_lease_trigger = yes + } + add = { + value = @weight_up_ai_select_province_large + desc = activity_funeral_monastic + } + } # Double good / ++ if = { limit = { @@ -1571,7 +1612,7 @@ activity_funeral = { # Things your religion values if = { limit = { - scope:host.faith = { has_doctrine_parameter = sky_burials_active } + scope:host.rite = { rite_has_parameter = sky_burials_active } is_mountainous_trigger = yes } add = { @@ -1605,6 +1646,7 @@ activity_funeral = { guest_chokes_on_bone guest_brawl spouse_insults_host ridiculed_food host_gains_diplo_xp host_gains_steward_xp host_gains_intrigue_xp good_kitty good_puppy antiquarian_admires_artifact jester_entertained_guests apa_executioner + apa_pam_spread_tenet_host apa_pam_spread_tenet_guest apa_pam_mendicant_preachers_conversion } chance_of_no_event = 5 } @@ -1660,6 +1702,9 @@ activity_funeral = { # scope:activity = the activity # scope:host = host of the activity on_complete = { + scope:host = { + pam_vows_of_poverty_host_completion_piety_effect = yes + } if = { limit = { is_ai = no @@ -1680,6 +1725,68 @@ activity_funeral = { remove_character_flag = cancelled_coronation } } + # By God Alone: Secular Faith & Rite (pam_secular_faith_events.0052) + # Character variables do not survive death + if = { + limit = { + this = scope:host + rite ?= { + NOR = { + rite_has_parameter = cremation_funeral + rite_has_parameter = sky_burials_active + } + } + scope:activity.var:body_to_bury.dynasty ?= { + is_target_in_variable_list = { + name = pam_sf_planned_effigies + target = scope:activity.var:body_to_bury + } + } + } + send_interface_toast = { + type = event_toast_effect_good + title = pam_sf_effigy_unveiled_toast + left_icon = scope:host + right_icon = scope:activity.var:body_to_bury + add_prestige = medium_prestige_gain + } + scope:activity.var:body_to_bury.dynasty = { + remove_list_variable = { + name = pam_sf_planned_effigies + target = scope:activity.var:body_to_bury + } + } + } + if = { + limit = { + this = scope:host + rite ?= { + NOR = { + rite_has_parameter = cremation_funeral + rite_has_parameter = sky_burials_active + } + } + scope:activity.var:body_to_bury.dynasty ?= { + is_target_in_variable_list = { + name = pam_sf_planned_cowl_burials + target = scope:activity.var:body_to_bury + } + } + } + send_interface_toast = { + type = event_toast_effect_good + title = pam_sf_cowl_burial_toast + left_icon = scope:host + right_icon = scope:activity.var:body_to_bury + add_piety = medium_piety_gain + } + scope:activity.var:body_to_bury.dynasty = { + remove_list_variable = { + name = pam_sf_planned_cowl_burials + target = scope:activity.var:body_to_bury + } + } + } } activity_planner_widgets = { diff --git a/common/activities/activity_types/hike.txt b/common/activities/activity_types/hike.txt index acd4ba7f1..989208dd7 100644 --- a/common/activities/activity_types/hike.txt +++ b/common/activities/activity_types/hike.txt @@ -1,18 +1,10 @@ activity_roaming = { is_shown = { - has_bp3_dlc_trigger = yes + hike_access_trigger = yes highest_held_title_tier >= tier_county is_adult = yes - #Every other activity must be blocked until an uncrowned AI crowns themselves - trigger_if = { - limit = { - is_ai = yes - } - NOT = { - has_realm_law = uncrowned - } - } - has_perk = roaming_perk + ai_activity_war_check = yes + ai_activity_coronation_check = yes } can_always_plan = no @@ -20,14 +12,11 @@ can_start_showing_failures_only = { NOT = { is_activity_type_on_cooldown = activity_roaming } is_available = yes - age >= 16 } is_valid = { scope:host = { - is_alive = yes - is_imprisoned = no - NOT = { is_incapable = yes } + is_physically_able = yes OR = { is_ai = no is_landed = yes @@ -58,7 +47,7 @@ scope:host = { is_ai = no OR = { - OR = { has_government = landless_adventurer_government has_government = landless_minority_government } + has_government = landless_adventurer_government is_landed = no } } @@ -91,6 +80,7 @@ on_invalidated = { invalidation_imprisoned_effect = yes invalidation_incapable_effect = yes + invalidation_host_isolated_effect = yes invalidation_unlanded_effect = yes } @@ -100,6 +90,27 @@ on_complete = { scope:activity.special_guest:honorary_guest_traveling_companion ?= { save_scope_as = special_guest } + if = { + limit = { + this = scope:host + has_personal_tenet_flag = cthonic_redoubts_hike + scope:activity.activity_location = { + OR = { + terrain = mountains + terrain = desert_mountains + } + } + } + scope:host = { + send_interface_toast = { + type = event_toast_effect_good + title = pam_cthonic_redoubts_hike_toast + left_icon = scope:host + add_piety = minor_piety_gain + change_spiritual_fulfillment = minor_spiritual_fulfillment_value + } + } + } if = { limit = { this = scope:host @@ -153,7 +164,7 @@ limit = { has_variable = roaming_tally_stress } - stress_impact = { base = var:roaming_tally_stress } + stress_and_fulfillment_impact = { base = var:roaming_tally_stress } } if = { limit = { @@ -218,6 +229,7 @@ } } } + pam_vows_of_poverty_host_completion_piety_effect = yes } } @@ -287,6 +299,12 @@ # } # multiply = 0.85 # } + if = { + limit = { + has_personal_tenet_flag = tenet_sun_worship_free_hikes + } + multiply = 0 + } } } @@ -304,6 +322,12 @@ # } # multiply = 0.85 # } + if = { + limit = { + has_personal_tenet_flag = tenet_sun_worship_free_hikes + } + multiply = 0 + } } } @@ -393,8 +417,8 @@ 1 = { add_character_flag = roaming_very_strong_stress_loss } } roaming_tally_variable_effect = { TYPE = stress VALUE = roaming_outro_stress_loss_value } - roaming_tally_stress_impact_effect = { TRAIT = trait:athletic VALUE = medium_stress_impact_loss } - roaming_tally_stress_impact_effect = { TRAIT = trait:lifestyle_traveler VALUE = minor_stress_impact_loss } + roaming_tally_stress_impact_effect = { TRAIT = athletic VALUE = medium_stress_impact_loss } + roaming_tally_stress_impact_effect = { TRAIT = lifestyle_traveler VALUE = minor_stress_impact_loss } trigger_event = { id = bp3_roaming.0010 } } } @@ -407,6 +431,7 @@ } roaming_long_length = { is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes has_perk = the_home_away_from_home_perk } @@ -495,6 +520,8 @@ } add = -75 } + + add = activity_general_ai_will_do_value } ai_check_interval = 60 @@ -584,6 +611,8 @@ # GRAPHICS ################### + header_background = "gfx/interface/illustrations/activity_header_backgrounds/activity_roaming.dds" + # Travel background = { # Bridge trigger = { diff --git a/common/activities/activity_types/hunt.txt b/common/activities/activity_types/hunt.txt index b789b8650..43003c34c 100644 --- a/common/activities/activity_types/hunt.txt +++ b/common/activities/activity_types/hunt.txt @@ -25,23 +25,12 @@ trigger_if = { # Throttle Counts limit = { highest_held_title_tier = tier_county - NOR = { - has_government = japan_administrative_government - has_government = japan_feudal_government - } + government_is_japanese_trigger = no } ai_boldness >= 100 } } - #Every other activity must be blocked until an uncrowned AI crowns themselves - trigger_if = { - limit = { - is_ai = yes - } - NOT = { - has_realm_law = uncrowned - } - } + ai_activity_coronation_check = yes } can_start_showing_failures_only = { @@ -50,7 +39,7 @@ can_hunt_trigger = yes trigger_if = { limit = { - OR = { has_government = landless_adventurer_government has_government = landless_minority_government } + has_government = landless_adventurer_government } custom_tooltip = { text = adventurer_3_courtiers @@ -71,10 +60,8 @@ is_valid = { scope:host = { - is_alive = yes - is_imprisoned = no + is_physically_able = yes is_playable_character = yes - NOT = { is_incapable = yes } top_liege = { NOT = { has_variable = banned_falconry_hunts } } @@ -151,58 +138,13 @@ } else_if = { # Host Imprisoned limit = { - scope:host = { is_imprisoned = yes} + scope:host = { is_imprisoned = yes } } every_in_list = { list = attendees trigger_event = hunt.0082 } } - # Host becomes unlanded - else_if = { - limit = { - scope:host = { - is_playable_character = no - } - } - scope:activity = { - activity_type = { save_scope_as = activity_type } - } - every_in_list = { - list = attendees - limit = { this != scope:host } - trigger_event = activity_system.0320 - } - } - else_if = { - limit = { - scope:host = { is_incapable = yes } - } - scope:activity = { - activity_type = { save_scope_as = activity_type } - } - scope:host = { - trigger_event = activity_system.0330 - } - every_in_list = { - list = attendees - limit = { this != scope:host } - trigger_event = activity_system.0331 - } - } - else_if = { # No one shows up - limit = { - has_attending_activity_guests = no - NOT = { - scope:host = { has_character_flag = no_claims_to_land } - } - } - scope:activity = { - activity_type = { save_scope_as = activity_type } - activity_location = { save_scope_as = location } - } - scope:host = { trigger_event = activity_system.0100 } - } else_if = { # You don't have hunting rights limit = { var:hunt_invalidated ?= flag:landless } save_scope_as = landless_invalidation @@ -215,7 +157,7 @@ limit = { has_activity_option = { category = special_type option = hunt_type_falconry } scope:host.top_liege = { - NOT = { has_variable = banned_falconry_hunts } + has_variable = banned_falconry_hunts } } every_in_list = { @@ -231,6 +173,11 @@ trigger_event = hunt.0087 } } + else = { + invalidation_incapable_effect = yes + invalidation_nobody_present_effect = yes + invalidation_host_isolated_effect = yes + } hunt_remove_variables_effect = yes } @@ -247,7 +194,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -310,7 +257,7 @@ } AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -625,7 +572,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -682,7 +629,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -707,7 +654,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } government_has_flag = government_is_mandala AND = { @@ -769,7 +716,7 @@ # Adventurer if = { - limit = { OR = { has_government = landless_adventurer_government has_government = landless_minority_government } } + limit = { has_government = landless_adventurer_government } multiply = 0.25 } @@ -851,7 +798,7 @@ # Adventurer if = { - limit = { OR = { has_government = landless_adventurer_government has_government = landless_minority_government } } + limit = { has_government = landless_adventurer_government } multiply = 0.25 } @@ -873,12 +820,12 @@ else = { value = 0 } -# if = { -# limit = { -# has_title = title:e_minister_of_revenue -# } -# multiply = 0.85 -# } + if = { + limit = { + has_title = title:e_minister_of_revenue + } + multiply = 0.85 + } } piety = { if = { @@ -1446,56 +1393,6 @@ } } } - # Plague - if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity < apocalyptic } - } - would_follow_social_distancing_value >= -1 - } - add = { - value = -60 - desc = "Plague in Domain" - } - } - else_if = { - limit = { - any_realm_county = { - has_province_with_epidemic = { intensity < apocalyptic } - } - would_follow_social_distancing_value >= -1 - } - add = { - value = -20 - desc = "Plague in Top Realm" - } - } - if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity = apocalyptic } - } - } - add = { - value = -200 - desc = "Apocalyptic Plague in Domain" - } - } - else_if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity = apocalyptic } - } - } - add = { - value = -40 - desc = "Apocalyptic Plague in Top Realm" - } - } #Government type if = { limit = { government_has_flag = government_is_mandala } @@ -1504,67 +1401,7 @@ desc = "Has Mandala Government" } } - if = { - limit = { - any_held_title = { - tier = tier_county - any_county_province_epidemic = { - count >= 1 - outbreak_intensity < apocalyptic - } - } - would_follow_social_distancing_value >= -1 - } - add = { - value = -60 - desc = "Plague in Domain" - } - } - else_if = { - limit = { - any_realm_county = { - any_county_province_epidemic = { - count >= 1 - outbreak_intensity < apocalyptic - } - } - would_follow_social_distancing_value >= -1 - } - add = { - value = -20 - desc = "Plague in Top Realm" - } - } - if = { - limit = { - any_held_title = { - tier = tier_county - any_county_province_epidemic = { - count >= 1 - outbreak_intensity = apocalyptic - } - } - } - add = { - value = -200 - desc = "Apocalyptic Plague in Domain" - } - } - else_if = { - limit = { - any_held_title = { - tier = tier_county - any_county_province_epidemic = { - count >= 1 - outbreak_intensity = apocalyptic - } - } - } - add = { - value = -40 - desc = "Apocalyptic Plague in Top Realm" - } - } + add = activity_general_ai_will_do_value #ACH Greatest Hunter Oath if = { limit = { @@ -1617,7 +1454,7 @@ } triggered_desc = { trigger = { - OR = { has_government = landless_adventurer_government has_government = landless_minority_government } + has_government = landless_adventurer_government NOT = { employs_court_position = huntperson_camp_officer } } desc = activity_hunt_host_desc_huntsperson @@ -1786,6 +1623,12 @@ province_description = { desc = activity_hunt_province_desc # +++ / triple plus good + triggered_desc = { + trigger = { + county ?= { has_county_modifier = hunt_sighting_legendary_modifier } + } + desc = activity_hunt_province_desc_legendary_sighting + } triggered_desc = { trigger = { scope:special_option ?= flag:hunt_type_standard @@ -2235,6 +2078,12 @@ map_entity = "building_western_hunt_01_entity" + ################### + # GRAPHICS + ################### + + header_background = "gfx/interface/illustrations/activity_header_backgrounds/activity_hunt.dds" + # Travel background = { # Bridge trigger = { @@ -2610,7 +2459,7 @@ activity_location = { OR = { geographical_region = world_asia - geographical_region = world_burma + geographical_region = world_asia_southeast_mainland geographical_region = world_india } } @@ -3695,7 +3544,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -3731,7 +3580,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -3748,7 +3597,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } government_has_flag = government_is_mandala AND = { @@ -3792,7 +3641,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -3983,6 +3832,7 @@ slay_beast_intent woo_attendee_intent befriend_attendee_intent + spread_personal_tenet_intent } ai_will_do = { add = { @@ -4096,6 +3946,9 @@ ######### hunt_option_attendants = { hunt_attendants_few = { + default = { + has_personal_tenet_flag = tenet_vows_of_poverty_humble_host + } is_shown = { has_dlc_feature = advanced_activities @@ -4146,13 +3999,22 @@ } } hunt_attendants_normal = { - default = yes + default = { + OR = { + NOT = { has_personal_tenet_flag = tenet_vows_of_poverty_humble_host } + NOT = { has_dlc_feature = advanced_activities } + } + } is_shown = { NOT = { government_has_flag = government_is_nomadic } } is_valid = { + trigger_if = { + limit = { has_dlc_feature = advanced_activities } + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } can_make_expensive_purchase_trigger = { PRICE = root.hunt_normal_option_cost } @@ -4167,7 +4029,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -4202,7 +4064,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -4219,7 +4081,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } government_has_flag = government_is_mandala AND = { @@ -4384,6 +4246,7 @@ } is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes can_make_expensive_purchase_trigger = { PRICE = root.hunt_good_option_cost } @@ -4398,7 +4261,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -4433,7 +4296,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -4450,7 +4313,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } government_has_flag = government_is_mandala AND = { @@ -4669,9 +4532,13 @@ } hunt_party_size_normal = { is_valid = { + trigger_if = { + limit = { has_dlc_feature = advanced_activities } + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } trigger_if = { limit = { - OR = { has_government = landless_adventurer_government has_government = landless_minority_government } + has_government = landless_adventurer_government } custom_tooltip = { text = I_AM_LANDLESS_ADVENTURER_TRIGGER @@ -4689,7 +4556,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -4724,7 +4591,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -4741,7 +4608,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } government_has_flag = government_is_mandala AND = { @@ -4884,9 +4751,10 @@ is_shown = { has_dlc_feature = advanced_activities } is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes trigger_if = { limit = { - OR = { has_government = landless_adventurer_government has_government = landless_minority_government } + has_government = landless_adventurer_government } custom_tooltip = { text = I_AM_LANDLESS_ADVENTURER_TRIGGER @@ -4904,7 +4772,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -4940,7 +4808,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } } } @@ -4957,7 +4825,7 @@ has_character_flag = free_hunt AND = { has_character_flag = free_falconry - involved_activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } + scope:special_option ?= flag:hunt_type_falconry } government_has_flag = government_is_mandala AND = { @@ -5488,6 +5356,7 @@ 2 = activity_invite_rule_glory_hounds 1 = activity_invite_rule_hunters 3 = activity_invite_rule_knights + 3 = activity_invite_rule_clergy 4 = activity_invite_rule_courtiers 4 = activity_invite_rule_fellow_vassals 1 = activity_invite_rule_landless_adventurers_restricted_range @@ -5505,19 +5374,19 @@ age >= 8 } } - NOT = { has_trait = incapable } + is_incapable = no can_hunt_trigger = yes in_diplomatic_range = scope:host } host_intents = { - intents = { reduce_stress_intent slay_beast_intent murder_attendee_intent woo_attendee_intent befriend_attendee_intent successful_nerge_intent dreadful_nerge_intent impose_obedience_intent } + intents = { reduce_stress_intent slay_beast_intent murder_attendee_intent woo_attendee_intent befriend_attendee_intent successful_nerge_intent dreadful_nerge_intent impose_obedience_intent spread_personal_tenet_intent } default = reduce_stress_intent player_defaults = { successful_nerge_intent reduce_stress_intent slay_beast_intent } } guest_intents = { - intents = { reduce_stress_intent slay_beast_intent murder_attendee_intent woo_attendee_intent befriend_attendee_intent successful_nerge_intent dreadful_nerge_intent } + intents = { reduce_stress_intent slay_beast_intent murder_attendee_intent woo_attendee_intent befriend_attendee_intent successful_nerge_intent dreadful_nerge_intent spread_personal_tenet_intent } default = reduce_stress_intent player_defaults = { successful_nerge_intent reduce_stress_intent slay_beast_intent } } @@ -5529,6 +5398,8 @@ # Scripted Modifiers activity_guest_shared_ai_accept_modifier = yes activity_guest_hunt_ai_accept_modifier = yes + activity_guest_clergy_shared_ai_accept_modifier = yes + activity_guest_clergy_frivolous_ai_accept_modifier = yes } ################### @@ -5539,6 +5410,7 @@ entries = { # Regular guest_friendship guest_insulted hunt_tracks_character hunt_tracks_option hunt_tracks_dog hunt_tracks_building hunt_hunters_bond hunt_dog_bond hunt_knowledge_sharing hunt_small_game hunt_moh_positive hunt_moh_negative hunt_poetic_inspiration hunt_fervor_gain hunt_distinguished_ability hunt_annoyed_owner hunt_impressive_grounds hunt_eggs_found + apa_pam_spread_tenet_host apa_pam_spread_tenet_guest apa_pam_mendicant_preachers_conversion # Nerge hunt_successful_kill hunt_very_successful_kill hunt_worked_together hunt_failed_kill hunt_failed_several_kills hunt_successful_maneuver hunt_learned_maneuver hunt_prowess_mastery hunt_martial_mastery @@ -5564,6 +5436,14 @@ # add = 1 # } #} + scope:host = { + if = { + limit = { + has_character_modifier = modifier_hunt_hunting_trophy + } + remove_character_modifier = modifier_hunt_hunting_trophy + } + } if = { limit = { has_activity_option = { @@ -5695,7 +5575,7 @@ if = { limit = { this = scope:host - OR = { has_government = landless_adventurer_government has_government = landless_minority_government } + has_government = landless_adventurer_government can_employ_court_position_type = huntperson_camp_officer NOT = { employs_court_position = huntperson_camp_officer } } @@ -5707,7 +5587,7 @@ if = { limit = { this = scope:host - OR = { has_government = landless_adventurer_government has_government = landless_minority_government } + has_government = landless_adventurer_government } trigger_event = { id = hunt.1337 diff --git a/common/activities/activity_types/imperial_examination.txt b/common/activities/activity_types/imperial_examination.txt index d97a75d9e..f3240a4ed 100644 --- a/common/activities/activity_types/imperial_examination.txt +++ b/common/activities/activity_types/imperial_examination.txt @@ -28,24 +28,7 @@ imprisoned = no incapable = no } - custom_description = { - text = ALREADY_IN_ACTIVITY - NOR = { - exists = involved_activity - has_variable = { - name = homage_liege_scope - name = meditation_character_flag - name = local_shrine_rite - name = petition_liege_character_flag - name = holding_court_character_flag - } - is_being_visited_on_tour_strict = yes - } - } - custom_description = { - text = ALREADY_PLANNING_ACTIVITY - NOT = { has_character_flag = planning_an_activity } - } + is_in_activity = no } trigger_else = { is_available = yes @@ -79,20 +62,11 @@ } } } - # Host becomes unlanded - if = { - limit = { - scope:host = { is_landed = no } - } - every_attending_character = { trigger_event = activity_system.0320 } - } - if = { # No one shows up - limit = { - has_attending_activity_guests = no - } - activity_location = { save_scope_as = location } - scope:host = { trigger_event = activity_system.0100 } - } + invalidation_imprisoned_effect = yes + invalidation_incapable_effect = yes + invalidation_unlanded_effect = yes + invalidation_nobody_present_effect = yes + invalidation_host_isolated_effect = yes } on_host_death = { @@ -120,6 +94,9 @@ ai_will_do = { value = 100 + # it's necessary for AI run their empire... + # add = activity_general_ai_will_do_value + #Special flags if = { limit = { @@ -396,10 +373,10 @@ } } if = { - limit = { has_trait = scholar } + limit = { has_trait = erudite } add = { value = 50 - desc = scholar + desc = erudite } } } @@ -655,6 +632,9 @@ } imperial_examination_passing_grade = { imperial_examination_passing_grade_low = { + default = { + has_personal_tenet_flag = tenet_vows_of_poverty_humble_host + } #Don't really need a cost, you pay in decreased legitimacy reward ai_will_do = { value = 100 @@ -695,6 +675,9 @@ } } imperial_examination_passing_grade_mediocre = { + is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } #Don't really need a cost, you pay in decreased legitimacy reward ai_will_do = { value = 100 @@ -744,13 +727,21 @@ } } imperial_examination_passing_grade_high = { - default = yes + is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } + default = { + NOT = { has_personal_tenet_flag = tenet_vows_of_poverty_humble_host } + } #Don't really need a cost, you pay in decreased legitimacy reward ai_will_do = { value = 25 } } imperial_examination_passing_grade_extreme = { + is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } # High Legitimacy reward at cost of fewer prospective governors ai_will_do = { value = 25 @@ -783,11 +774,12 @@ #Let's gooo! trigger_event = { on_action = imperial_examination_opening_on_action } } - scope:activity = { - progress_activity_phase_after = { days = imperial_examination_assembly_days } - #Set up the scoreboard - metropolitan_examination_scoreboard_setup_effect = yes - } + } + + on_phase_active_activity = { + progress_activity_phase_after = { days = imperial_examination_assembly_days } + #Set up the scoreboard + metropolitan_examination_scoreboard_setup_effect = yes } on_weekly_pulse = { @@ -962,6 +954,9 @@ is_predefined = yes on_enter_phase = { + scope:activity = { + progress_activity_phase_after = { days = 1 } + } # Let us trigger some enter phase events if = { limit = { this = scope:host } @@ -979,8 +974,7 @@ } } } - - if = { + else_if = { # Event for those who did not make the Palace Exam limit = { OR = { @@ -999,24 +993,6 @@ } trigger_event = imperial_examination.8000 } - #Let us enter the Prep event on_action loop - trigger_event = { - on_action = palace_examination_prep_events - days = 9 - } - trigger_event = { - on_action = palace_examination_prep_events - days = 17 - } - trigger_event = { - on_action = palace_examination_prep_events - days = 24 - } - scope:activity = { - progress_activity_phase_after = { days = imperial_examination_prep_days } - #Refresh the scoreboard - palace_examination_scoreboard_setup_effect = yes - } } on_phase_active = { @@ -1032,9 +1008,25 @@ } trigger_event = { on_action = imperial_examination_exam_entrant_events } } - scope:activity = { - progress_activity_phase_after = { days = 14 } + #Let us enter the Prep event on_action loop + trigger_event = { + on_action = palace_examination_prep_events + days = 9 } + trigger_event = { + on_action = palace_examination_prep_events + days = 17 + } + trigger_event = { + on_action = palace_examination_prep_events + days = 24 + } + } + + on_phase_active_activity = { + progress_activity_phase_after = { days = imperial_examination_prep_days } + #Refresh the scoreboard + palace_examination_scoreboard_setup_effect = yes } on_weekly_pulse = { @@ -1389,7 +1381,7 @@ has_trait = devoted has_trait = eunuch } - # To avoid mercenaries and holy orders to join + # To avoid mercenaries and Military Orders to join trigger_if = { limit = { exists = primary_title @@ -1560,14 +1552,14 @@ } } if = { - limit = { is_ai = yes} + limit = { is_ai = yes } remove_treasury = { value = { value = imperial_examination_actual_cost # Kaifeng cost bonus if = { limit = { - root.capital_province = { has_building_or_higher = kaifeng_palace_01 } + capital_province = { has_building_or_higher = kaifeng_palace_01 } } multiply = { value = { @@ -1695,9 +1687,9 @@ if = { limit = { is_ai = no - NOR = { - has_character_flag = passed_palace_exam - has_character_flag = set_activity_intent + has_none_of_variables = { + name = passed_palace_exam + name = set_activity_intent } } set_activity_intent = imperial_exam_taker_intent @@ -1744,6 +1736,8 @@ # GRAPHICS ################### + header_background = "gfx/interface/illustrations/activity_header_backgrounds/activity_imperial_examination.dds" + # Travel background = { # Bridge trigger = { diff --git a/common/activities/activity_types/inspection.txt b/common/activities/activity_types/inspection.txt index 3f3965b56..fc71abe62 100644 --- a/common/activities/activity_types/inspection.txt +++ b/common/activities/activity_types/inspection.txt @@ -8,29 +8,20 @@ highest_held_title_tier >= tier_county is_adult = yes government_has_flag = government_is_settled - #Every other activity must be blocked until an uncrowned AI crowns themselves - trigger_if = { - limit = { - is_ai = yes - } - NOT = { - has_realm_law = uncrowned - } - } OR = { has_perk = local_inspection_perk - government_allows = administrative - faith = { has_doctrine_parameter = inspections_unlocked_and_costs_piety } + government_has_mechanic = administrative + rite = { rite_has_parameter = inspections_unlocked_and_costs_piety } } + is_landed = yes trigger_if = { # Small AI's pace themselves more limit = { is_ai = yes } sub_realm_size > 1 } - trigger_else = { - sub_realm_size >= 1 - } + ai_activity_war_check = yes + ai_activity_coronation_check = yes } can_always_plan = no @@ -49,49 +40,39 @@ } has_perk = local_inspection_perk } - trigger_else_if = { #I have both TGP/EP3 and BP3 - limit = { - OR = { - has_ep3_dlc_trigger = yes - has_tgp_dlc_trigger = yes - } - has_bp3_dlc_trigger = yes - } - custom_tooltip = { - text = neither_local_inspection_perk_nor_merit - OR = { - has_perk = local_inspection_perk - government_allows = administrative - faith = { has_doctrine_parameter = inspections_unlocked_and_costs_piety } - } - } - } - trigger_else_if = { #I have only TGP/EP3 - I am required to have a bureaucratic government form (i.e. admin based). - limit = { - OR = { - has_ep3_dlc_trigger = yes - has_tgp_dlc_trigger = yes - } - has_bp3_dlc_trigger = no - } - OR = { - government_allows = administrative - faith = { has_doctrine_parameter = inspections_unlocked_and_costs_piety } - } - } trigger_else = { - always = no + # TGP/EP3 + trigger_if = { #I have both TGP/EP3 and BP3 + limit = { + has_bp3_dlc_trigger = yes + } + custom_tooltip = { + text = neither_local_inspection_perk_nor_merit + OR = { + has_perk = local_inspection_perk + government_has_mechanic = administrative + rite = { rite_has_parameter = inspections_unlocked_and_costs_piety } + } + } + } + trigger_else = { #I have only TGP/EP3 - I am required to have a bureaucratic government form (i.e. admin based). + custom_tooltip = { + text = neither_local_inspection_perk_nor_merit + OR = { + government_has_mechanic = administrative + rite = { rite_has_parameter = inspections_unlocked_and_costs_piety } + } + } + } } + is_available = yes is_landed = yes - age >= 16 } is_valid = { scope:host = { - is_alive = yes - is_imprisoned = no - is_incapable = no + is_physically_able = yes } } @@ -104,7 +85,7 @@ } custom_tooltip = { text = survey_activity_not_capital - this != scope:host.capital_province + this != scope:host.capital_province } } trigger_if = { @@ -172,17 +153,21 @@ } on_enter_travel_state = { - + } on_invalidated = { invalidation_imprisoned_effect = yes invalidation_incapable_effect = yes invalidation_unlanded_effect = yes + invalidation_host_isolated_effect = yes } on_complete = { - + if = { + limit = { this = scope:host } + pam_vows_of_poverty_host_completion_piety_effect = yes + } } on_enter_active_state = { @@ -233,7 +218,7 @@ NOT = { holder = { OR = { - is_vassal_of = scope:host + is_vassal_of = scope:host this = scope:host } } @@ -277,7 +262,7 @@ limit = { has_treasury = no NOR = { - faith = { has_doctrine_parameter = inspections_unlocked_and_costs_piety } + rite = { rite_has_parameter = inspections_unlocked_and_costs_piety } has_character_flag = free_inspection } } @@ -293,7 +278,7 @@ limit = { has_treasury = yes NOR = { - faith = { has_doctrine_parameter = inspections_unlocked_and_costs_piety } + rite = { rite_has_parameter = inspections_unlocked_and_costs_piety } has_character_flag = free_inspection } } @@ -307,7 +292,7 @@ value = 0 if = { limit = { - faith = { has_doctrine_parameter = inspections_unlocked_and_costs_piety } + rite = { rite_has_parameter = inspections_unlocked_and_costs_piety } NOT = { has_character_flag = free_inspection } } add = { @@ -325,7 +310,7 @@ limit = { has_treasury = no NOR = { - faith = { has_doctrine_parameter = inspections_unlocked_and_costs_piety } + rite = { rite_has_parameter = inspections_unlocked_and_costs_piety } has_character_flag = free_inspection } } @@ -333,8 +318,8 @@ # Base Cost value = standard_survey_activity_cost # Make it a multiple of 5 (rounded up) - divide = 5 - ceiling = yes + divide = 5 + ceiling = yes multiply = 5 } } @@ -345,7 +330,7 @@ limit = { has_treasury = yes NOR = { - faith = { has_doctrine_parameter = inspections_unlocked_and_costs_piety } + rite = { rite_has_parameter = inspections_unlocked_and_costs_piety } has_character_flag = free_inspection } } @@ -353,8 +338,8 @@ # Base Cost value = standard_survey_activity_cost # Make it a multiple of 5 (rounded up) - divide = 5 - ceiling = yes + divide = 5 + ceiling = yes multiply = 5 } } @@ -363,15 +348,15 @@ value = 0 if = { limit = { - faith = { has_doctrine_parameter = inspections_unlocked_and_costs_piety } + rite = { rite_has_parameter = inspections_unlocked_and_costs_piety } NOT = { has_character_flag = free_inspection } } add = { # Base Cost value = standard_survey_activity_cost # Make it a multiple of 5 (rounded up) - divide = 5 - ceiling = yes + divide = 5 + ceiling = yes multiply = 5 } } @@ -416,7 +401,7 @@ } on_end = { - + } } } @@ -427,6 +412,9 @@ default = yes } inspection_small_fund = { + is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } cost = { gold = { value = 0 @@ -495,6 +483,9 @@ } } inspection_large_fund = { + is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } cost = { gold = { value = 0 @@ -566,12 +557,12 @@ } max_guest_arrival_delay_time = { months = 1 } - - + + ################### # ACTIVITY-SPECIFIC PULSES ################### - + pulse_actions = { entries = { apa_survey_bad_harvest @@ -600,14 +591,14 @@ # desc is only shown in debug AI watch window ai_will_do = { value = 50 - + if = { limit = { has_trait = lazy } add = -10 } - + #Can you actually afford this? if = { limit = { @@ -615,6 +606,8 @@ } add = -75 } + + add = activity_general_ai_will_do_value } ai_check_interval = 60 @@ -661,7 +654,7 @@ # Up to how many characters to select for a player max = 20 - + # Up to how many characters to select for an AI ai_max = 15 @@ -678,6 +671,8 @@ # GRAPHICS ################### + header_background = "gfx/interface/illustrations/activity_header_backgrounds/activity_survey.dds" + # Travel background = { # Bridge trigger = { @@ -727,7 +722,7 @@ environment = "environment_tgp_farm_asia" ambience = "event:/DLC/EP4/SFX/Events/Event_Backgrounds/tgp_farm_asia" } - + background = { # Farmland, settled trigger = { scope:host.location != scope:activity.activity_location @@ -882,7 +877,7 @@ } } texture = "gfx/interface/illustrations/event_scenes/bp1_wetlands.dds" - environment = "environment_event_bp1_wetlands" + environment = "environment_event_bp1_wetlands" ambience = "event:/SFX/Events/Backgrounds/deciduous_forest_day" } @@ -957,7 +952,7 @@ activity_location.culture ?= { has_graphical_steppe_culture_group_trigger = yes } } AND = { - is_landless_adventurer = yes + activity_host = { is_landless_adventurer = yes } activity_location.culture ?= { has_graphical_steppe_culture_group_trigger = yes } } } @@ -975,7 +970,7 @@ } texture = "gfx/interface/illustrations/event_scenes/ep3_constantinople.dds" environment = "environment_ep3_constantinople" - ambience = "event:/DLC/EP3/SFX/Events/Event_Images/ep3_evn_eventimage_constantinople" + ambience = "event:/DLC/EP3/SFX/Events/Event_Images/ep3_evn_eventimage_constantinople" } background = { #FP2 trigger = { @@ -989,8 +984,8 @@ } } texture = "gfx/interface/illustrations/event_scenes/fp2_courtyard.dds" - environment = "environment_event_fp2_courtyard" - ambience = "event:/DLC/FP2/SFX/Events/courtyard" + environment = "environment_event_fp2_courtyard" + ambience = "event:/DLC/FP2/SFX/Events/courtyard" } background = { #Indian Courtyard trigger = { @@ -1004,7 +999,7 @@ } } texture = "gfx/interface/illustrations/event_scenes/bp1_courtyard_indian.dds" - environment = "environment_event_bp1_courtyard_indian" + environment = "environment_event_bp1_courtyard_indian" ambience = "event:/SFX/Events/Backgrounds/castle_courtyard_western" } background = { #MENA Courtyard @@ -1014,7 +1009,7 @@ OR = { culture ?= { has_graphical_mena_culture_group_trigger = yes } culture ?= { has_building_gfx = iranian_building_gfx } - steppe_building_gfx_use_mena_trigger = yes + steppe_building_gfx_use_mena_trigger = yes } } } @@ -1039,13 +1034,13 @@ background = { # Fallback texture = "gfx/interface/illustrations/event_scenes/bp2_courtyard.dds" environment = "environment_bp2_courtyard" - ambience = "event:/DLC/FP2/SFX/Events/courtyard" + ambience = "event:/DLC/FP2/SFX/Events/courtyard" } window_characters = { guest = { camera = camera_body_left - + effect = { if = { limit = { @@ -1105,7 +1100,7 @@ host = { camera = camera_body - + effect = { if = { limit = { @@ -1121,10 +1116,10 @@ animation = debating } } - + travel_host = { camera = camera_event_horse_left - + effect = { if = { limit = { @@ -1153,7 +1148,7 @@ guest = { camera = camera_body - + effect = { if = { limit = { diff --git a/common/activities/activity_types/pilgrimage.txt b/common/activities/activity_types/pilgrimage.txt index 6f71ba231..beb72592a 100644 --- a/common/activities/activity_types/pilgrimage.txt +++ b/common/activities/activity_types/pilgrimage.txt @@ -7,40 +7,38 @@ is_ai = yes } years_from_game_start >= 3 - is_at_war = no - short_term_gold >= pilgrimage_base_cost - NOT = { has_variable = conqueror } + OR = { + short_term_gold >= pilgrimage_base_cost + AND = { + government_has_flag = government_is_theocracy + has_treasury = yes + short_term_treasury >= pilgrimage_base_cost + } + } trigger_if = { # Throttle Counts limit = { highest_held_title_tier = tier_county NOR = { government_has_flag = government_is_mandala - faith = { has_doctrine_parameter = mandatory_hajj } - has_government = japan_administrative_government - has_government = japan_feudal_government + rite = { rite_has_parameter = mandatory_hajj } + government_is_japanese_trigger = yes } } - ai_zeal >= 100 - } - } - #Every other activity must be blocked until an uncrowned AI crowns themselves - trigger_if = { - limit = { - is_ai = yes - } - NOT = { - has_realm_law = uncrowned + OR = { + ai_zeal >= 100 + has_character_modifier = pam_sf_demon_torment_modifier + } } } + ai_activity_war_check = yes + ai_activity_coronation_check = yes } can_start_showing_failures_only = { NOT = { is_activity_type_on_cooldown = activity_pilgrimage } is_available_adult = yes - faith = { - NOT = { has_doctrine_parameter = forbidden_from_pilgrimage } - any_holy_site = { exists = this } - } + rite = { NOT = { rite_has_parameter = forbidden_from_pilgrimage } } + faith = { any_holy_site_barony = { exists = this } } #Check if all of your holy sites are on cooldown trigger_if = { limit = { @@ -52,7 +50,7 @@ custom_tooltip = { text = activity_pilgrimage.is_activity_available.all_holy_sites_on_cooldown faith = { - any_holy_site = { + any_holy_site_barony = { save_temporary_scope_as = site_check NOT = { root = { @@ -73,10 +71,24 @@ } } trigger_else = { always = yes } + # If a destination has been selected in the planner, it must not be on cooldown. + trigger_if = { + limit = { exists = scope:province } + custom_tooltip = { + text = activity_pilgrimage.is_location_valid.recently_visited + NOT = { + any_memory = { + has_variable = pilgrimage_destination + var:pilgrimage_destination = scope:province + memory_age_years < 5 + } + } + } + } #Are you mandatory Hajj and Mecca is your capital? trigger_if = { limit = { - faith = { has_doctrine_parameter = mandatory_hajj } + rite = { rite_has_parameter = mandatory_hajj } capital_province.barony ?= title:b_makka is_landless_adventurer = no } @@ -91,7 +103,7 @@ custom_tooltip = { text = activity_pilgrimage.serving_diarch faith = { - any_holy_site = { + any_holy_site_barony = { save_temporary_scope_as = site_check NOT = { root = { @@ -120,10 +132,8 @@ scope:host = { #If you don't have a capital to return to, don't bother exists = capital_province - is_capable_adult = yes - is_imprisoned = no - is_playable_character = yes - NOT = { is_incapable = yes } + is_physically_able_adult = yes + is_playable_character = yes #Invalidate flag, until/unless this is fixed in code NOT = { has_variable = pilgrimage_invalidated_illness } #Don't change your capital to be the holy site destination @@ -161,33 +171,9 @@ trigger_event = pilgrimage.0040 } } - # Host becomes unlanded - if = { - limit = { - scope:host = { is_playable_character = no } - } - scope:activity = { - activity_type = { save_scope_as = activity_type } - } - every_attending_character = { - trigger_event = activity_system.0320 - } - } - if = { - limit = { - scope:host = { is_incapable = yes } - } - scope:activity = { - activity_type = { save_scope_as = activity_type } - } - scope:host = { - trigger_event = activity_system.0330 - } - every_attending_character = { - limit = { this != scope:host } - trigger_event = activity_system.0331 - } - } + invalidation_imprisoned_effect = yes + invalidation_incapable_effect = yes + invalidation_host_isolated_effect = yes } on_host_death = { @@ -232,29 +218,51 @@ #Filtering for Mecca will not work if put under Phase instead of the Activity setup is_location_valid = { - #Hajj only goes to Mecca + # Holy site cooldown should block province selection (map color/click) just like pin selection. trigger_if = { limit = { - scope:special_option = flag:pilgrimage_type_hajj - exists = barony - } - custom_tooltip = { - text = activity_pilgrimage.is_location_valid.hajj_mecca - barony = title:b_makka - } - } - #You only get to visit any particular holy site once every 5 years - custom_tooltip = { - text = activity_pilgrimage.is_location_valid.recently_visited - NOT = { scope:host = { any_memory = { has_variable = pilgrimage_destination var:pilgrimage_destination = root #root is the province we're checking memory_age_years < 5 + save_temporary_scope_as = pilgrimage_holy_site_cooldown_memory } } } + trigger_if = { + limit = { + scope:pilgrimage_holy_site_cooldown_memory = { + has_variable = pilgrimage_holy_site_cooldown + } + } + custom_tooltip = { + text = activity_pilgrimage.is_location_valid.recently_visited + always = no + } + custom_tooltip = { + text = pilgrimage_holy_site_cooldown_until_tt + always = no + } + } + trigger_else = { + custom_tooltip = { + text = activity_pilgrimage.is_location_valid.recently_visited + always = no + } + } + } + + #Hajj only goes to Mecca + trigger_if = { + limit = { + scope:special_option ?= flag:pilgrimage_type_hajj + exists = barony + } + custom_tooltip = { + text = activity_pilgrimage.is_location_valid.hajj_mecca + barony = title:b_makka + } } #You can't pilgrimage to your own capital - Except for if you are an adventurer because then you travel around all the time anyway trigger_if = { @@ -336,28 +344,37 @@ } desc = activity_pilgrimage_province_unvisited_desc } - #Is it a unique holy site? + # Is it a unique holy site? (does it have bespoke events, even if minor) triggered_desc = { trigger = { OR = { #Taken from the Pilgrimage arrival on_action event triggers - #Judaism + #Chatholicism AND = { - scope:host = { - OR = { - religion = religion:eastern_orthodox_religion - religion = religion:catholic_religion - religion = religion:protestant_religion - } - } + scope:host = { religion = religion:catholic_religion } OR = { county = title:c_roma # Rome county = title:c_jerusalem # Jerusalem + } + } + #Protestantism + AND = { + scope:host = { religion = religion:protestant_religion } + OR = { + county = title:c_jerusalem # Jerusalem + county = title:c_augsburg # Augsburg + } + } + #Eastern Orthodoxy + AND = { + scope:host = { religion = religion:eastern_orthodox_religion } + OR = { + county = title:c_jerusalem # Jerusalem county = title:c_byzantion # Constantinople county = title:c_alexandria # Alexandria } } - #Christianity + #Judaism AND = { scope:host = { religion = religion:judaism_religion } OR = { @@ -411,7 +428,7 @@ } #Norse AND = { - scope:host = { religion = religion:folkgerman_religion } + scope:host = { religion = religion:germanic_religion } county = title:c_paderborn # Paderborn } @@ -419,6 +436,17 @@ } desc = activity_pilgrimage_province_unique_desc } + # Is it an eminent holy site? + triggered_desc = { + trigger = { + scope:host.faith = { + any_eminent_holy_site = { + holy_site_county = root.county + } + } + } + desc = activity_pilgrimage_eminent_holy_site_desc + } # Inspection modifier triggered_desc = { trigger = { @@ -541,7 +569,7 @@ } if = { limit = { - faith = { has_doctrine = doctrine_pilgrimage_mandatory } + rite = { rite_has_doctrine = doctrine_pilgrimage_mandatory } NOT = { has_trait = pilgrim } } add = { @@ -551,7 +579,7 @@ } if = { limit = { - faith = { has_doctrine = doctrine_pilgrimage_mandatory_hajj } + rite = { rite_has_doctrine = doctrine_pilgrimage_mandatory_hajj } NOT = { has_trait = hajjaj } } add = { @@ -567,7 +595,16 @@ } } if = { - limit = { short_term_gold >= major_gold_value } + limit = { + OR = { + short_term_gold >= major_gold_value + AND = { + government_has_flag = government_is_theocracy + has_treasury = yes + short_term_treasury >= major_gold_value + } + } + } add = { value = 30 desc = "Got gold to burn" @@ -682,56 +719,35 @@ desc = "Has maxed out Pilgrim" } } - # Plague if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity < apocalyptic } - } - would_follow_social_distancing_value >= -1 - } - add = { - value = -60 - desc = "Plague in Domain" - } - } - else_if = { - limit = { - any_realm_county = { - has_province_with_epidemic = { intensity < apocalyptic } - } - would_follow_social_distancing_value >= -1 - } - add = { - value = -20 - desc = "Plague in Top Realm" - } - } - if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity = apocalyptic } - } - } - add = { - value = -200 - desc = "Apocalyptic Plague in Domain" - } - } - else_if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity = apocalyptic } - } - } - add = { - value = -40 - desc = "Apocalyptic Plague in Top Realm" - } - } + limit = { + has_pam_dlc_trigger = yes + faith = { has_variable = pam_secured_pilgrim_routes } + } + add = { + value = 10 + desc = pam_secure_pilgrim_routes_ai_pilgrimage + } + } + add = activity_general_ai_will_do_value + if = { + limit = { + has_character_modifier = promised_pilgrimage_to_clergy_modifier + } + add = { + value = 1000 + desc = promised_pilgrimage_to_clergy_modifier + } + } + if = { + limit = { + has_character_modifier = pam_sf_demon_torment_modifier + } + add = { + value = 1000 + desc = pam_sf_demon_torment_modifier + } + } } ai_check_interval_by_tier = { @@ -840,15 +856,15 @@ } } # Plague - if = { + if = { limit = { any_province_epidemic = { } - } - add = { - value = -200 - desc = "Plague in Destination" - } - } + } + add = { + value = -200 + desc = "Plague in Destination" + } + } } ################### @@ -863,187 +879,56 @@ cost = { gold = { - add = { - add = { - value = pilgrimage_base_cost - desc = pilgrimage_base_cost - } - add = { - value = pilgrimage_base_cost - multiply = activity_cost_scale_by_era - subtract = pilgrimage_base_cost - desc = activity_cost_scale_by_era_desc - } - if = { - limit = { has_character_modifier = ghost_pilgrimage_promised_modifier } - subtract = { - value = medium_gold_value - desc = pilgrimage_cost_triggered_by_ghosts + value = 0 + if = { + limit = { + OR = { + has_treasury = no + NOT = { government_has_flag = government_is_theocracy } } } - #You should really only have this flag if your religion has Hajj and you've never Hajj'd - if = { - limit = { has_character_modifier = hajj_promised_modifier } - subtract = { - value = medium_gold_value - desc = pilgrimage_cost_triggered_by_dead_hajj_relative - } - } - #You should really only have this flag if you haven't Pilgrim'd before - if = { - limit = { has_character_modifier = pilgrimage_promised_modifier } - subtract = { - value = medium_gold_value - desc = pilgrimage_cost_triggered_by_dead_pilgrimage_relative - } - } - if = { - limit = { - dynasty ?= { has_dynasty_perk = ep2_activities_legacy_1 } - } - subtract = { - value = pilgrimage_base_cost - multiply = ep2_activities_legacy_1_pilgrimages_discount_value - desc = ep2_activities_legacy_track - } - } - # bp2_yearly.2030 - if = { - limit = { - exists = scope:province - has_character_flag = imaginary_friend_pilgrimage_discount - any_owned_story = { - type = story_cycle_imaginary_friend - var:pilgrimage_destination ?= scope:province - } - } - multiply = { - value = 0.5 - desc = imaginary_friend_pilgrimage_discount - } - } - #court.8140 - if = { - limit = { - has_character_flag = court_event_discount_pilgrimage - } - multiply = { - value = 0.75 - desc = court_event_discount_desc - } - } - #House Aspiration Humility - if = { - limit = { - house ?= { has_house_aspiration_parameter = humility_pilgrimage_discount } - } - multiply = { - value = 0.75 - desc = humility_house_aspiration_discount_desc - } - } - #Mandala Reverence Decree - if = { - limit = { has_realm_law_flag = cheaper_pilgrimages } - multiply = { - value = 0.75 - desc = mandala_decree_flag_cheaper_pilgrimages_desc - } - } - if = { - limit = { - domicile ?= { has_domicile_parameter = estate_cheaper_pilgrimage_cost } - } - subtract = { - value = 0 - add = { - value = pilgrimage_base_cost - add = { - value = pilgrimage_base_cost - multiply = activity_cost_scale_by_era - subtract = pilgrimage_base_cost - } - } - multiply = estate_cheaper_pilgrimage_cost_value - desc = estate_cheaper_pilgrimage_cost_desc - } - } - #Local Shrine Rituals - if = { - limit = { - faith = { has_doctrine_parameter = local_shrine_offering } - } - multiply = { - value = 1.75 - desc = doctrine_pilgrimage_local_rites_name - } - } - #Adventurer & Nomads - if = { - limit = { - OR = { - is_landless_adventurer = yes - government_has_flag = government_is_nomadic - } - has_perk = clerical_justifications_perk - } - multiply = { - value = 0.5 - desc = adventurer_discount_desc - } - } - if = { - limit = { - confederation ?= { has_cohesion_level_parameter = any_member_activity_cost_reduced } - } - multiply = { - value = 0.9 - desc = CB_COHESION_PARAMETER_DISCOUNT - } - } - # tgp_japan_yearly_events.1110 - if = { - limit = { has_character_modifier = tgp_reflection_modifier } - multiply = { - value = 0.8 - desc = tgp_reflection_modifier_desc_tt - } - } - if = { - limit = { - var:tgp_ceremonial_liege_events_0020_discount ?= flag:pilgrimage - } - multiply = { - value = 0.85 - desc = tgp_ceremonial_liege_events_0020_discount_desc - } - } - #Mandala Godking AI - if = { - limit = { - has_variable = mandala_godking - is_ai = yes - } - multiply = 0.25 - } - min = minor_gold_value - } -# if = { -# limit = { -# has_title = title:e_minister_of_revenue + add = pilgrimage_activity_cost_value +# if = { +# limit = { +# has_title = title:e_minister_of_revenue +# } +# multiply = 0.85 # } -# multiply = 0.85 -# } + } + } + treasury = { + value = 0 + if = { + limit = { + government_has_flag = government_is_theocracy + has_treasury = yes + } + add = pilgrimage_activity_cost_value +# if = { +# limit = { +# has_title = title:e_minister_of_revenue +# } +# multiply = 0.85 +# } + } } } ui_predicted_cost = { gold = { + if = { + limit = { + government_has_flag = government_is_theocracy + has_treasury = yes + } + value = 0 + } + else = { # Calculate average cost of traveling to one of your holy sites faith = { # Calculate a summation of the costs to travel to each of your faith's holy sites # MUST BE SYNCED WITH THE PHASE COST - every_holy_site = { + every_holy_site_barony = { #Tier 1 if = { limit = { @@ -1126,7 +1011,7 @@ # Have to set this value to 1 so the error log doesn't think we're dividing by 0 value = 1 faith = { - every_holy_site = { + every_holy_site_barony = { add = 1 } } @@ -1196,6 +1081,26 @@ value = 0.75 } } + # By God Alone - Secular Faith & Rite: a sponsored pilgrimage (0042) halves every cost. + if = { + limit = { + has_character_modifier = pam_sf_pilgrimage_funded_modifier + } + multiply = { + value = 0.5 + } + } + if = { + limit = { + OR = { + has_fulfillment_parameter = sp_cheaper_pilgrimage_major + has_fulfillment_parameter = sp_cheaper_pilgrimage + } + } + multiply = { + value = spiritual_fulfillment_pilgrimage_cost_mult + } + } if = { limit = { has_government = landless_adventurer_government @@ -1208,7 +1113,7 @@ } if = { limit = { - faith = { has_doctrine_parameter = local_shrine_offering } + rite = { rite_has_parameter = local_shrine_offering } } multiply = { value = 1.75 @@ -1245,6 +1150,248 @@ # } # multiply = 0.85 # } + + } + } + treasury = { + if = { + limit = { + OR = { + has_treasury = no + NOT = { government_has_flag = government_is_theocracy } + } + } + value = 0 + } + else = { + # Calculate average cost of traveling to one of your holy sites + faith = { + # Calculate a summation of the costs to travel to each of your faith's holy sites + # MUST BE SYNCED WITH THE PHASE COST + every_holy_site_barony = { + #Tier 1 + if = { + limit = { + "squared_distance(root.capital_province)" > squared_distance_small + "squared_distance(root.capital_province)" <= squared_distance_medium + } + add = { + value = root.medium_gold_value + multiply = 0.2 + } + } + #Tier 2: Praha -> Cologne + else_if = { + limit = { + "squared_distance(root.capital_province)" > squared_distance_medium + "squared_distance(root.capital_province)" <= squared_distance_large + } + add = { + value = root.medium_gold_value + multiply = 0.4 + } + } + #Tier 3 + else_if = { + limit = { + "squared_distance(root.capital_province)" > squared_distance_large + "squared_distance(root.capital_province)" <= squared_distance_huge + } + add = { + value = root.medium_gold_value + multiply = 0.6 + } + } + #Tier 4 + else_if = { + limit = { + "squared_distance(root.capital_province)" > squared_distance_huge + "squared_distance(root.capital_province)" <= squared_distance_almost_massive + } + add = { + value = root.medium_gold_value + multiply = 0.8 + } + } + #Tier 5 + else_if = { + limit = { + "squared_distance(root.capital_province)" > squared_distance_almost_massive + "squared_distance(root.capital_province)" <= squared_distance_massive + } + add = { + value = root.medium_gold_value + multiply = 1 + } + } + #Tier 6: Klingenberg -> Jerusalem + else_if = { + limit = { + "squared_distance(root.capital_province)" > squared_distance_massive + "squared_distance(root.capital_province)" <= squared_distance_monstrous + } + add = { + value = root.medium_gold_value + multiply = 1.2 + } + } + #Tier 7: Klingenberg -> Kanchipuram + else_if = { + limit = { "squared_distance(root.capital_province)" > squared_distance_monstrous } + add = { + value = root.medium_gold_value + multiply = 1.5 + } + } + } + } + + # Now that we have added up the costs of traveling to every holy site, we divide by the number of holy sites you have so we come up with an average travel cost value + divide = { + # Have to set this value to 1 so the error log doesn't think we're dividing by 0 + value = 1 + faith = { + every_holy_site_barony = { + add = 1 + } + } + # account for the starting value of 1 + subtract = 1 + # Ensure that we never drop to 0 + min = 1 + } + + add = { # Base cost, scaled by era + value = pilgrimage_base_cost + multiply = activity_cost_scale_by_era + } + + # Options + add = { # Pomp Option + value = 0 # Appropriate Cost + add = -10 # Humble Cost + add = 50 # Ceremonial Cost + add = 100 # Throng Cost + # Scale option costs by tier and era + multiply = activity_cost_scale_by_tier + multiply = activity_cost_scale_by_era + # Divide by the number of option levels to get an average option cost + divide = 4 + } + + if = { + limit = { has_character_modifier = ghost_pilgrimage_promised_modifier } + subtract = { + value = medium_gold_value + desc = pilgrimage_cost_triggered_by_ghosts + } + } + #You should really only have this flag if your religion has Hajj and you've never Hajj'd + if = { + limit = { has_character_modifier = hajj_promised_modifier } + subtract = { + value = medium_gold_value + desc = pilgrimage_cost_triggered_by_dead_hajj_relative + } + } + #You should really only have this flag if you haven't Pilgrim'd before + if = { + limit = { has_character_modifier = pilgrimage_promised_modifier } + subtract = { + value = medium_gold_value + desc = pilgrimage_cost_triggered_by_dead_pilgrimage_relative + } + } + if = { + limit = { + dynasty ?= { has_dynasty_perk = ep2_activities_legacy_1 } + } + subtract = { + value = pilgrimage_base_cost + multiply = ep2_activities_legacy_1_pilgrimages_discount_value + desc = ep2_activities_legacy_track + } + } + #court.8140 + if = { + limit = { + has_character_flag = court_event_discount_pilgrimage + } + multiply = { + value = 0.75 + } + } + # By God Alone - Secular Faith & Rite: a sponsored pilgrimage (0042) halves every cost. + if = { + limit = { + has_character_modifier = pam_sf_pilgrimage_funded_modifier + } + multiply = { + value = 0.5 + } + } + if = { + limit = { + OR = { + has_fulfillment_parameter = sp_cheaper_pilgrimage_major + has_fulfillment_parameter = sp_cheaper_pilgrimage + } + } + multiply = { + value = spiritual_fulfillment_pilgrimage_cost_mult + } + } + if = { + limit = { + has_government = landless_adventurer_government + has_perk = clerical_justifications_perk + } + multiply = { + value = 0.25 + desc = adventurer_discount_desc + } + } + if = { + limit = { + rite = { rite_has_parameter = local_shrine_offering } + } + multiply = { + value = 1.75 + desc = doctrine_pilgrimage_local_rites_name + } + } + if = { + limit = { + confederation ?= { has_cohesion_level_parameter = any_member_activity_cost_reduced } + } + multiply = { + value = 0.9 + desc = CB_COHESION_PARAMETER_DISCOUNT + } + } + if = { + limit = { + var:tgp_ceremonial_liege_events_0020_discount ?= flag:pilgrimage + } + multiply = { + value = 0.85 + desc = tgp_ceremonial_liege_events_0020_discount_desc + } + } + min = minor_gold_value + + # Make it a multiple of 5 (rounded up) + divide = 5 + ceiling = yes + multiply = 5 +# if = { +# limit = { +# has_title = title:e_minister_of_revenue +# } +# multiply = 0.85 +# } + + } } } @@ -1262,7 +1409,7 @@ default = { OR = { NOT = { - faith = { has_doctrine_parameter = mandatory_hajj } + rite = { rite_has_parameter = mandatory_hajj } } has_trait = hajjaj } @@ -1271,7 +1418,7 @@ # Most Muslims must perform the Hajj first. trigger_if = { limit = { - faith = { has_doctrine_parameter = mandatory_hajj } + rite = { rite_has_parameter = mandatory_hajj } } custom_tooltip = { text = activity_pilgrimage.is_valid.islam.must_complete_hajj_first @@ -1312,7 +1459,7 @@ # Most Muslims must perform the Hajj first. trigger_if = { limit = { - faith = { has_doctrine_parameter = mandatory_hajj } + rite = { rite_has_parameter = mandatory_hajj } } custom_tooltip = { text = activity_pilgrimage.is_valid.islam.must_complete_hajj_first @@ -1351,12 +1498,12 @@ pilgrimage_type_hajj = { #Crashes [sometimes] if you start the game with a ruler where this is default then tag over to another ruler where this isn't default default = { - faith = { has_doctrine_parameter = mandatory_hajj } + rite = { rite_has_parameter = mandatory_hajj } NOT = { has_trait = hajjaj } } is_shown = { OR = { - faith = { has_doctrine_parameter = mandatory_hajj } + rite = { rite_has_parameter = mandatory_hajj } can_perform_the_hajj_trigger = yes } } @@ -1378,7 +1525,7 @@ } } OR = { - faith = { has_doctrine_parameter = mandatory_hajj } + rite = { rite_has_parameter = mandatory_hajj } can_perform_the_hajj_trigger = yes } #Is Mecca your capital? @@ -1395,7 +1542,7 @@ value = 50 if = { limit = { - faith = { has_doctrine_parameter = mandatory_hajj } + rite = { rite_has_parameter = mandatory_hajj } NOT = { has_trait = hajjaj } } add = 5000 @@ -1438,7 +1585,7 @@ custom_tooltip = { text = activity_pilgrimage.is_valid.islam.mandatory_or_impatient OR = { - faith = { has_doctrine_parameter = mandatory_hajj } + rite = { rite_has_parameter = mandatory_hajj } has_trait = impatient } } @@ -1447,7 +1594,7 @@ custom_tooltip = { text = activity_pilgrimage.is_valid.other.mandatory_or_impatient OR = { - faith = { has_doctrine_parameter = mandatory_pilgrimage } + rite = { rite_has_parameter = mandatory_pilgrimage } has_trait = impatient } } @@ -1581,35 +1728,70 @@ pilgrimage_option_pomp = { pilgrimage_pomp_humble = { is_shown = { has_dlc_feature = advanced_activities } + default = { + has_personal_tenet_flag = tenet_vows_of_poverty_humble_host + } cost = { gold = { - subtract = { - desc = pilgrimage_cost_pomp_ceremonial - add = { - value = 10 - desc = pilgrimage_cost_pomp_ceremonial - } - add = { - value = 10 - multiply = activity_cost_scale_by_tier - subtract = 10 - desc = activity_cost_scale_by_tier_desc - } - add = { - value = 10 - multiply = activity_cost_scale_by_era - subtract = 10 - desc = activity_cost_scale_by_era_desc - } - } if = { limit = { - has_perk = journey_planner_perk + government_has_flag = government_is_theocracy + has_treasury = yes } - multiply = { - value = voyager_journey_planner_value - desc = journey_planner_perk_name + value = 0 + } + else = { + subtract = { + desc = pilgrimage_cost_pomp_ceremonial + add = { + value = 10 + desc = pilgrimage_cost_pomp_ceremonial + } + add = { + value = 10 + multiply = activity_cost_scale_by_tier + subtract = 10 + desc = activity_cost_scale_by_tier_desc + } + add = { + value = 10 + multiply = activity_cost_scale_by_era + subtract = 10 + desc = activity_cost_scale_by_era_desc + } + } + } + } + treasury = { + if = { + limit = { + OR = { + has_treasury = no + NOT = { government_has_flag = government_is_theocracy } + } + } + value = 0 + } + else = { + subtract = { + desc = pilgrimage_cost_pomp_ceremonial + add = { + value = 10 + desc = pilgrimage_cost_pomp_ceremonial + } + add = { + value = 10 + multiply = activity_cost_scale_by_tier + subtract = 10 + desc = activity_cost_scale_by_tier_desc + } + add = { + value = 10 + multiply = activity_cost_scale_by_era + subtract = 10 + desc = activity_cost_scale_by_era_desc + } } } } @@ -1628,7 +1810,18 @@ } } pilgrimage_pomp_appropriate = { - default = yes + is_valid = { + trigger_if = { + limit = { has_dlc_feature = advanced_activities } + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } + } + default = { + OR = { + NOT = { has_personal_tenet_flag = tenet_vows_of_poverty_humble_host } + NOT = { has_dlc_feature = advanced_activities } + } + } # Entourage option grabbing suitable bodyguards & maybe someone from court who really likes you, + randos. travel_entourage_selection = { @@ -1647,44 +1840,127 @@ } pilgrimage_pomp_ceremonial = { is_shown = { has_dlc_feature = advanced_activities } + is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } cost = { gold = { - add = { - desc = pilgrimage_cost_pomp_ceremonial + if = { + limit = { + government_has_flag = government_is_theocracy + has_treasury = yes + } + value = 0 + } + else = { add = { - value = 50 desc = pilgrimage_cost_pomp_ceremonial - } - add = { - value = 50 - multiply = activity_cost_scale_by_tier - subtract = 50 - desc = activity_cost_scale_by_tier_desc - } - add = { - value = 50 - multiply = activity_cost_scale_by_era - subtract = 50 - desc = activity_cost_scale_by_era_desc - } - if = { - limit = { - dynasty ?= { has_dynasty_perk = ep2_activities_legacy_1 } - } - subtract = { + add = { value = 50 - multiply = ep2_activities_legacy_1_pilgrimages_discount_value - desc = ep2_activities_legacy_track + desc = pilgrimage_cost_pomp_ceremonial + } + add = { + value = 50 + multiply = activity_cost_scale_by_tier + subtract = 50 + desc = activity_cost_scale_by_tier_desc + } + add = { + value = 50 + multiply = activity_cost_scale_by_era + subtract = 50 + desc = activity_cost_scale_by_era_desc + } + if = { + limit = { + dynasty ?= { has_dynasty_perk = ep2_activities_legacy_1 } + } + subtract = { + value = 50 + multiply = ep2_activities_legacy_1_pilgrimages_discount_value + desc = ep2_activities_legacy_track + } + } + if = { + limit = { + has_perk = journey_planner_perk + } + multiply = { + value = voyager_journey_planner_value + desc = journey_planner_perk_name + } + } + # By God Alone - Secular Faith & Rite: a sponsored pilgrimage (0042) halves this pomp cost. + if = { + limit = { + has_character_modifier = pam_sf_pilgrimage_funded_modifier + } + multiply = { + value = 0.5 + desc = pam_sf_pilgrimage_funded_discount_desc + } } } - if = { - limit = { - has_perk = journey_planner_perk + } + } + treasury = { + if = { + limit = { + OR = { + has_treasury = no + NOT = { government_has_flag = government_is_theocracy } } - multiply = { - value = voyager_journey_planner_value - desc = journey_planner_perk_name + } + value = 0 + } + else = { + add = { + desc = pilgrimage_cost_pomp_ceremonial + add = { + value = 50 + desc = pilgrimage_cost_pomp_ceremonial + } + add = { + value = 50 + multiply = activity_cost_scale_by_tier + subtract = 50 + desc = activity_cost_scale_by_tier_desc + } + add = { + value = 50 + multiply = activity_cost_scale_by_era + subtract = 50 + desc = activity_cost_scale_by_era_desc + } + if = { + limit = { + dynasty ?= { has_dynasty_perk = ep2_activities_legacy_1 } + } + subtract = { + value = 50 + multiply = ep2_activities_legacy_1_pilgrimages_discount_value + desc = ep2_activities_legacy_track + } + } + if = { + limit = { + has_perk = journey_planner_perk + } + multiply = { + value = voyager_journey_planner_value + desc = journey_planner_perk_name + } + } + # By God Alone - Secular Faith & Rite: a sponsored pilgrimage (0042) halves this pomp cost. + if = { + limit = { + has_character_modifier = pam_sf_pilgrimage_funded_modifier + } + multiply = { + value = 0.5 + desc = pam_sf_pilgrimage_funded_discount_desc + } } } } @@ -1713,43 +1989,126 @@ pilgrimage_pomp_throng = { is_shown = { has_dlc_feature = advanced_activities } + is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } cost = { gold = { - add = { - desc = pilgrimage_cost_pomp_throng + if = { + limit = { + government_has_flag = government_is_theocracy + has_treasury = yes + } + value = 0 + } + else = { add = { - value = 100 desc = pilgrimage_cost_pomp_throng - } - add = { - value = 100 - multiply = activity_cost_scale_by_tier - subtract = 100 - desc = activity_cost_scale_by_tier_desc - } - add = { - value = 100 - multiply = activity_cost_scale_by_era - subtract = 100 - desc = activity_cost_scale_by_era_desc - } - if = { - limit = { - dynasty ?= { has_dynasty_perk = ep2_activities_legacy_1 } - } - subtract = { + add = { value = 100 - multiply = ep2_activities_legacy_1_pilgrimages_discount_value - desc = ep2_activities_legacy_track + desc = pilgrimage_cost_pomp_throng + } + add = { + value = 100 + multiply = activity_cost_scale_by_tier + subtract = 100 + desc = activity_cost_scale_by_tier_desc + } + add = { + value = 100 + multiply = activity_cost_scale_by_era + subtract = 100 + desc = activity_cost_scale_by_era_desc + } + if = { + limit = { + dynasty ?= { has_dynasty_perk = ep2_activities_legacy_1 } + } + subtract = { + value = 100 + multiply = ep2_activities_legacy_1_pilgrimages_discount_value + desc = ep2_activities_legacy_track + } + } + if = { + limit = { + has_perk = journey_planner_perk + } + multiply = { + value = voyager_journey_planner_value + desc = journey_planner_perk_name + } + } + # By God Alone - Secular Faith & Rite: a sponsored pilgrimage (0042) halves this pomp cost. + if = { + limit = { + has_character_modifier = pam_sf_pilgrimage_funded_modifier + } + multiply = { + value = 0.5 + desc = pam_sf_pilgrimage_funded_discount_desc + } } } - if = { - limit = { - has_perk = journey_planner_perk + } + } + treasury = { + if = { + limit = { + OR = { + has_treasury = no + NOT = { government_has_flag = government_is_theocracy } } - multiply = { - value = voyager_journey_planner_value - desc = journey_planner_perk_name + } + value = 0 + } + else = { + add = { + desc = pilgrimage_cost_pomp_throng + add = { + value = 100 + desc = pilgrimage_cost_pomp_throng + } + add = { + value = 100 + multiply = activity_cost_scale_by_tier + subtract = 100 + desc = activity_cost_scale_by_tier_desc + } + add = { + value = 100 + multiply = activity_cost_scale_by_era + subtract = 100 + desc = activity_cost_scale_by_era_desc + } + if = { + limit = { + dynasty ?= { has_dynasty_perk = ep2_activities_legacy_1 } + } + subtract = { + value = 100 + multiply = ep2_activities_legacy_1_pilgrimages_discount_value + desc = ep2_activities_legacy_track + } + } + if = { + limit = { + has_perk = journey_planner_perk + } + multiply = { + value = voyager_journey_planner_value + desc = journey_planner_perk_name + } + } + # By God Alone - Secular Faith & Rite: a sponsored pilgrimage (0042) halves this pomp cost. + if = { + limit = { + has_character_modifier = pam_sf_pilgrimage_funded_modifier + } + multiply = { + value = 0.5 + desc = pam_sf_pilgrimage_funded_discount_desc + } } } } @@ -1790,7 +2149,15 @@ is_predefined = yes cost = { - gold = { + gold = { + if = { + limit = { + government_has_flag = government_is_theocracy + has_treasury = yes + } + value = 0 + } + else = { add = { value = medium_gold_value desc = pilgrimage_cost_distance @@ -1883,6 +2250,135 @@ desc = adventurer_discount_desc } } + # By God Alone - Secular Faith & Rite: a sponsored pilgrimage (0042) halves the distance cost too. + if = { + limit = { + has_character_modifier = pam_sf_pilgrimage_funded_modifier + } + multiply = { + value = 0.5 + desc = pam_sf_pilgrimage_funded_discount_desc + } + } + } + + } + } + treasury = { + if = { + limit = { + OR = { + has_treasury = no + NOT = { government_has_flag = government_is_theocracy } + } + } + value = 0 + } + else = { + add = { + value = medium_gold_value + desc = pilgrimage_cost_distance + #This needs to be synced the values in pilgrimage_length_cost_tier_X in the script_values\50_pilgrimage_values.txt file + if = { + limit = { exists = scope:province } + #Tier 0 + if = { + limit = { "capital_province.squared_distance(scope:province)" <= squared_distance_small } + subtract = medium_gold_value + } + #Tier 1 + else_if = { + limit = { + "capital_province.squared_distance(scope:province)" > squared_distance_small + "capital_province.squared_distance(scope:province)" <= squared_distance_medium + } + multiply = 0.2 + } + #Tier 2: Praha -> Cologne + else_if = { + limit = { + "capital_province.squared_distance(scope:province)" > squared_distance_medium + "capital_province.squared_distance(scope:province)" <= squared_distance_large + } + multiply = 0.4 + } + #Tier 3 + else_if = { + limit = { + "capital_province.squared_distance(scope:province)" > squared_distance_large + "capital_province.squared_distance(scope:province)" <= squared_distance_huge + } + multiply = 0.6 + } + #Tier 4 + else_if = { + limit = { + "capital_province.squared_distance(scope:province)" > squared_distance_huge + "capital_province.squared_distance(scope:province)" <= squared_distance_almost_massive + } + multiply = 0.8 + } + #Tier 5 + else_if = { + limit = { + "capital_province.squared_distance(scope:province)" > squared_distance_almost_massive + "capital_province.squared_distance(scope:province)" <= squared_distance_massive + } + multiply = 1 + } + #Tier 6: Klingenberg -> Jerusalem + else_if = { + limit = { + "capital_province.squared_distance(scope:province)" > squared_distance_massive + "capital_province.squared_distance(scope:province)" <= squared_distance_monstrous + } + multiply = 1.2 + } + #Tier 7: Klingenberg -> Kanchipuram + else_if = { + limit = { "capital_province.squared_distance(scope:province)" > squared_distance_monstrous } + multiply = 1.5 + } + } + multiply = activity_cost_scale_by_era + if = { + limit = { + exists = scope:province + has_character_flag = imaginary_friend_pilgrimage_discount + any_owned_story = { + type = story_cycle_imaginary_friend + var:pilgrimage_destination ?= scope:province + } + } + multiply = { + value = 0.5 + desc = imaginary_friend_pilgrimage_discount + } + } + #Adventurer + if = { + limit = { + exists = scope:province + has_government = landless_adventurer_government + has_perk = clerical_justifications_perk + } + multiply = { + value = 0.5 + desc = adventurer_discount_desc + } + } + # By God Alone - Secular Faith & Rite: a sponsored pilgrimage (0042) halves the distance cost too. + if = { + limit = { + has_character_modifier = pam_sf_pilgrimage_funded_modifier + } + multiply = { + value = 0.5 + desc = pam_sf_pilgrimage_funded_discount_desc + } + } + } + } } } @@ -1900,6 +2396,20 @@ if = { limit = { this = scope:host } + #Promised pilgrimage is now complete + if = { + limit = { + has_character_modifier = promised_pilgrimage_to_clergy_modifier + } + send_interface_toast = { + type = event_toast_effect_good + title = fulfilled_pilgrimage_promise_tt + left_icon = scope:host + + remove_character_modifier = promised_pilgrimage_to_clergy_modifier + } + } + if = { limit = { NOT = { #Hajj progresses once the railroaded hajj events are done @@ -1953,7 +2463,7 @@ } add_wanderer_lifestyle_xp = 500 } - stress_impact = { + stress_and_fulfillment_impact = { base = major_stress_impact_loss zealous = medium_stress_impact_loss } @@ -2082,6 +2592,50 @@ trigger_event = pilgrimage.7000 #Reward effect, looks at if Hajj (in that case looks at if you should get trait or not) or Pilgrimage and award appropriate rewards and log entries pilgrimage_completed_log_entry_effect = yes + # By God Alone - Secular Faith & Rite: a completed pilgrimage lifts a demon's torment (0048). + if = { + limit = { has_character_modifier = pam_sf_demon_torment_modifier } + send_interface_toast = { + type = event_toast_effect_good + title = pam_sf_demon_torment_lifted_toast + left_icon = scope:host + remove_character_modifier = pam_sf_demon_torment_modifier + change_spiritual_fulfillment = major_spiritual_fulfillment_value + } + } + # By God Alone - Secular Faith & Rite: a sponsored pilgrimage (0042) warms the sponsor to you on completion. + if = { + limit = { + var:pam_sf_pilgrimage_sponsor ?= { is_alive = yes } + } + send_interface_toast = { + type = event_toast_effect_good + title = pam_sf_pilgrimage_sponsor_toast + left_icon = var:pam_sf_pilgrimage_sponsor + reverse_add_opinion = { + target = var:pam_sf_pilgrimage_sponsor + modifier = grateful_opinion + opinion = 50 + } + } + remove_variable = pam_sf_pilgrimage_sponsor + } + # By God Alone - Secular Faith & Rite: a realm priest's pledged acclaim (0043) is proclaimed across the capital on completion. + if = { + limit = { has_character_modifier = pam_sf_promised_acclaim_modifier } + send_interface_toast = { + type = event_toast_effect_good + title = pam_sf_extolled_pilgrimage_toast + left_icon = scope:host + remove_character_modifier = pam_sf_promised_acclaim_modifier + capital_county ?= { + add_county_modifier = { + modifier = pam_sf_extolled_pilgrimage_county_modifier + years = 15 + } + } + } + } } } } @@ -2148,6 +2702,8 @@ apa_lead_procession apa_overcome_with_emotion apa_studied_confucian_classics + apa_passive_religious_learning_pilgrimage_pool + apa_passive_religious_learning_pilgrimage_rite } chance_of_no_event = 5 } @@ -2168,6 +2724,10 @@ scope:host = { #If we had a rebated Pilgrimage, remove the rebate + if = { + limit = { has_character_modifier = hunt_urge_for_pilgrim_badges_modifier } + remove_character_modifier = hunt_urge_for_pilgrim_badges_modifier + } if = { limit = { has_character_modifier = ghost_pilgrimage_promised_modifier } remove_character_modifier = ghost_pilgrimage_promised_modifier @@ -2180,6 +2740,11 @@ limit = { has_character_modifier = pilgrimage_promised_modifier } remove_character_modifier = pilgrimage_promised_modifier } + # By God Alone - Secular Faith & Rite: a sponsored pilgrimage (0042) - spend the 50% rebate as the journey begins. + if = { + limit = { has_character_modifier = pam_sf_pilgrimage_funded_modifier } + remove_character_modifier = pam_sf_pilgrimage_funded_modifier + } # Keep track of how many pilgrimages we've undertaken for fun stats at the conclusion if = { @@ -2355,7 +2920,6 @@ on_complete = { #Conclusion/reward event is run in the phase on_end - #Set up Hajj memories if = { limit = { @@ -2523,7 +3087,45 @@ } } + # Keep holy-site cooldown tracking unified across all pilgrimage completion memories. + if = { + limit = { exists = scope:new_memory } + scope:new_memory = { + if = { + limit = { NOT = { has_variable = pilgrimage_destination } } + set_variable = { + name = pilgrimage_destination + value = scope:activity.activity_location + } + } + set_variable = { + name = pilgrimage_holy_site_cooldown + years = 5 + } + } + } + scope:host = { + # pam_confession_penalty_modifier + if = { + limit = { var:pam_confession_penalty_var ?= flag:pilgrimage } + remove_character_modifier = pam_confession_penalty_modifier + remove_variable = pam_confession_penalty_var + } +# if = { # PAM - Catalysts +# limit = { +# has_pam_dlc_trigger = yes +# highest_held_title_tier >= tier_kingdom +# faith.main_rite = { NOT = { rite_has_parameter = forbidden_from_pilgrimage } } +# any_character_situation = { +# situation_type = the_christian_church +# situation_top_has_catalyst = catalyst_the_christian_church_ruler_completed_pilgrimage +# } +# } +# situation:the_christian_church = { +# trigger_situation_catalyst = catalyst_the_christian_church_ruler_completed_pilgrimage +# } +# } # tgp_ceremonial_liege_events.0020 if = { limit = { @@ -2570,6 +3172,70 @@ ################### # GRAPHICS ################### + header_background = { #Islam + trigger = { religion = religion:islam_religion } + reference = "gfx/interface/illustrations/activity_header_backgrounds/activity_pilgrimage.dds" + } + header_background = { #Judaism + trigger = { religion = religion:judaism_religion } + reference = "gfx/interface/illustrations/event_scenes/ep2_holysite_jerusalem.dds" + } + header_background = { #Eastern Orthodoxy + trigger = { religion = religion:eastern_orthodox_religion } + reference = "gfx/interface/illustrations/event_scenes/ep3_holysite_orthodox.dds" + } + header_background = { #Catholicism + trigger = { religion = religion:catholic_religion } + reference = "gfx/interface/illustrations/event_scenes/ep2_holysite_western.dds" + } + header_background = { #Protestantism + trigger = { religion = religion:protestant_religion } + reference = "gfx/interface/illustrations/event_scenes/ep2_holysite_western.dds" + } + header_background = { #Zoroastrianism + trigger = { religion = religion:zoroastrianism_religion } + reference = "gfx/interface/illustrations/event_scenes/fp3_temple.dds" + } + header_background = { #East Asian faiths + trigger = { + OR = { + faith.religion = { is_in_family = rf_sinitic } + religion = religion:shintoism_religion + AND = { + faith.religion = { is_in_family = rf_eastern } + culture = { has_graphical_east_asia_culture_group_trigger = yes } + } + } + } + reference = "gfx/interface/illustrations/event_scenes/tgp_holysite_asia.dds" + } + header_background = { #Dharmic / Indian faiths + trigger = { faith.religion = { is_in_family = rf_eastern } } + reference = "gfx/interface/illustrations/event_scenes/ep2_holysite_indian.dds" + } + header_background = { #Steppe folk faiths + trigger = { + OR = { + religion = religion:tengrism_religion + religion = religion:magyar_religion + religion = religion:siberian_religion + religion = religion:kamuyism_religion + } + } + reference = "gfx/interface/illustrations/event_scenes/mpo_temple_steppe.dds" + } + header_background = { #Norse / Germanic pagan + trigger = { + faith.religion = { is_in_family = rf_pagan } + culture = { has_graphical_norse_culture_group_trigger = yes } + } + reference = "gfx/interface/illustrations/event_scenes/fp1_tribal_temple.dds" + } + header_background = { #Other pagan / folk faiths + trigger = { faith.religion = { is_in_family = rf_pagan } } + reference = "gfx/interface/illustrations/event_scenes/ep2_holysite_tribal.dds" + } + header_background = "gfx/interface/illustrations/event_scenes/temple.dds" #Fallback # Travel background = { # Bridge @@ -2883,10 +3549,10 @@ trigger = { scope:host = { OR = { -# religion = religion:tengrism_religion - religion = religion:mediterranean_religion -# religion = religion:siberian_religion -# religion = religion:kamuyism_religion + religion = religion:tengrism_religion + religion = religion:magyar_religion + religion = religion:siberian_religion + religion = religion:kamuyism_religion } } } @@ -2919,8 +3585,35 @@ environment = "environment_tgp_holysite_asia" ambience = "event:/DLC/EP4/SFX/Events/Event_Backgrounds/tgp_holysite_asia" } + background = { #Christian - Grand Cathedral Eastern (high clergy) + trigger = { + trigger_if = { + limit = { + activity_location.county.faith.religion = religion:eastern_orthodox_religion + } + activity_location.county = { pam_is_eastern_christian_trigger = yes } + } + trigger_else = { + scope:host = { pam_is_eastern_christian_trigger = yes } + } + scope:host = { pam_church_event_background_is_grand_eastern_trigger = yes } + } + texture = "gfx/interface/illustrations/event_scenes/ep3_hagia_sophia.dds" + environment = "environment_ep3_hagia_sophia" + ambience = "event:/DLC/EP3/SFX/Events/Event_Images/ep3_evn_eventimage_hagia_sophia" + } background = { - trigger = { activity_location.faith = faith:orthodox } + trigger = { + trigger_if = { + limit = { + activity_location.county.faith.religion = religion:eastern_orthodox_religion + } + activity_location.county = { pam_is_eastern_christian_trigger = yes } + } + trigger_else = { + scope:host = { pam_is_eastern_christian_trigger = yes } + } + } texture = "gfx/interface/illustrations/event_scenes/ep3_holysite_orthodox.dds" environment = "environment_ep3_holysite_orthodox" ambience = "event:/DLC/EP3/SFX/Events/Event_Images/ep3_evn_eventimage_orthodox_holy_site" @@ -2938,14 +3631,6 @@ environment = "environment_generic_holy_site_mena" ambience = "event:/SFX/Events/Backgrounds/town_market_middleeastern_day" } - background = { - trigger = { - activity_location.culture = { has_graphical_mena_culture_group_trigger = yes } - } - texture = "gfx/interface/illustrations/event_scenes/ep2_holysite_mena.dds" - environment = "environment_generic_holy_site_mena" - ambience = "event:/SFX/Events/Backgrounds/town_market_middleeastern_day" - } background = { trigger = { activity_location.culture = { has_graphical_india_culture_group_trigger = yes } @@ -2962,9 +3647,57 @@ environment = "environment_event_fp2_temple" ambience = "event:/DLC/FP2/SFX/Events/temple" } + background = { #Western Christian - Gothic exterior + trigger = { + scope:host = { pam_church_event_background_is_grand_western_trigger = yes } + current_year >= 900 + } + texture = "gfx/interface/illustrations/event_scenes/ep2_wedding_ceremony_western.dds" + environment = "environment_western_wedding" + ambience = "event:/SFX/Events/Backgrounds/temple_christian" + } + background = { #Western Christian - Mediterranean or urban Romanesque exterior + trigger = { + scope:host = { + pam_is_western_christian_trigger = yes + pam_church_event_background_is_developed_trigger = yes + } + activity_location = { pam_church_background_location_is_mediterranean_or_urban_trigger = yes } + current_year >= 900 + } + texture = "gfx/interface/illustrations/event_scenes/pam_romanesque_church_exterior.dds" + environment = "environment_pam_romanesque_church_exterior" + ambience = "event:/DLC/CE3/SFX/Events/romanesque_church_exterior" #AUDIO CE3 + } + background = { #Western Christian - Green Romanesque exterior + trigger = { + scope:host = { + pam_is_western_christian_trigger = yes + pam_church_event_background_is_developed_trigger = yes + } + current_year >= 900 + } + texture = "gfx/interface/illustrations/event_scenes/ep2_holysite_western.dds" + environment = "environment_western_holy_site" + ambience = "event:/SFX/Events/Backgrounds/temple_christian" + } + background = { #Western Christian - Pre-Romanesque exterior + trigger = { + scope:host = { pam_is_western_christian_trigger = yes } + NOT = { activity_location.culture = { has_graphical_norse_culture_group_trigger = yes } } + } + texture = "gfx/interface/illustrations/event_scenes/pam_pre-romanesque_church_exterior.dds" + environment = "environment_pam_preromanesque_church_exterior" + ambience = "event:/DLC/CE3/SFX/Events/pre-romanesque_church_exterior" #AUDIO CE3 + } background = { trigger = { - activity_location.culture = { has_graphical_western_culture_group_trigger = yes } + activity_location.culture = { + OR = { + has_graphical_western_culture_group_trigger = yes + has_graphical_mediterranean_culture_group_trigger = yes + } + } } texture = "gfx/interface/illustrations/event_scenes/ep2_holysite_western.dds" environment = "environment_western_holy_site" @@ -2996,18 +3729,18 @@ } background = { trigger = { - scope:host.faith = { has_doctrine = tenet_sanctity_of_nature } + scope:host.rite = { rite_has_tenet = tenet_sanctity_of_nature } } texture = "gfx/interface/illustrations/event_scenes/forest.dds" environment = "environment_event_forest" ambience = "event:/SFX/Events/Backgrounds/deciduous_forest_day" } -# background = { -# trigger = { scope:host.religion = religion:tengrism_religion } -# texture = "gfx/interface/illustrations/event_scenes/forest.dds" -# environment = "environment_event_forest" -# ambience = "event:/SFX/Events/Backgrounds/deciduous_forest_day" -# } + background = { + trigger = { scope:host.religion = religion:tengrism_religion } + texture = "gfx/interface/illustrations/event_scenes/forest.dds" + environment = "environment_event_forest" + ambience = "event:/SFX/Events/Backgrounds/deciduous_forest_day" + } #Fallback background = { diff --git a/common/activities/activity_types/playdate.txt b/common/activities/activity_types/playdate.txt index 0d789f948..638b282db 100644 --- a/common/activities/activity_types/playdate.txt +++ b/common/activities/activity_types/playdate.txt @@ -2,56 +2,38 @@ is_shown = { highest_held_title_tier > tier_barony trigger_if = { - limit = { - highest_held_title_tier = tier_county - } - top_liege != this - } - OR = { - is_landed_or_landless_administrative = yes - has_government = landless_minority_government - } - trigger_if = { - limit = { - is_ai = yes - } - is_at_war = no - NOT = { has_variable = conqueror } trigger_if = { # Throttle Counts limit = { + is_ai = yes highest_held_title_tier = tier_county } ai_sociability >= 100 } } is_adult = no - age < less_than_two_years_to_adulthood_value #Consistency! - #Every other activity must be blocked until an uncrowned AI crowns themselves - trigger_if = { - limit = { - is_ai = yes - age >= 12 - } - NOT = { - has_realm_law = uncrowned - } - } + ai_activity_war_check = yes + ai_activity_coronation_check = yes } can_start_showing_failures_only = { NOT = { is_activity_type_on_cooldown = activity_playdate } is_available = yes age >= 4 + age < less_than_two_years_to_adulthood_value #Consistency! + trigger_if = { + limit = { + highest_held_title_tier = tier_county + liege = root + } + highest_held_title_tier >= tier_county + } + is_landed_or_landless_administrative_or_theocratic = yes } is_valid = { scope:host = { - is_imprisoned = no - OR = { - is_landed_or_landless_administrative = yes - has_government = landless_minority_government - } - NOT = { is_incapable = yes } + is_physically_able = yes + is_landed_or_landless_administrative_or_theocratic = yes } # If no one shows up trigger_if = { @@ -63,7 +45,6 @@ } on_invalidated = { - if = { # host is imprisoned limit = { scope:host = { is_imprisoned = yes } @@ -79,36 +60,7 @@ trigger_event = playdate.0021 } } - # Host becomes unlanded - if = { - limit = { - scope:host = { - is_landed_or_landless_administrative = no - } - } - scope:activity = { - activity_type = { save_scope_as = activity_type } - } - every_attending_character = { - trigger_event = activity_system.0320 - } - } - if = { - limit = { - scope:host = { is_incapable = yes } - } - scope:activity = { - activity_type = { save_scope_as = activity_type } - } - scope:host = { - trigger_event = activity_system.0330 - } - every_attending_character = { - limit = { this != scope:host } - trigger_event = activity_system.0331 - } - } - if = { # No one shows up + else_if = { # No one shows up limit = { has_attending_activity_guests = no } @@ -116,6 +68,11 @@ trigger_event = playdate.2003 } } + else = { + invalidation_unlanded_non_nf_effect = yes + invalidation_incapable_effect = yes + invalidation_host_isolated_effect = yes + } } is_location_valid = { @@ -262,6 +219,7 @@ } } trigger_event = playdate.9001 + pam_vows_of_poverty_host_completion_piety_effect = yes } else = { trigger_event = playdate.9002 @@ -327,56 +285,7 @@ } add = -75 } - # Plague - if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity < apocalyptic } - } - would_follow_social_distancing_value >= -1 - } - add = { - value = -60 - desc = "Plague in Domain" - } - } - else_if = { - limit = { - any_realm_county = { - has_province_with_epidemic = { intensity < apocalyptic } - } - would_follow_social_distancing_value >= -1 - } - add = { - value = -20 - desc = "Plague in Top Realm" - } - } - if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity = apocalyptic } - } - } - add = { - value = -200 - desc = "Apocalyptic Plague in Domain" - } - } - else_if = { - limit = { - any_held_title = { - title_tier = county - has_province_with_epidemic = { intensity = apocalyptic } - } - } - add = { - value = -40 - desc = "Apocalyptic Plague in Top Realm" - } - } + add = activity_general_ai_will_do_value } ai_check_interval_by_tier = { @@ -461,6 +370,8 @@ # GRAPHICS ################### + header_background = "gfx/interface/illustrations/activity_header_backgrounds/activity_playdate.dds" + # Travel background = { # Bridge trigger = { diff --git a/common/activities/activity_types/tour.txt b/common/activities/activity_types/tour.txt index b9fd71b6b..c60950043 100644 --- a/common/activities/activity_types/tour.txt +++ b/common/activities/activity_types/tour.txt @@ -11,15 +11,7 @@ has_dlc_feature = tours_and_tournaments has_dlc_feature = advanced_activities NOT = { government_has_flag = government_is_administrative } - #Every other activity must be blocked until an uncrowned AI crowns themselves - trigger_if = { - limit = { - is_ai = yes - } - NOT = { - has_realm_law = uncrowned - } - } + ai_activity_coronation_check = yes } can_start_showing_failures_only = { @@ -41,12 +33,13 @@ is_valid = { scope:host = { is_landed = yes - NOT = { is_incapable = yes } + is_physically_able = yes is_in_civil_war = no } } on_invalidated = { + # use list so can't simply use scripted effects here # Host becomes unlanded if = { limit = { @@ -60,7 +53,7 @@ trigger_event = activity_system.0320 } } - if = { + else_if = { limit = { scope:host = { is_incapable = yes } } @@ -75,6 +68,19 @@ trigger_event = activity_system.0331 } } + else_if = { + limit = { + scope:host = { is_imprisoned = yes } + } + scope:activity = { + activity_type = { save_scope_as = activity_type } + } + scope:host = { trigger_event = activity_system.0550 } + every_in_list = { + variable = tour_vassals_to_visit + trigger_event = activity_system.0551 + } + } # Clean up character flag preventing visited vassals from starting other activities every_in_list = { variable = tour_vassals_to_visit @@ -244,30 +250,7 @@ desc = "I have a lot of money" add = 10 } - # Plague - if = { - limit = { - any_sub_realm_county = { - has_province_with_epidemic = { intensity < apocalyptic } - } - would_follow_social_distancing_value >= -1 - } - add = { - value = -60 - desc = "Plague in Realm" - } - } - if = { - limit = { - any_sub_realm_county = { - has_province_with_epidemic = { intensity = apocalyptic } - } - } - add = { - value = -200 - desc = "Apocalyptic Plague in Realm" - } - } + add = activity_general_ai_will_do_value if = { limit = { government_has_flag = government_is_celestial @@ -555,7 +538,10 @@ value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { add = { @@ -590,6 +576,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { add = { @@ -631,7 +618,10 @@ value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } # Base Cost add = { @@ -672,7 +662,7 @@ # Tour Stops if = { - limit = { primary_title.tier = tier_empire } + limit = { primary_title.tier >= tier_empire } add = { value = 114 # derived from testing multiply = activity_cost_scale_by_era @@ -722,6 +712,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } # Base Cost add = { @@ -762,7 +753,7 @@ # Tour Stops if = { - limit = { primary_title.tier = tier_empire } + limit = { primary_title.tier >= tier_empire } add = { value = 114 # derived from testing multiply = activity_cost_scale_by_era @@ -993,12 +984,18 @@ } tour_entourage = { tour_entourage_small = { + default = { + has_personal_tenet_flag = tenet_vows_of_poverty_humble_host + } cost = { gold = { value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { desc = tour_entourage_small @@ -1034,6 +1031,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { desc = tour_entourage_small @@ -1122,7 +1120,9 @@ } } tour_entourage_normal = { - default = yes + default = { + NOT = { has_personal_tenet_flag = tenet_vows_of_poverty_humble_host } + } travel_entourage_selection = { weight = tour_entourage_weight_value max = 10 @@ -1135,6 +1135,7 @@ } } is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes custom_tooltip = { text = more_than_5_courtiers any_courtier_or_guest = { count > 5 } @@ -1150,7 +1151,10 @@ value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { desc = tour_entourage_normal @@ -1186,6 +1190,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { desc = tour_entourage_normal @@ -1287,7 +1292,10 @@ value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { desc = tour_entourage_grand @@ -1323,6 +1331,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { desc = tour_entourage_grand @@ -1372,12 +1381,18 @@ } tour_luxuries = { tour_luxuries_bad = { + default = { + has_personal_tenet_flag = tenet_vows_of_poverty_humble_host + } cost = { gold = { value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { desc = tour_luxuries_bad @@ -1413,6 +1428,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { desc = tour_luxuries_bad @@ -1495,13 +1511,21 @@ } } tour_luxuries_normal = { - default = yes + is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } + default = { + NOT = { has_personal_tenet_flag = tenet_vows_of_poverty_humble_host } + } cost = { gold = { value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { desc = tour_luxuries_normal @@ -1537,6 +1561,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { desc = tour_luxuries_normal @@ -1592,6 +1617,7 @@ } tour_luxuries_good = { is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes custom_tooltip = { text = government_is_tribal_tt NOT = { government_has_flag = government_is_tribal } @@ -1638,7 +1664,10 @@ value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { desc = tour_luxuries_good @@ -1674,6 +1703,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { desc = tour_luxuries_good @@ -1746,7 +1776,10 @@ value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { desc = tour_furniture_normal @@ -1782,6 +1815,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { desc = tour_furniture_normal @@ -1830,6 +1864,7 @@ } tour_furniture_good = { is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes custom_tooltip = { text = government_is_tribal_tt NOT = { government_has_flag = government_is_tribal } @@ -1866,7 +1901,10 @@ value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { desc = tour_furniture_good @@ -1902,6 +1940,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { desc = tour_furniture_good @@ -2069,7 +2108,10 @@ value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { value = tour_stop_value @@ -2087,6 +2129,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { value = tour_stop_value @@ -2327,7 +2370,10 @@ value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { value = tour_stop_value @@ -2345,6 +2391,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { value = tour_stop_value @@ -2565,7 +2612,10 @@ value = 0 if = { limit = { - has_treasury = no + OR = { + has_treasury = no + government_has_flag = government_is_theocracy + } } add = { value = tour_stop_value @@ -2583,6 +2633,7 @@ if = { limit = { has_treasury = yes + NOT = { government_has_flag = government_is_theocracy } } add = { value = tour_stop_value @@ -2669,7 +2720,7 @@ } tour_progress_effect = yes } - scope:host.location.county = { #remember in events that this is a county scope + scope:host.location.county ?= { #remember in events that this is a county scope save_scope_as = cultural_festival_scope } tour_monthly_pulse_effect = { @@ -2777,6 +2828,8 @@ liege_visited_benevolence liege_local_benevolence increased_control liege_local_tax levied_tax local_mayor_tax tax_rich_local church_tax local_baron_tax + + apa_passive_religious_learning_host apa_passive_religious_learning_guest } chance_of_no_event = 5 } @@ -3414,6 +3467,12 @@ map_entity = "building_western_feast_01_entity" + ################### + # GRAPHICS + ################### + + header_background = "gfx/interface/illustrations/activity_header_backgrounds/activity_tour.dds" + # Travel background = { # Bridge trigger = { diff --git a/common/activities/activity_types/wedding.txt b/common/activities/activity_types/wedding.txt index e814fc559..f5bf0df56 100644 --- a/common/activities/activity_types/wedding.txt +++ b/common/activities/activity_types/wedding.txt @@ -1,29 +1,12 @@ activity_wedding = { is_shown = { highest_held_title_tier > tier_barony - OR = { - is_landed_or_landless_administrative = yes - has_government = landless_minority_government - } - trigger_if = { - limit = { - is_ai = yes - } - is_at_war = no - NOT = { has_variable = conqueror } - } + is_landed_or_landless_administrative_or_theocratic = yes # DLC locked has_dlc_feature = tours_and_tournaments has_dlc_feature = advanced_activities - #Every other activity must be blocked until an uncrowned AI crowns themselves - trigger_if = { - limit = { - is_ai = yes - } - NOT = { - has_realm_law = uncrowned - } - } + ai_activity_war_check = yes + ai_activity_coronation_check = yes } can_start_showing_failures_only = { @@ -89,11 +72,11 @@ } scope:host = { # The host becoming unlanded will invalidate - is_landed_or_landless_administrative = yes + is_landed_or_landless_administrative_or_theocratic = yes # The new host being only a baron will invalidate highest_held_title_tier >= tier_county # Incapable host will invalidate - NOT = { is_incapable = yes } + is_physically_able = yes } # Saying no at the altar will invalidate scope:activity = { @@ -130,6 +113,7 @@ AND = { is_alive = no is_bloody_wedding = yes + death_reason = death_bloody_wedding } } } @@ -153,32 +137,27 @@ } } } - - if = { - limit = { - scope:host = { is_physically_able = no } - } - scope:activity = { - activity_type = { save_scope_as = activity_type } - } - scope:host = { - trigger_event = activity_system.0330 - } - every_attending_character = { - limit = { this != scope:host } - trigger_event = activity_system.0331 - } - } - # Only the player as spouse_1 can say no at the altar, no reason to have events to notify the AI - else_if = { + # player can't be spouse_2 but can be other attandee! + if = { limit = { scope:activity = { has_variable = wedding_invalidated_said_no } scope:spouse_1 ?= { is_alive = yes } - } + } scope:spouse_1 = { trigger_event = ep2_wedding.0152 } + scope:activity = { + every_attending_character = { + limit = { + NOR = { + scope:spouse_1 ?= this + scope:spouse_2 ?= this + } + } + trigger_event = ep2_wedding.0153 + } + } } # One of the spouses was taken prisoner along the way @@ -209,25 +188,15 @@ } } - # Host becomes unlanded - else_if = { - limit = { - scope:host = { - is_landed_or_landless_administrative = no - } - } - scope:activity = { - activity_type = { save_scope_as = activity_type } - } - every_attending_character = { - trigger_event = activity_system.0320 - } - } - # The new host doesn't meet the tier requirements else_if = { limit = { - scope:host = { highest_held_title_tier < tier_county } + scope:host = { + OR = { + highest_held_title_tier < tier_county + is_landed_or_landless_administrative_or_theocratic = no + } + } } every_attending_character = { trigger_event = ep2_wedding.0999 @@ -246,7 +215,12 @@ is_alive = no } #you're not in a murder wedding - is_bloody_wedding = no + OR = { + is_bloody_wedding = no + scope:activity.var:spouse_2_var ?= { + NOT = { death_reason = death_bloody_wedding } + } + } } } } @@ -336,48 +310,63 @@ } } } - # Emergency Invalidation: one of the spouses is not coming for some reason - else_if = { - limit = { - scope:activity = { - NOT = { has_variable = activity_travel_countdown } + + # to check in correct order and reuse effects + else = { + invalidation_host_or_special_guest_isolated_effect = yes + invalidation_nobody_present_effect = yes + if = { + limit = { + scope:activity = { + NOT = { has_variable = invalidation_effect_set } + } } - scope:activity.var:spouse_2_var ?= { - NOR = { - is_ai = yes - involved_activity ?= scope:activity - location = scope:activity.activity_location - current_travel_plan ?= { - travel_plan_activity = scope:activity + # Emergency Invalidation: one of the spouses is not coming for some reason + if = { + limit = { + scope:activity = { + NOT = { has_variable = activity_travel_countdown } + } + scope:activity.var:spouse_2_var ?= { + NOR = { + is_ai = yes + involved_activity ?= scope:activity + location = scope:activity.activity_location + current_travel_plan ?= { + travel_plan_activity = scope:activity + } + } + } + } + scope:activity.var:spouse_2_var = { save_scope_as = missing_spouse } + scope:activity.special_guest:spouse_1 = { save_scope_as = other_spouse } + if = { + limit = { + scope:spouse_1 ?= { + is_betrothed = yes + } + exists = scope:spouse_2 + } + scope:spouse_1 = { + break_betrothal = scope:spouse_2 + } + } + scope:activity = { + every_attending_character = { + trigger_event = ep2_wedding.0997 + } + } + } + else = { + scope:activity = { + every_attending_character = { + trigger_event = ep2_wedding.0998 } } } } - scope:activity.var:spouse_2_var = { save_scope_as = missing_spouse } - scope:activity.special_guest:spouse_1 = { save_scope_as = other_spouse } - scope:activity = { - every_attending_character = { - trigger_event = ep2_wedding.0997 - } - } - } - # Fallback Invalidation - else = { - if = { - limit = { - scope:spouse_1 ?= { - is_betrothed = yes - } - exists = scope:spouse_2 - } - scope:spouse_1 = { - break_betrothal = scope:spouse_2 - } - } - scope:activity = { - every_attending_character = { - trigger_event = ep2_wedding.0998 - } + scope:host = { + clean_grand_wedding_betrothal_variables = yes } } #Accolades' modifiers' removal @@ -536,13 +525,13 @@ } else_if = { limit = { - scope:spouse_1 = { is_landed_or_landless_administrative = yes } + scope:spouse_1 = { is_landed_or_landless_administrative_or_theocratic = yes } } scope:spouse_1 = { save_scope_as = new_host } } else_if = { limit = { - scope:spouse_2 = { is_landed_or_landless_administrative = yes } + scope:spouse_2 = { is_landed_or_landless_administrative_or_theocratic = yes } } scope:spouse_2 = { save_scope_as = new_host } } @@ -566,6 +555,9 @@ # desc is only shown in debug AI watch window ai_will_do = { value = 0 + + # add = activity_general_ai_will_do_value + add = { value = 1000 desc = "Wedding functional, always make weddings!" @@ -998,7 +990,7 @@ NOT = { has_variable = recent_red_wedding_var } #15 years cooldown } } - blocked_intents = { murder_attendee_intent woo_attendee_intent diplomatic_intent matchmaking_intent } + blocked_intents = { murder_attendee_intent woo_attendee_intent diplomatic_intent matchmaking_intent spread_personal_tenet_intent } ai_will_do = { value = 0 @@ -1068,6 +1060,9 @@ } wedding_option_entertainment = { wedding_entertainment_bad = { + default = { + has_personal_tenet_flag = tenet_vows_of_poverty_humble_host + } # desc is only shown in debug AI watch window ai_will_do = { value = 0 @@ -1165,8 +1160,11 @@ wedding_entertainment_normal = { is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } + default = { + NOT = { has_personal_tenet_flag = tenet_vows_of_poverty_humble_host } } - default = yes # desc is only shown in debug AI watch window ai_will_do = { value = 0 @@ -1263,7 +1261,8 @@ } wedding_entertainment_good = { - is_valid = { + is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes } # desc is only shown in debug AI watch window ai_will_do = { @@ -1377,6 +1376,9 @@ wedding_option_food = { wedding_food_bad = { + default = { + has_personal_tenet_flag = tenet_vows_of_poverty_humble_host + } # desc is only shown in debug AI watch window ai_will_do = { value = 0 @@ -1471,9 +1473,12 @@ } wedding_food_normal = { - is_valid = { + is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } + default = { + NOT = { has_personal_tenet_flag = tenet_vows_of_poverty_humble_host } } - default = yes # desc is only shown in debug AI watch window ai_will_do = { value = 0 @@ -1571,7 +1576,7 @@ wedding_food_good = { is_valid = { - + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes } # desc is only shown in debug AI watch window ai_will_do = { @@ -1689,6 +1694,9 @@ wedding_option_decoration = { wedding_decoration_bad = { + default = { + has_personal_tenet_flag = tenet_vows_of_poverty_humble_host + } # desc is only shown in debug AI watch window ai_will_do = { value = 0 @@ -1784,8 +1792,11 @@ wedding_decoration_normal = { is_valid = { + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes + } + default = { + NOT = { has_personal_tenet_flag = tenet_vows_of_poverty_humble_host } } - default = yes # desc is only shown in debug AI watch window ai_will_do = { value = 0 @@ -1883,7 +1894,7 @@ wedding_decoration_good = { is_valid = { - + pam_vows_of_poverty_premium_activity_option_valid_trigger = yes } # desc is only shown in debug AI watch window ai_will_do = { @@ -2238,6 +2249,7 @@ 2 = activity_invite_rule_vassals 1 = activity_invite_rule_confederates 2 = activity_invite_rule_fellow_vassals + 2 = activity_invite_rule_clergy 3 = activity_invite_rule_courtiers 4 = activity_invite_rule_guests 2 = activity_invite_rule_all_lieges @@ -2257,12 +2269,12 @@ } host_intents = { - intents = { reduce_stress_intent murder_attendee_intent woo_attendee_intent diplomatic_intent matchmaking_intent spread_legend_intent legitimacy_intent } + intents = { reduce_stress_intent murder_attendee_intent woo_attendee_intent diplomatic_intent matchmaking_intent spread_legend_intent legitimacy_intent spread_personal_tenet_intent } default = reduce_stress_intent } guest_intents = { - intents = { reduce_stress_intent murder_attendee_intent woo_attendee_intent diplomatic_intent banquet_mischief_intent spread_legend_intent legitimacy_intent } + intents = { reduce_stress_intent murder_attendee_intent woo_attendee_intent diplomatic_intent banquet_mischief_intent spread_legend_intent legitimacy_intent spread_personal_tenet_intent } default = reduce_stress_intent } @@ -2273,16 +2285,18 @@ # Scripted Modifiers activity_guest_shared_ai_accept_modifier = yes activity_guest_wedding_ai_accept_modifier = yes + activity_guest_clergy_shared_ai_accept_modifier = yes # Master of Revels Accolade increasing invite acceptance modifier = { - scope:host = { - any_active_accolade = { + scope:host = { + any_active_accolade = { accolade_parameter = acclaimed_knight_feast_wedding_invite_acceptance_bonus } - } - add = accolade_feast_wedding_invite_acceptance_value - } + } + add = accolade_feast_wedding_invite_acceptance_value + desc = acclaimed_knight_feast_wedding_invite_acceptance_bonus_tt + } } special_guests = { @@ -2375,7 +2389,7 @@ ################### pulse_actions = { - entries = { excellent_food hook_trusting_guest dynasty_blessing cultural_acceptance marriage_reflection royal_gift gossip_with_guests contact_network wedding_gift bonding_spouse_family received_flowers admired_venue knight_praised seductive_exchange impressed_courtly_vassal music_performance poetry_performance floral_exhibit spouse_impressed spouse_skill_diplomacy_improves spouse_gives_host_prestige spouse_manages_feast_splendidly spouse_impresses_clergy spouse_gives_hook relation_gains_friend lauded_food children_bonding guest_impressed_by_court_artifact guest_chokes_on_bone guest_brawl friend_lauds_efforts courtly_vassals_appeased spouse_insults_host host_gains_diplo_xp host_gains_steward_xp host_gains_intrigue_xp ridiculed_food guest_tells_fantastic_joke } + entries = { excellent_food hook_trusting_guest dynasty_blessing cultural_acceptance marriage_reflection royal_gift gossip_with_guests contact_network wedding_gift bonding_spouse_family received_flowers admired_venue knight_praised seductive_exchange impressed_courtly_vassal music_performance poetry_performance floral_exhibit spouse_impressed spouse_skill_diplomacy_improves spouse_gives_host_prestige spouse_manages_feast_splendidly spouse_impresses_clergy spouse_gives_hook relation_gains_friend lauded_food children_bonding guest_impressed_by_court_artifact guest_chokes_on_bone guest_brawl friend_lauds_efforts courtly_vassals_appeased spouse_insults_host host_gains_diplo_xp host_gains_steward_xp host_gains_intrigue_xp ridiculed_food guest_tells_fantastic_joke apa_passive_religious_learning_host apa_passive_religious_learning_guest apa_pam_spread_tenet_host apa_pam_spread_tenet_guest apa_pam_mendicant_preachers_conversion } chance_of_no_event = 3 } @@ -2638,7 +2652,7 @@ scope:host.liege = { is_close_or_extended_family_of = scope:activity.special_guest:spouse_2 this != scope:host - is_close_family_or_spouse_of_root_trigger = no + NOT = { is_close_family_or_spouse_trigger = { CHARACTER = scope:host } } } } } @@ -2996,6 +3010,12 @@ map_entity = "building_western_wedding_01_entity" + ################### + # GRAPHICS + ################### + + header_background = "gfx/interface/illustrations/activity_header_backgrounds/activity_wedding.dds" + # Travel background = { # Bridge trigger = { @@ -3810,8 +3830,8 @@ scope:host.location = { is_sea_province = yes } } NOR = { - this = scope:activity.special_guest:spouse_1 - this = scope:activity.special_guest:spouse_2 + scope:host = scope:activity.special_guest:spouse_1 + scope:host = scope:activity.special_guest:spouse_2 } } scope:host = { diff --git a/common/activities/pulse_actions/education_actions.txt b/common/activities/pulse_actions/education_actions.txt index 0ef707352..9785da1da 100644 --- a/common/activities/pulse_actions/education_actions.txt +++ b/common/activities/pulse_actions/education_actions.txt @@ -112,7 +112,7 @@ apa_leveraging_language_skills = { scope:activity = { activity_special_type_progression_tiny = yes } scope:first = { - custom_tooltip = adult_education_tt_positive_tiny + custom_tooltip = adult_education_apa_tt_positive_tiny add_prestige = minor_prestige_gain } } @@ -185,9 +185,9 @@ apa_procrastination = { is_valid = { is_current_phase_active = yes any_attending_character = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } OR = { has_activity_intent = university_revelry_intent @@ -207,9 +207,9 @@ apa_procrastination = { effect = { random_attending_character = { limit = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } OR = { has_activity_intent = university_revelry_intent @@ -242,9 +242,9 @@ apa_university_discussions = { any_attending_character = { this != scope:host is_available_healthy_ai_adult = yes - OR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_variable = { + name = teacher_1 + name = teacher_2 } } } @@ -261,9 +261,9 @@ apa_university_discussions = { limit = { this != scope:host is_available_healthy_ai_adult = yes - OR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_variable = { + name = teacher_1 + name = teacher_2 } } save_scope_as = second @@ -325,9 +325,9 @@ apa_night_on_books = { is_valid = { is_current_phase_active = yes any_attending_character = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } } } @@ -339,9 +339,9 @@ apa_night_on_books = { effect = { random_attending_character = { limit = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } } save_scope_as = first @@ -358,7 +358,7 @@ apa_night_on_books = { limit = { this = scope:host } - custom_tooltip = adult_education_tt_positive_tiny + custom_tooltip = adult_education_apa_tt_positive_tiny scope:activity = { activity_special_type_progression_tiny = yes } } } @@ -371,9 +371,9 @@ apa_student_disagreement = { is_valid = { is_current_phase_active = yes any_attending_character = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } count = 2 } @@ -386,9 +386,9 @@ apa_student_disagreement = { effect = { random_attending_character = { limit = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } } save_scope_as = first @@ -451,9 +451,9 @@ apa_rowdy_student = { is_valid = { is_current_phase_active = yes any_attending_character = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } OR = { has_activity_intent = university_revelry_intent @@ -464,9 +464,9 @@ apa_rowdy_student = { } } any_attending_character = { - OR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_variable = { + name = teacher_1 + name = teacher_2 } } } @@ -478,9 +478,9 @@ apa_rowdy_student = { effect = { random_attending_character = { limit = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } OR = { has_activity_intent = university_revelry_intent @@ -494,9 +494,9 @@ apa_rowdy_student = { } random_attending_character = { limit = { - OR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_variable = { + name = teacher_1 + name = teacher_2 } } save_scope_as = second @@ -528,9 +528,9 @@ apa_impromptu_poetry = { is_valid = { is_current_phase_active = yes any_attending_character = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } OR = { has_activity_intent = university_revelry_intent @@ -547,9 +547,9 @@ apa_impromptu_poetry = { effect = { random_attending_character = { limit = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } OR = { has_activity_intent = university_revelry_intent @@ -577,9 +577,9 @@ apa_impressed_teacher = { is_valid = { is_current_phase_active = yes any_attending_character = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } OR = { has_activity_intent = study_hard_intent @@ -587,9 +587,9 @@ apa_impressed_teacher = { } } any_attending_character = { - OR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_variable = { + name = teacher_1 + name = teacher_2 } } } @@ -601,9 +601,9 @@ apa_impressed_teacher = { effect = { random_attending_character = { limit = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } OR = { has_activity_intent = study_hard_intent @@ -614,9 +614,9 @@ apa_impressed_teacher = { } random_attending_character = { limit = { - OR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_variable = { + name = teacher_1 + name = teacher_2 } } save_scope_as = second @@ -633,7 +633,7 @@ apa_impressed_teacher = { limit = { this = scope:host } - custom_tooltip = adult_education_tt_positive_tiny + custom_tooltip = adult_education_apa_tt_positive_tiny scope:activity = { activity_special_type_progression_tiny = yes } } reverse_add_opinion = { @@ -706,9 +706,9 @@ apa_studied_confucian_classics = { scope:activity = { has_activity_type = activity_adult_education } } any_attending_character = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } } } @@ -721,9 +721,9 @@ apa_studied_confucian_classics = { effect = { random_attending_character = { limit = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } } save_scope_as = first @@ -755,9 +755,9 @@ apa_local_food = { is_valid = { is_current_phase_active = yes any_attending_character = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } } } @@ -769,9 +769,9 @@ apa_local_food = { effect = { random_attending_character = { limit = { - NOR = { - has_character_flag = teacher_1 - has_character_flag = teacher_2 + has_none_of_variables = { + name = teacher_1 + name = teacher_2 } } save_scope_as = first @@ -819,7 +819,7 @@ apa_aced_homework = { tags = { pulse_action } character = scope:first - custom_tooltip = adult_education_tt_positive_tiny + custom_tooltip = adult_education_apa_tt_positive_tiny scope:activity = { activity_special_type_progression_tiny = yes } } } @@ -850,7 +850,7 @@ apa_pangur_ban = { tags = { pulse_action } character = scope:first - custom_tooltip = adult_education_tt_positive_tiny + custom_tooltip = adult_education_apa_tt_positive_tiny scope:activity = { activity_special_type_progression_tiny = yes } } } diff --git a/common/artifacts/features/00_features.txt b/common/artifacts/features/00_features.txt index 93624e745..56feb80a5 100644 --- a/common/artifacts/features/00_features.txt +++ b/common/artifacts/features/00_features.txt @@ -2013,7 +2013,7 @@ brooch_centerpiece_sword = { group = brooch_centerpiece trigger = { - scope:owner.faith ?= { NOT = { has_doctrine_parameter = pacifist_opinion_active } } + scope:owner.rite ?= { NOT = { rite_has_parameter = pacifist } } } weight = 33 } @@ -2209,7 +2209,7 @@ scope:owner = { NOR = { religion = religion:islam_religion - faith = { has_doctrine = tenet_aniconism } + rite = { rite_has_tenet = tenet_aniconism } } } } @@ -2228,7 +2228,7 @@ scope:owner = { NOR = { religion = religion:islam_religion - faith = { has_doctrine = tenet_aniconism } + rite = { rite_has_tenet = tenet_aniconism } } } } @@ -2247,7 +2247,7 @@ scope:owner = { NOR = { religion = religion:islam_religion - faith = { has_doctrine = tenet_aniconism } + rite = { rite_has_tenet = tenet_aniconism } } } } @@ -2266,7 +2266,7 @@ scope:owner = { NOR = { religion = religion:islam_religion - faith = { has_doctrine = tenet_aniconism } + rite = { rite_has_tenet = tenet_aniconism } } } } @@ -2285,7 +2285,7 @@ scope:owner = { NOR = { religion = religion:islam_religion - faith = { has_doctrine = tenet_aniconism } + rite = { rite_has_tenet = tenet_aniconism } } } } @@ -2304,7 +2304,7 @@ scope:owner = { NOR = { religion = religion:islam_religion - faith = { has_doctrine = tenet_aniconism } + rite = { rite_has_tenet = tenet_aniconism } } } } @@ -2323,7 +2323,7 @@ scope:owner = { NOR = { religion = religion:islam_religion - faith = { has_doctrine = tenet_aniconism } + rite = { rite_has_tenet = tenet_aniconism } } } } @@ -2342,7 +2342,7 @@ scope:owner = { NOR = { religion = religion:islam_religion - faith = { has_doctrine = tenet_aniconism } + rite = { rite_has_tenet = tenet_aniconism } } } } @@ -2361,7 +2361,7 @@ scope:owner = { NOR = { religion = religion:islam_religion - faith = { has_doctrine = tenet_aniconism } + rite = { rite_has_tenet = tenet_aniconism } } } } @@ -2380,7 +2380,7 @@ scope:owner = { NOR = { religion = religion:islam_religion - faith = { has_doctrine = tenet_aniconism } + rite = { rite_has_tenet = tenet_aniconism } } } } @@ -3789,7 +3789,7 @@ OR = { #Mystic lifestyle, adventurers, scholarly educated or scholarly court - not formal theologian has_trait = lifestyle_mystic has_trait = scholarly_court - has_trait = scholar + has_trait = erudite has_trait = education_learning has_trait = adventurer } @@ -3801,7 +3801,7 @@ OR = { #Mystic lifestyle, adventurers, scholarly educated or scholarly court - not formal theologian has_trait = lifestyle_mystic has_trait = scholarly_court - has_trait = scholar + has_trait = erudite has_trait = education_learning has_trait = adventurer } @@ -3848,7 +3848,7 @@ OR = { #Herbalist lifestyle, adventurers, gardener, scholarly educated or scholarly court has_trait = lifestyle_herbalist has_trait = scholarly_court - has_trait = scholar + has_trait = erudite has_trait = education_learning has_trait = adventurer has_trait = lifestyle_gardener @@ -3860,7 +3860,7 @@ OR = { #Herbalist lifestyle, adventurers, gardener, scholarly educated or scholarly court has_trait = lifestyle_herbalist has_trait = scholarly_court - has_trait = scholar + has_trait = erudite has_trait = education_learning has_trait = adventurer has_trait = lifestyle_gardener @@ -4268,6 +4268,17 @@ weight = 1 } + book_subject_religious_text = { + group = book_subject + trigger = { + trigger_if = { # If the subject has been pre-saved from events etc. we make sure it's picked + limit = { exists = scope:owner.var:book_artifact_subject } + scope:owner.var:book_artifact_subject = flag:religious_text + } + } + weight = 1 + } + book_subject_alchemy = { group = book_subject trigger = { @@ -4325,6 +4336,18 @@ weight = 1 } + book_topic_religious_text = { + group = book_topic + trigger = { + has_artifact_feature = book_subject_religious_text + trigger_if = { # If the subject has been pre-saved from events etc. we make sure it's picked + limit = { exists = scope:owner.var:book_artifact_topic } + scope:owner.var:book_artifact_topic = flag:religious_text + } + } + weight = 1 + } + book_topic_soulmate = { group = book_topic trigger = { @@ -5306,7 +5329,7 @@ scope:owner.faith.religion = religion:islam_religion exists = scope:owner.var:book_artifact_author scope:owner.var:book_artifact_author.faith.religion = religion:islam_religion - scope:owner.var:book_artifact_author = { has_trait = scholar } + scope:owner.var:book_artifact_author = { has_trait = erudite } } weight = 1 } @@ -5959,7 +5982,7 @@ limit = { exists = scope:owner.var:book_artifact_topic } scope:owner.var:book_artifact_topic = flag:galen } - scope:owner.capital_province = { + scope:owner.capital_province ?= { OR = { geographical_region = world_europe geographical_region = world_middle_east @@ -6523,6 +6546,12 @@ weight = 1 } + book_title_religious_text = { + group = book_title + trigger = { has_artifact_feature = book_subject_religious_text } + weight = 1 + } + # martial book_title_martial = { #Fallback option that we don't cropping up too often if it's not needed group = book_title diff --git a/common/artifacts/features/_features.info b/common/artifacts/features/_features.info new file mode 100644 index 000000000..f2b0b255b --- /dev/null +++ b/common/artifacts/features/_features.info @@ -0,0 +1,9 @@ +Structure: + +key = { + group = feature group + trigger = {} # Scopes are passed in from create_artifact and similar + weight = script value # Same scopes as trigger +} + +The artifact_feature_KEY is also used as a loc key in some contexts. E.G., "feature_sword_hilt_silver" From cbe47784556f555a4574c33f8b9bfe5d2d3229b4 Mon Sep 17 00:00:00 2001 From: Thakia Date: Fri, 2 Oct 2026 13:07:25 -0300 Subject: [PATCH 2/2] More Updates to BGA, Artifacts and Castle Buildings --- common/artifacts/types/00_types.txt | 11 ++- .../artifacts/visuals/00_court_artifacts.txt | 23 +++--- common/artifacts/visuals/00_personal_misc.txt | 55 ++++++++++---- common/buildings/00_castle_buildings.txt | 72 ++++++++++++++++--- 4 files changed, 128 insertions(+), 33 deletions(-) diff --git a/common/artifacts/types/00_types.txt b/common/artifacts/types/00_types.txt index 179b82c86..1eb0b8b3b 100644 --- a/common/artifacts/types/00_types.txt +++ b/common/artifacts/types/00_types.txt @@ -197,20 +197,25 @@ journal = { } -# For artefacts that we *don't* want to start as court artefacts, because you might not have Royal Court, but which will generally be expected to convert into one at the earliest opportunity. +# For artifacts that we *don't* want to start as court artifacts, because you might not have Royal Court, but which will generally be expected to convert into one at the earliest opportunity. miscellaneous_when_not_court = { slot = miscellaneous - # Just add to this list as new DLC court artefacts are designed. + # Just add to this list as new DLC court artifacts are designed. optional_features = { sculpture_material generic_material_wood decoration_material_inlay goblet_material } } brooch = { - slot = miscellaneous + slot = brooch required_features = { brooch_decoration decoration_material_wire } optional_features = { brooch_centerpiece brooch_adornment decoration_material_gem } can_reforge = no } +badge = { + slot = brooch + can_reforge = no +} + necklace = { slot = miscellaneous required_features = { decoration_material_wire decoration_material_gem } diff --git a/common/artifacts/visuals/00_court_artifacts.txt b/common/artifacts/visuals/00_court_artifacts.txt index 49bad56dc..6e75f3212 100644 --- a/common/artifacts/visuals/00_court_artifacts.txt +++ b/common/artifacts/visuals/00_court_artifacts.txt @@ -874,7 +874,7 @@ small_box = { artifact_should_use_gfx_type_trigger = { TYPE = iranian_building } # Since there is only one variety, enable it regardless of rarity } - reference = fp3_artifact_Il_Khanid_casket_01_a_entity + reference = fp3_artifact_il-khanid_casket_01_a_entity } asset = { @@ -1511,6 +1511,7 @@ statue = { artifact_should_use_gfx_type_trigger = { TYPE = norse_building } } OR = { + scope:artifact = { has_variable = statue_artifact_female_gender } AND = { exists = scope:owner_fm scope:owner_fm = flag:female @@ -1544,6 +1545,7 @@ statue = { artifact_should_use_gfx_type_trigger = { TYPE = steppe_building } } OR = { + scope:artifact = { has_variable = statue_artifact_female_gender } AND = { exists = scope:owner_fm scope:owner_fm = flag:female @@ -1551,7 +1553,7 @@ statue = { NOT = { exists = scope:owner_fm } } } - reference = ep1_medi_statue_01_female_entity + reference = ep1_western_statue_01_female_entity } asset = { trigger = { @@ -1576,6 +1578,7 @@ statue = { artifact_should_use_gfx_type_trigger = { TYPE = southeast_asian_building } } OR = { + scope:artifact = { has_variable = statue_artifact_female_gender } AND = { exists = scope:owner_fm scope:owner_fm = flag:female @@ -1624,6 +1627,7 @@ statue = { artifact_should_use_gfx_type_trigger = { TYPE = japanese_building } } OR = { + scope:artifact = { has_variable = statue_artifact_female_gender } AND = { exists = scope:owner_fm scope:owner_fm = flag:female @@ -2130,9 +2134,10 @@ reliquary = { cross = { default_type = pedestal - icon = "artifact_reliquary.dds" + icon = "pam_artifact_crucifix.dds" pedestal = "tall" asset = ep1_generic_cross_01_a_entity + asset = pam_altar_cross_01_a_entity } rock = { @@ -2920,7 +2925,7 @@ crown_court = { has_cultural_pillar = heritage_syriac } } - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_byzantine_imperial_01_artifact_entity @@ -2951,7 +2956,7 @@ crown_court = { culture = { has_cultural_pillar = heritage_turkic } culture = { has_cultural_pillar = heritage_berber } } - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_dde_abbasid_imperial_01_artifact_entity @@ -2983,7 +2988,7 @@ crown_court = { culture = { has_cultural_pillar = heritage_west_germanic } culture = { has_cultural_pillar = heritage_west_slavic } } - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_dde_hre_imperial_01_artifact_entity @@ -3039,7 +3044,7 @@ crown_court = { # Indian asset = { trigger = { - scope:owner = { highest_held_title_tier = tier_empire } + scope:owner = { highest_held_title_tier >= tier_empire } artifact_high_rarity_trigger = yes artifact_use_indian_building_visuals_trigger = yes #this trigger cuts out the maker } @@ -3076,7 +3081,7 @@ crown_court = { trigger = { artifact_use_indian_building_visuals_trigger = yes #this trigger cuts out the maker scope:owner = { - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_indian_imperial_01_artifact_entity @@ -3104,7 +3109,7 @@ crown_court = { trigger = { artifact_use_mena_building_visuals_trigger = yes #this trigger cuts out the maker scope:owner = { - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_mena_imperial_01_artifact_entity diff --git a/common/artifacts/visuals/00_personal_misc.txt b/common/artifacts/visuals/00_personal_misc.txt index 5e2734edc..1af297737 100644 --- a/common/artifacts/visuals/00_personal_misc.txt +++ b/common/artifacts/visuals/00_personal_misc.txt @@ -44,7 +44,7 @@ crown = { has_cultural_pillar = heritage_syriac } } - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_byzantine_imperial_01_artifact_entity @@ -75,7 +75,7 @@ crown = { culture = { has_cultural_pillar = heritage_turkic } culture = { has_cultural_pillar = heritage_berber } } - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_dde_abbasid_imperial_01_artifact_entity @@ -107,7 +107,7 @@ crown = { culture = { has_cultural_pillar = heritage_west_germanic } culture = { has_cultural_pillar = heritage_west_slavic } } - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_dde_hre_imperial_01_artifact_entity @@ -163,7 +163,7 @@ crown = { # Indian asset = { trigger = { - scope:owner = { highest_held_title_tier = tier_empire } + scope:owner = { highest_held_title_tier >= tier_empire } artifact_high_rarity_trigger = yes OR = { artifact_use_indian_building_visuals_trigger = yes #this trigger cuts out the maker @@ -215,7 +215,7 @@ crown = { artifact_use_southeast_asian_building_visuals_trigger = yes #this trigger cuts out the maker } scope:owner = { - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_indian_imperial_01_artifact_entity @@ -262,7 +262,7 @@ crown = { trigger = { artifact_use_mena_building_visuals_trigger = yes #this trigger cuts out the maker scope:owner = { - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_mena_imperial_01_artifact_entity @@ -368,7 +368,7 @@ crown = { has_cultural_pillar = heritage_syriac } } - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_western_imperial_01_artifact_entity @@ -399,7 +399,7 @@ crown = { has_dlc_feature = the_northern_lords artifact_use_northern_unit_visuals_trigger = yes #this trigger cuts out the maker scope:owner = { - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_fp1_imperial_01_artifact_entity @@ -409,7 +409,7 @@ crown = { has_dlc_feature = the_northern_lords artifact_use_northern_unit_visuals_trigger = yes #this trigger cuts out the maker scope:owner = { - highest_held_title_tier = tier_empire + highest_held_title_tier >= tier_empire } } reference = female_headgear_secular_fp1_imperial_01_artifact_entity @@ -425,7 +425,7 @@ crown = { asset = { trigger = { artifact_use_mongol_unit_visuals_trigger = yes #this trigger cuts out the maker - scope:owner = { highest_held_title_tier = tier_empire } + scope:owner = { highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_steppe_imperial_01_artifact_entity } @@ -440,14 +440,14 @@ crown = { asset = { trigger = { artifact_use_african_unit_visuals_trigger = yes #this trigger cuts out the maker - scope:owner = { highest_held_title_tier = tier_empire } + scope:owner = { highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_sub_saharan_imperial_artifact_01_entity } asset = { trigger = { artifact_use_african_unit_visuals_trigger = yes #this trigger cuts out the maker - scope:owner = { highest_held_title_tier = tier_empire } + scope:owner = { highest_held_title_tier >= tier_empire } } reference = male_headgear_secular_ep1_sub_saharan_royalty_01_artifact_entity } @@ -1019,7 +1019,7 @@ pocket_fancy_case = { } cheese = { - icon = "artefact_icons_unique_artifact_cheese.dds" + icon = "artifact_icons_unique_artifact_cheese.dds" asset = ep1_western_pouch_basic_01_a_entity } @@ -1102,3 +1102,32 @@ ryukyuan_crown = { icon = "artifact_crown_lotus.dds" asset = male_headgear_secular_steppe_imperial_01_artifact_entity } + +#Unique locations +santiago_badge = { + icon = "pilgrim_compostella.dds" + asset = ep1_generic_jewelry_01_a_entity +} + +jerusalem_badge = { + icon = "pilgrim_jerusalem.dds" + asset = ep1_generic_jewelry_01_a_entity +} + +rome_badge = { + icon = "pilgrim_rome.dds" + asset = ep1_generic_jewelry_01_a_entity +} + +#Generic icons +badge = { + icon = "pilgrim_badge_01.dds" + icon = "pilgrim_badge_02.dds" + icon = "pilgrim_badge_03.dds" + icon = "pilgrim_badge_04.dds" + icon = "pilgrim_badge_nativity.dds" + icon = "pilgrim_badge_st_catherine.dds" + icon = "pilgrim_badge_st_edward.dds" + icon = "pilgrim_badge_purse.dds" + asset = ep1_generic_jewelry_01_a_entity +} diff --git a/common/buildings/00_castle_buildings.txt b/common/buildings/00_castle_buildings.txt index 540bcce5d..3dfe2f2d1 100644 --- a/common/buildings/00_castle_buildings.txt +++ b/common/buildings/00_castle_buildings.txt @@ -84,10 +84,19 @@ castle_01 = { requires_dlc_flag = roads_to_power illustration = @holding_illustration_constantinople soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/Castle/mediterranean_castle" soundparameter = { "Tier" = 0 } } - graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx steppe_building_gfx } provinces = { 496 } graphical_regions = { graphical_western graphical_mena graphical_india graphical_mediterranean graphical_steppe graphical_east_asia graphical_siberia } } + asset = { + type = pdxmesh + name = "ep3_byzantine_castle_01_a_mesh" + requires_dlc_flag = roads_to_power + illustration = @holding_illustration_byzantine + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/Castle/mediterranean_castle" soundparameter = { "Tier" = 0 } } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_regions = { graphical_western graphical_mena graphical_india graphical_mediterranean graphical_steppe graphical_east_asia graphical_siberia } + } # SOUTHEAST ASIA # asset = { type = pdxmesh @@ -444,7 +453,6 @@ castle_01 = { defender_holding_advantage = 5 } - character_culture_modifier = { parameter = castle_grant_prestige monthly_prestige = 0.02 @@ -468,11 +476,17 @@ castle_01 = { is_coastal = yes defender_holding_advantage = 2 } + county_culture_modifier = { parameter = use_farmer_republics county_fertility_decline_add = -1 } + province_rite_modifier = { + parameter = tenet_tax_increase_per_piety_level + tax_per_piety_level = 0.1 + } + flag = castle type_icon = "icon_building_ramparts.dds" @@ -633,10 +647,19 @@ castle_02 = { requires_dlc_flag = roads_to_power illustration = @holding_illustration_constantinople soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/Castle/mediterranean_castle" soundparameter = { "Tier" = 1 } } - graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx steppe_building_gfx } provinces = { 496 } graphical_regions = { graphical_western graphical_mena graphical_india graphical_mediterranean graphical_steppe graphical_east_asia graphical_siberia } } + asset = { + type = pdxmesh + name = "ep3_byzantine_castle_02_a_mesh" + requires_dlc_flag = roads_to_power + illustration = @holding_illustration_byzantine + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/Castle/mediterranean_castle" soundparameter = { "Tier" = 1 } } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_regions = { graphical_western graphical_mena graphical_india graphical_mediterranean graphical_steppe graphical_east_asia graphical_siberia } + } # SOUTHEAST ASIA # asset = { type = pdxmesh @@ -986,12 +1009,17 @@ castle_02 = { is_coastal = yes defender_holding_advantage = 3 } + county_culture_modifier = { parameter = use_farmer_republics county_fertility_decline_add = -2 } - + province_rite_modifier = { + parameter = tenet_tax_increase_per_piety_level + tax_per_piety_level = 0.1 + } + flag = castle on_complete = { @@ -1123,10 +1151,19 @@ castle_03 = { requires_dlc_flag = roads_to_power illustration = @holding_illustration_constantinople soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/Castle/mediterranean_castle" soundparameter = { "Tier" = 2 } } - graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx steppe_building_gfx } provinces = { 496 } graphical_regions = { graphical_western graphical_mena graphical_india graphical_mediterranean graphical_steppe graphical_east_asia graphical_siberia } } + asset = { + type = pdxmesh + name = "ep3_byzantine_castle_03_a_mesh" + requires_dlc_flag = roads_to_power + illustration = @holding_illustration_byzantine + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/Castle/mediterranean_castle" soundparameter = { "Tier" = 2 } } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_regions = { graphical_western graphical_mena graphical_india graphical_mediterranean graphical_steppe graphical_east_asia graphical_siberia } + } # SOUTHEAST ASIA # asset = { type = pdxmesh @@ -1481,12 +1518,17 @@ castle_03 = { is_coastal = yes defender_holding_advantage = 4 } + county_culture_modifier = { parameter = use_farmer_republics county_fertility_decline_add = -3 } - + province_rite_modifier = { + parameter = tenet_tax_increase_per_piety_level + tax_per_piety_level = 0.1 + } + flag = castle on_complete = { @@ -1610,10 +1652,19 @@ castle_04 = { requires_dlc_flag = roads_to_power illustration = @holding_illustration_constantinople soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/Castle/mediterranean_castle" soundparameter = { "Tier" = 3 } } - graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx steppe_building_gfx } provinces = { 496 } graphical_regions = { graphical_western graphical_mena graphical_india graphical_mediterranean graphical_steppe graphical_east_asia graphical_siberia } } + asset = { + type = pdxmesh + name = "ep3_byzantine_castle_04_a_mesh" + requires_dlc_flag = roads_to_power + illustration = @holding_illustration_byzantine + soundeffect = { soundeffect = "event:/SFX/Ambience/3DMapEmitters/Holdings/Castle/mediterranean_castle" soundparameter = { "Tier" = 3 } } + graphical_cultures = { byzantine_building_gfx caucasian_building_gfx } + graphical_regions = { graphical_western graphical_mena graphical_india graphical_mediterranean graphical_steppe graphical_east_asia graphical_siberia } + } # SOUTHEAST ASIA # asset = { type = pdxmesh @@ -1967,12 +2018,17 @@ castle_04 = { is_coastal = yes defender_holding_advantage = 5 } + county_culture_modifier = { parameter = use_farmer_republics county_fertility_decline_add = -4 } - + province_rite_modifier = { + parameter = tenet_tax_increase_per_piety_level + tax_per_piety_level = 0.1 + } + flag = castle on_complete = {