#Effects used in hunt events ##################################################################### # EFFECT LIST ##################################################################### # !!! Remember to add all new effects with a short description here !!! # #hunt_end_pulse_effect #select_local_animal_effect ###################################################################### # EFFECTS ###################################################################### #Used to find a local animal to hunt #Note: Don't add more here without also revisiting artifact creation for Skulls and hides. #Note: May save any of below scopes before running the effect to limit possible animals: ## big_local_game ## small_local_game ## dangerous_local_game ## harmless_local_game ## prowling_local_game select_local_animal_effect = { save_scope_as = $TYPE$_local_game location = { save_scope_as = animal_location } hidden_effect = { if = { limit = { NOT = { exists = var:animal_type } } random_list = { 60 = { # Deer, Antelope, Gazelle, etc. trigger = { scope:animal_location = { hunt_animal_deer_antelope_trigger = yes } NOT = { exists = scope:dangerous_local_game } NOT = { exists = scope:prowling_local_game } } hunt_activity_deer_game_effect = { PROVINCE = scope:animal_location } } 20 = { # Boar trigger = { scope:animal_location = { hunt_animal_boar_trigger = yes } NOT = { exists = scope:small_local_game } NOT = { exists = scope:harmless_local_game } NOT = { exists = scope:prowling_local_game } } # they're everywhere, but Muslims and Jews wouldn't hunt them modifier = { factor = 0 faith = { OR = { religion_tag = islam_religion religion_tag = judaism_religion } } } set_variable = { name = animal_type value = flag:boar years = 3 } } 10 = { # Fox trigger = { scope:animal_location = { hunt_animal_fox_trigger = yes } NOT = { exists = scope:big_local_game } NOT = { exists = scope:dangerous_local_game } NOT = { exists = scope:prowling_local_game } } # they're everywhere set_variable = { name = animal_type value = flag:fox years = 3 } } 1 = { # Aurochs trigger = { scope:animal_location = { hunt_animal_aurochs_trigger = yes } NOT = { religion = religion:hinduism_religion } NOT = { exists = scope:small_local_game } NOT = { exists = scope:dangerous_local_game } NOT = { exists = scope:prowling_local_game } } set_variable = { name = animal_type value = flag:aurochs } } 10 = { # Bison trigger = { scope:animal_location = { hunt_animal_bison_trigger = yes } NOT = { exists = scope:small_local_game } NOT = { exists = scope:dangerous_local_game } NOT = { exists = scope:prowling_local_game } } set_variable = { name = animal_type value = flag:bison } } 10 = { # Wolf, Hyena, Lynx trigger = { NOT = { exists = scope:harmless_local_game } scope:animal_location = { OR = { hunt_animal_wolf_trigger = yes hunt_animal_hyena_trigger = yes hunt_animal_lynx_trigger = yes } } } random_list = { 10 = { # Wolf trigger = { scope:animal_location = { hunt_animal_wolf_trigger = yes } } set_variable = { name = animal_type value = flag:wolf years = 3 } } 20 = { # Hyena trigger = { scope:animal_location = { hunt_animal_hyena_trigger = yes } } set_variable = { name = animal_type value = flag:hyena years = 3 } } 5 = { # Lynx trigger = { scope:animal_location = { hunt_animal_lynx_trigger = yes } } set_variable = { name = animal_type value = flag:lynx years = 3 } } } } 1 = { # Hare trigger = { NOT = { exists = scope:dangerous_local_game } NOT = { exists = scope:prowling_local_game } } modifier = { exists = scope:big_local_game add = -5 } modifier = { add = 10 #A really poor hunter or a child has a higher chance of focusing on hunting a hare OR = { is_adult = no adventure_inspiration_average_skill_value < 2 } } set_variable = { name = animal_type value = flag:hare years = 3 } } 5 = { # Bear trigger = { NOT = { exists = scope:small_local_game } NOT = { exists = scope:harmless_local_game } NOT = { exists = scope:prowling_local_game } scope:animal_location = { hunt_animal_bear_trigger = yes } } set_variable = { name = animal_type value = flag:bear years = 3 } } 5 = { # Big Cat trigger = { NOT = { exists = scope:small_local_game } NOT = { exists = scope:harmless_local_game } scope:animal_location = { hunt_animal_big_cat_trigger = yes OR = { hunt_animal_lion_trigger = yes hunt_animal_tiger_trigger = yes hunt_animal_leopard_trigger = yes } } } random_list = { 5 = { # Lion trigger = { scope:animal_location = { hunt_animal_lion_trigger = yes } } modifier = { factor = 5 scope:animal_location = { OR = { terrain = desert terrain = forest } } } set_variable = { name = animal_type value = flag:lion years = 3 } } 5 = { # Tiger trigger = { scope:animal_location = { hunt_animal_tiger_trigger = yes } } modifier = { factor = 5 scope:animal_location = { terrain = jungle } } set_variable = { name = animal_type value = flag:tiger years = 3 } } 5 = { # Leopard trigger = { scope:animal_location = { hunt_animal_leopard_trigger = yes } } modifier = { factor = 0.5 scope:animal_location = { OR = { terrain = desert terrain = mountains } } } set_variable = { name = animal_type value = flag:leopard years = 3 } } } } 1 = { # Unicorn # they're nowhere trigger = { NOT = { exists = scope:small_local_game } NOT = { exists = scope:dangerous_local_game } NOT = { exists = scope:prowling_local_game } } modifier = { factor = 0 NOT = { has_trait = lunatic } } set_variable = { name = animal_type value = flag:unicorn years = 3 } } 1 = { # Dragon trigger = { NOT = { exists = scope:small_local_game } NOT = { exists = scope:harmless_local_game } NOT = { exists = scope:prowling_local_game } } # they're nowhere modifier = { factor = 0 NOT = { has_trait = lunatic } } set_variable = { name = animal_type value = flag:dragon years = 3 } } } } } # Fallback if = { limit = { NOT = { exists = var:animal_type } } set_variable = { name = animal_type value = flag:stag years = 3 } } } #Effect to start the story and show the right tooltip start_hunt_mystical_animal_story_cycle_effect = { #Only for players, fake it for ai if = { limit = { is_ai = no } hidden_effect = { create_story = story_cycle_hunt_mystical_animal } random_owned_story = { type = story_cycle_hunt_mystical_animal set_variable = { name = legendary_county value = scope:activity.activity_location.county } save_scope_as = story } custom_tooltip = hunt.4013.a.tt } else = { hidden_effect = { random_list = { 5 = { #The ai got the animal, wow! add_prestige = major_prestige_gain add_character_modifier = { modifier = hunt_mystical_animal_modifier years = 20 } } 95 = { #Nothing happens for them } } } } } #Effect to end the story and apply everything - You got the animal! end_hunt_mystical_animal_story_cycle_effect = { if = { limit = { has_dlc_feature = legends NOT = { has_game_rule = historical_legends_only } } create_legend_seed = { type = heroic quality = famed chronicle = beast_slayer properties = { beast = scope:activity.var:animal_type location = root.location } } } add_prestige = major_prestige_gain give_nickname = nick_the_venator add_trait_xp = { trait = lifestyle_hunter track = hunter value = 20 } add_character_modifier = { modifier = hunt_mystical_animal_modifier years = 20 } set_variable = { name = hunted_mystical_animal value = scope:activity.var:animal_type } hidden_effect = { if = { limit = { can_animal_produce_skull_trigger = { VARIABLE = scope:activity.var:animal_type } } random = { chance = 50 create_artifact_wall_skull_effect = { OWNER = root HUNTER = root LEGENDARY = yes ANIMAL = scope:activity.var:animal_type } } } } create_artifact_animal_hide_effect = { OWNER = root HUNTER = root LEGENDARY = yes ANIMAL = scope:activity.var:animal_type } add_stress = medium_stress_loss scope:story = { hidden_effect = { end_story = yes } } # Achievement tracking. ## Ahab. if = { limit = { is_ai = no exists = global_var:started_ahab_achievement } set_global_variable = { name = achieved_ahab_achievement value = yes } } } hunt_activity_standard_game_effect = { random_list = { 10 = { # Boar trigger = { $PROVINCE$ = { hunt_animal_boar_trigger = yes } NOT = { exists = scope:small_local_game } } # Master of Hunt aptitude affects chance of managed game activity_court_position_aptitude_positive_modifier = { LIEGE = root POS = master_of_hunt } # Increase larger deer chance with management buildings hunt_activity_game_building_modifier = { PROVINCE = $PROVINCE$ } set_variable = { name = animal_type value = flag:boar years = 3 } } 30 = { # Deer/Antelope trigger = { $PROVINCE$ = { hunt_animal_deer_antelope_trigger = yes } } # Master of Hunt aptitude affects chance of managed game activity_court_position_aptitude_positive_modifier = { LIEGE = root POS = master_of_hunt } # Increase larger deer chance with management buildings hunt_activity_game_building_modifier = { PROVINCE = $PROVINCE$ } hunt_activity_deer_game_effect = { PROVINCE = $PROVINCE$ } } 1 = { # Aurochs trigger = { $PROVINCE$ = { hunt_animal_aurochs_trigger = yes } NOT = { $HUNTER$.religion = religion:hinduism_religion } NOT = { exists = scope:small_local_game } } set_variable = { name = animal_type value = flag:aurochs } } 10 = { # Bison trigger = { $PROVINCE$ = { hunt_animal_bison_trigger = yes } NOT = { exists = scope:small_local_game } } set_variable = { name = animal_type value = flag:bison } } 5 = { # Fox trigger = { $PROVINCE$ = { hunt_animal_fox_trigger = yes } NOT = { exists = scope:big_local_game } } set_variable = { name = animal_type value = flag:fox } } 5 = { # Hare modifier = { exists = scope:big_local_game add = -5 } set_variable = { name = animal_type value = flag:hare } } } # Fallback if = { limit = { NOT = { exists = var:animal_type } } set_variable = { name = animal_type value = flag:stag years = 3 } } } hunt_activity_deer_game_effect = { random_list = { 5 = { # Deer - Europe, Middle East, India, Steppe trigger = { $PROVINCE$ = { hunt_animal_deer_trigger = yes } } random_list = { 4 = { # Roe - Small deer trigger = { $PROVINCE$ = { hunt_animal_roe_trigger = yes } } modifier = { add = -4 exists = scope:big_local_game } set_variable = { name = animal_type value = flag:roe } # Roe } 4 = { # Stag - Standard deer # Increase larger deer chance with management buildings hunt_activity_game_building_modifier = { PROVINCE = $PROVINCE$ } # Master of Hunt aptitude affects chance of managed game activity_court_position_aptitude_positive_modifier = { LIEGE = root POS = master_of_hunt } if = { limit = { $PROVINCE$ = { geographical_region = hunt_animal_reindeer_region OR = { terrain = taiga terrain = forest } } } set_variable = { name = animal_type value = flag:reindeer } } else = { set_variable = { name = animal_type value = flag:stag } } } 2 = { # Hart - Prestigious deer trigger = { NOT = { exists = scope:small_local_game } } # Offset lack of Roe chance modifier = { factor = 0.5 $PROVINCE$ = { hunt_animal_roe_trigger = yes } } # Increase larger deer chance with management buildings hunt_activity_game_building_modifier = { PROVINCE = $PROVINCE$ } # Master of Hunt aptitude affects chance of managed game activity_court_position_aptitude_positive_modifier = { LIEGE = root POS = master_of_hunt } if = { limit = { $PROVINCE$ = { geographical_region = hunt_animal_elk_region OR = { terrain = taiga terrain = forest } } } set_variable = { name = animal_type value = flag:elk } } else = { set_variable = { name = animal_type value = flag:hart } } } } } 5 = { # Antelope - Africa, Middle East, India, Steppe trigger = { $PROVINCE$ = { hunt_animal_antelope_trigger = yes } } random_list = { 4 = { # Gazelle - Small antelope trigger = { $PROVINCE$ = { hunt_animal_gazelle_trigger = yes } } modifier = { add = -4 exists = scope:big_local_game } set_variable = { name = animal_type value = flag:gazelle } } 4 = { # Antelope - Standard antelope # Increase larger deer chance with management buildings hunt_activity_game_building_modifier = { PROVINCE = $PROVINCE$ } # Master of Hunt aptitude affects chance of managed game activity_court_position_aptitude_positive_modifier = { LIEGE = root POS = master_of_hunt } if = { limit = { $PROVINCE$ = { hunt_animal_steppe_trigger = yes } } set_variable = { name = animal_type value = flag:saiga } } else = { set_variable = { name = animal_type value = flag:antelope } } } } } } # Fallback if = { limit = { NOT = { exists = var:animal_type } } set_variable = { name = animal_type value = flag:stag years = 3 } } } hunt_activity_dangerous_game_effect = { random_list = { 15 = { # Wolf/Hyena/Lynx - Common modifier = { exists = scope:big_local_game factor = 0 } random_list = { 10 = { # Wolf trigger = { $PROVINCE$ = { hunt_animal_wolf_trigger = yes } } set_variable = { name = animal_type value = flag:wolf years = 3 } } 20 = { # Hyena trigger = { $PROVINCE$ = { hunt_animal_hyena_trigger = yes } } set_variable = { name = animal_type value = flag:hyena years = 3 } } 5 = { # Lynx trigger = { $PROVINCE$ = { hunt_animal_lynx_trigger = yes } } set_variable = { name = animal_type value = flag:lynx years = 3 } } } } 5 = { # Lion/Tiger/Leopard - Occasional (outside Europe) trigger = { $PROVINCE$ = { hunt_animal_big_cat_trigger = yes OR = { hunt_animal_lion_trigger = yes hunt_animal_tiger_trigger = yes hunt_animal_leopard_trigger = yes } } } modifier = { exists = scope:small_local_game factor = 0 } random_list = { 5 = { # Lion trigger = { $PROVINCE$ = { hunt_animal_lion_trigger = yes } } modifier = { factor = 5 $PROVINCE$ = { OR = { terrain = desert terrain = forest } } } set_variable = { name = animal_type value = flag:lion years = 3 } } 5 = { # Tiger trigger = { $PROVINCE$ = { hunt_animal_tiger_trigger = yes } } modifier = { factor = 5 $PROVINCE$ = { terrain = jungle } } set_variable = { name = animal_type value = flag:tiger years = 3 } } 5 = { # Leopard trigger = { $PROVINCE$ = { hunt_animal_leopard_trigger = yes } } modifier = { factor = 0.5 $PROVINCE$ = { OR = { terrain = desert terrain = mountains } } } set_variable = { name = animal_type value = flag:leopard years = 3 } } } } 5 = { # Bear - Occasional (outside Europe) trigger = { $PROVINCE$ = { hunt_animal_bear_trigger = yes } } modifier = { exists = scope:small_local_game factor = 0 } set_variable = { name = animal_type value = flag:bear years = 3 } } 10 = { # Boar trigger = { $PROVINCE$ = { hunt_animal_boar_trigger = yes } } modifier = { exists = scope:small_local_game factor = 0 } set_variable = { name = animal_type value = flag:boar years = 3 } } } # Fallback if = { limit = { NOT = { exists = var:animal_type } } set_variable = { name = animal_type value = flag:wolf years = 3 } } } hunt_activity_falconry_game_effect = { random_list = { 15 = { ### WATERFOWL ### trigger = { $PROVINCE$ = { NOR = { terrain = desert terrain = desert_mountains terrain = jungle terrain = drylands } } } hunt_falconry_select_waterfowl_effect = { VAR = animal_type PROVINCE = $PROVINCE$ } } 10 = { ### GROUND ### hunt_falconry_select_gamebird_effect = { VAR = animal_type PROVINCE = $PROVINCE$ } } 5 = { ### EXOTIC ### random_list = { 5 = { # Egret trigger = { $PROVINCE$ = { OR = { geographical_region = world_africa_north geographical_region = world_africa_east geographical_region = world_africa_west geographical_region = world_middle_east_persia geographical_region = world_europe_south_east geographical_region = world_asia_minor geographical_region = world_steppe } } } modifier = { factor = 2 $PROVINCE$ = { OR = { terrain = wetlands terrain = floodplains terrain = oasis is_riverside_province = yes } } } set_variable = { name = animal_type value = flag:egret years = 3 } } 5 = { # Crane trigger = { $PROVINCE$ = { OR = { geographical_region = world_africa_north geographical_region = world_africa_east geographical_region = world_europe_north geographical_region = world_europe_east geographical_region = world_asia_minor geographical_region = world_steppe } } } modifier = { factor = 2 $PROVINCE$ = { OR = { terrain = wetlands terrain = floodplains terrain = oasis is_riverside_province = yes } } } set_variable = { name = animal_type value = flag:crane years = 3 } } 5 = { # Stork modifier = { factor = 2 $PROVINCE$ = { OR = { terrain = wetlands terrain = floodplains terrain = oasis is_riverside_province = yes } } } set_variable = { name = animal_type value = flag:stork years = 3 } } 5 = { # Heron modifier = { factor = 2 $PROVINCE$ = { OR = { terrain = wetlands terrain = floodplains terrain = oasis is_riverside_province = yes } } } set_variable = { name = animal_type value = flag:heron years = 3 } } 5 = { # Pelican trigger = { $PROVINCE$ = { OR = { geographical_region = world_africa_east geographical_region = world_africa_west geographical_region = world_india geographical_region = world_middle_east_persia geographical_region = world_asia_minor geographical_region = world_europe_south_east geographical_region = world_steppe_west } } } modifier = { factor = 2 $PROVINCE$ = { is_coastal = yes } } set_variable = { name = animal_type value = flag:pelican years = 3 } } 5 = { # Flamingo trigger = { $PROVINCE$ = { OR = { geographical_region = world_africa_east geographical_region = world_africa_west geographical_region = world_india geographical_region = world_middle_east_persia geographical_region = dlc_fp2_mediterranean_shoreline } is_coastal = yes } } set_variable = { name = animal_type value = flag:flamingo years = 3 } } } } } } hunt_falconry_select_waterfowl_effect = { random_list = { 5 = { # Swan trigger = { $PROVINCE$ = { NOT = { geographical_region = world_africa } } } modifier = { factor = 2 $PROVINCE$ = { OR = { terrain = oasis terrain = wetlands terrain = floodplains is_riverside_province = yes } } } modifier = { factor = 2 $PROVINCE$.county.holder.top_liege = { employs_court_position = keeper_of_swans_court_position } } set_variable = { name = $VAR$ value = flag:swan years = 3 } } 10 = { # Goose modifier = { factor = 0.5 $PROVINCE$ = { OR = { terrain = desert terrain = desert_mountains terrain = jungle terrain = drylands } } } set_variable = { name = $VAR$ value = flag:goose years = 3 } } 10 = { # Duck modifier = { factor = 2 $PROVINCE$ = { OR = { terrain = oasis terrain = wetlands terrain = floodplains is_riverside_province = yes } } } set_variable = { name = $VAR$ value = flag:duck years = 3 } } } } hunt_falconry_select_gamebird_effect = { random_list = { 5 = { # Pheasant modifier = { factor = 2 $PROVINCE$ = { OR = { terrain = farmlands terrain = plains terrain = hills } } } set_variable = { name = $VAR$ value = flag:pheasant years = 3 } } 5 = { # Bustard modifier = { factor = 2 $PROVINCE$ = { OR = { terrain = steppe terrain = plains terrain = drylands terrain = desert terrain = oasis } } } set_variable = { name = $VAR$ value = flag:bustard years = 3 } } 5 = { # Grouse trigger = { $PROVINCE$ = { OR = { geographical_region = world_europe_north geographical_region = world_europe_west_britannia } } } modifier = { factor = 2 $PROVINCE$ = { OR = { terrain = mountains terrain = hills terrain = taiga terrain = forest terrain = plains } } } set_variable = { name = $VAR$ value = flag:grouse years = 3 } } 5 = { # Quail modifier = { factor = 2 $PROVINCE$ = { OR = { terrain = mountains terrain = hills terrain = steppe terrain = plains } } } set_variable = { name = $VAR$ value = flag:quail years = 3 } } } } hunt_activity_success_change_effect = { scope:activity = { if = { limit = { NOT = { exists = var:hunt_success_chance_event } } set_variable = { name = hunt_success_chance_event value = 0 } } change_variable = { name = hunt_success_chance_event add = hunt_activity_success_$CHANGE$_value } set_variable = { name = hunt_success_chance value = hunt_success_chance_value } } custom_tooltip = hunt_activity_success_$CHANGE$_tt } hunt_activity_success_outcome_effect = { scope:activity = { hidden_effect = { random = { chance = var:hunt_success_chance set_variable = { name = hunt_success value = flag:yes } } } } } hunt_individual_guest_awards_effect = { # If character had the reduce stress intent, give them stress loss if = { # Hosts limit = { this = scope:host } if = { # To hide hunter tooltip for guests limit = { has_character_flag = host_existing_hunter } if = { limit = { scope:activity.var:hunt_success ?= flag:yes } stress_impact = { base = major_stress_loss lazy = medium_stress_impact_loss gregarious = medium_stress_impact_loss lifestyle_hunter = major_stress_loss shy = medium_stress_impact_gain } } else = { stress_impact = { base = medium_stress_impact_loss lazy = minor_stress_impact_loss gregarious = minor_stress_impact_loss lifestyle_hunter = medium_stress_impact_loss shy = medium_stress_impact_gain } } } else = { if = { limit = { scope:activity.var:hunt_success ?= flag:yes } stress_impact = { base = major_stress_loss lazy = medium_stress_impact_loss gregarious = medium_stress_impact_loss shy = medium_stress_impact_gain } } else = { stress_impact = { base = medium_stress_impact_loss lazy = minor_stress_impact_loss gregarious = minor_stress_impact_loss shy = medium_stress_impact_gain } } } } else = { # Guests if = { limit = { scope:activity.var:hunt_success ?= flag:yes } stress_impact = { base = medium_stress_impact_loss lazy = minor_stress_impact_loss gregarious = minor_stress_impact_loss lifestyle_hunter = medium_stress_impact_loss shy = minor_stress_impact_gain } } else = { stress_impact = { base = minor_stress_impact_loss lazy = miniscule_stress_impact_loss gregarious = miniscule_stress_impact_loss lifestyle_hunter = minor_stress_impact_loss shy = minor_stress_impact_gain } } } # Prestige/piety if = { limit = { this != scope:host is_adult = yes trigger_if = { limit = { scope:activity = { NOT = { has_activity_option = { category = special_type option = hunt_type_falconry } } } } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:host } } trigger_if = { limit = { is_clergy = yes } OR = { faith = { has_doctrine_parameter = clergy_can_fight } culture = { has_cultural_parameter = culture_clergy_can_fight } } } } if = { limit = { culture = { has_cultural_parameter = sacred_hunts } } add_prestige = hunt_prestige_with_piety_guest_gain_value add_piety = hunt_piety_guest_gain_value } else = { add_prestige = hunt_prestige_guest_gain_value } } # Nomads gain prowess from dangerous animal kills if = { limit = { NOT = { this = scope:host } government_has_flag = government_is_nomadic scope:activity = { var:hunt_success ?= flag:yes NOT = { exists = var:animal_spared } hunt_animal_type_dangerous_trigger = { VAR = var:animal_type } } } add_prowess_skill = 1 } # Trait XP # Only called on the end of a *successful* hunt. Hunts which are interrupted due to death, imprisonment, etc., don't get this, so put critical clean-up stuff in the activity itself. if = { limit = { scope:activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } } hunter_lifestyle_rank_up_check_effect = { FALCONRY = yes } } else = { hunter_lifestyle_rank_up_check_effect = { FALCONRY = no } } # Tourney if = { limit = { has_trait = tourney_participant } if = { limit = { scope:activity = { NOT = { has_activity_option = { category = special_type option = hunt_type_falconry } } NOT = { hunt_story_trigger = { STORY = chase } } } } add_trait_xp = { trait = tourney_participant track = horse value = { 1 3 } } } if = { limit = { OR = { hunt_story_trigger = { STORY = ambush } hunt_story_trigger = { STORY = stealth } } } add_trait_xp = { trait = tourney_participant track = bow value = { 1 3 } } } } accolades_activity_complete_hunt_glory_effect = yes # LEGITIMACY GAIN FOR ACTIVITY PARTICIPATION - HUNT if = { limit = { scope:activity = { # Special gain for Legendary Hunt has_activity_option = { category = special_type option = hunt_type_legendary } } } legendary_hunt_participation_legitimacy_effect = yes } else = { standard_activity_participation_legitimacy_effect = yes } # Memories if = { limit = { save_temporary_scope_as = hunter_temp NOT = { any_memory = { has_memory_type = hunt_animal_slayer_memory memory_participant:animal_slayer = scope:hunter_temp memory_participant:host = scope:host memory_age_years < 1 } } exists = scope:activity.var:kill_animal_type } create_character_memory = { type = hunt_success_memory participants = { host = scope:host } } ordered_memory = { limit = { has_memory_type = hunt_success_memory } order_by = memory_creation_date save_scope_as = new_memory set_variable = { name = animal_type value = scope:activity.var:kill_animal_type } set_variable = { name = location value = scope:activity.activity_location } } } } hunt_animal_wound_effect = { if = { limit = { exists = $VARIABLE$ } if = { limit = { $VARIABLE$ = flag:elk } increase_wounds_effect = { REASON = moose } } else_if = { limit = { $VARIABLE$ = flag:hart } increase_wounds_effect = { REASON = hart } } else_if = { limit = { OR = { $VARIABLE$ = flag:stag $VARIABLE$ = flag:reindeer } } increase_wounds_effect = { REASON = deer } } else_if = { limit = { $VARIABLE$ = flag:roe } increase_wounds_effect = { REASON = roe } } else_if = { limit = { OR = { $VARIABLE$ = flag:antelope $VARIABLE$ = flag:saiga } } increase_wounds_effect = { REASON = antelope } } else_if = { limit = { $VARIABLE$ = flag:gazelle } increase_wounds_effect = { REASON = gazelle } } else_if = { limit = { $VARIABLE$ = flag:bison } increase_wounds_effect = { REASON = bison } } else_if = { limit = { $VARIABLE$ = flag:aurochs } increase_wounds_effect = { REASON = aurochs } } else_if = { limit = { $VARIABLE$ = flag:boar } increase_wounds_effect = { REASON = boar } } else_if = { limit = { $VARIABLE$ = flag:bear } increase_wounds_effect = { REASON = bear } } else_if = { limit = { $VARIABLE$ = flag:wolf } increase_wounds_effect = { REASON = wolf } } else_if = { limit = { $VARIABLE$ = flag:hyena } increase_wounds_effect = { REASON = hyena } } else_if = { limit = { $VARIABLE$ = flag:lynx } increase_wounds_effect = { REASON = lynx } } else_if = { limit = { $VARIABLE$ = flag:lion } increase_wounds_effect = { REASON = lion } } else_if = { limit = { $VARIABLE$ = flag:tiger } increase_wounds_effect = { REASON = tiger } } else_if = { limit = { $VARIABLE$ = flag:leopard } increase_wounds_effect = { REASON = leopard } } else = { increase_wounds_effect = { REASON = maimed_by_wild_beast } } } else = { increase_wounds_effect = { REASON = maimed_by_wild_beast } } } hunt_animal_death_effect = { if = { limit = { exists = $VAR$ } if = { limit = { $VAR$ = flag:elk } death = { death_reason = death_moose } } else_if = { limit = { $VAR$ = flag:hart } death = { death_reason = death_hart } } else_if = { limit = { OR = { $VAR$ = flag:stag $VAR$ = flag:reindeer } } death = { death_reason = death_deer } } else_if = { limit = { $VAR$ = flag:roe } death = { death_reason = death_roe } } else_if = { limit = { OR = { $VAR$ = flag:antelope $VAR$ = flag:saiga } } death = { death_reason = death_antelope } } else_if = { limit = { $VAR$ = flag:gazelle } death = { death_reason = death_gazelle } } else_if = { limit = { $VAR$ = flag:bison } death = { death_reason = death_bison } } else_if = { limit = { $VAR$ = flag:aurochs } death = { death_reason = death_aurochs } } else_if = { limit = { $VAR$ = flag:boar } death = { death_reason = death_boar } } else_if = { limit = { $VAR$ = flag:bear } death = { death_reason = death_bear } } else_if = { limit = { $VAR$ = flag:wolf } death = { death_reason = death_wolf } } else_if = { limit = { $VAR$ = flag:hyena } death = { death_reason = death_hyena } } else_if = { limit = { $VAR$ = flag:lynx } death = { death_reason = death_lynx } } else_if = { limit = { $VAR$ = flag:lion } death = { death_reason = death_lion } } else_if = { limit = { $VAR$ = flag:tiger } death = { death_reason = death_tiger } } else_if = { limit = { $VAR$ = flag:leopard } death = { death_reason = death_leopard } } else = { death = { death_reason = death_maimed_by_wild_beast } } } else = { death = { death_reason = death_maimed_by_wild_beast } } } hunt_activity_random_subordinate_participant_effect = { save_scope_value_as = { name = hunt_participant_archetype value = flag:$ARCHETYPE$ } save_scope_value_as = { name = hunt_participant_martial_gender value = flag:$COMBATANT$ } scope:activity = { random_attending_character = { limit = { trigger_if = { limit = { scope:hunt_participant_martial_gender = flag:yes } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:host } } hunt_is_valid_subordinate_trigger = { LIEGE = scope:host } } weight = { base = 10 hunt_relevant_participant_modifiers = yes } save_scope_as = $SCOPE$ } } } hunt_activity_random_interest_participant_effect = { save_scope_value_as = { name = hunt_participant_archetype value = flag:$ARCHETYPE$ } save_scope_value_as = { name = hunt_participant_martial_gender value = flag:$COMBATANT$ } scope:activity = { random_attending_character = { # Major limit = { is_adult = yes is_of_major_interest_trigger = { CHARACTER = root } trigger_if = { limit = { scope:hunt_participant_martial_gender = flag:yes } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:host } } NAND = { exists = scope:murder_target this = scope:murder_target } } # Minor alternative_limit = { is_adult = yes is_of_minor_interest_trigger = { CHARACTER = root } trigger_if = { limit = { scope:hunt_participant_martial_gender = flag:yes } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:host } } NAND = { exists = scope:murder_target this = scope:murder_target } } weight = { base = 10 hunt_relevant_participant_modifiers = yes } save_scope_as = $SCOPE$ } } } hunt_activity_chose_smaller_game_effect = { save_scope_as = chose_smaller_game if = { limit = { exists = scope:hunt_participant } scope:hunt_participant = { add_opinion = { modifier = hunt_disappointed_opinion target = root opinion = -10 } } } scope:activity = { if = { limit = { any_attending_character = { NOR = { this = root AND = { exists = scope:hunt_participant this = scope:hunt_participant } } has_trait = lifestyle_hunter } } every_attending_character = { limit = { NOR = { this = root AND = { exists = scope:hunt_participant this = scope:hunt_participant } } has_trait = lifestyle_hunter } custom = hunt_every_hunter_attendee_tt add_opinion = { modifier = hunt_disappointed_opinion target = root opinion = -10 } } } } } hunt_animal_kill_effect = { save_scope_as = animal_slayer play_sound_effect = "event:/DLC/EP2/SFX/Events/Grand_Activities/Hunts/ConstructionKits/ep2_event_grand_hunt_ck_spear_impact" # Is it possible to die? save_scope_value_as = { name = hunt_kill_death_chance value = flag:$DEATH$ } # Determine what is slayed scope:activity = { set_variable = { name = kill_animal_type value = $VAR$ } set_variable = { name = animal_slayer value = scope:animal_slayer } } } hunt_animal_melee_kill_effect = { save_scope_as = melee_kill play_sound_effect = "event:/DLC/EP2/SFX/Events/Grand_Activities/Hunts/ConstructionKits/ep2_event_grand_hunt_ck_spear_impact" hunt_animal_kill_effect = { DEATH = $DEATH$ VAR = $VAR$ } hunter_progress_point_gain_effect = { CHANGE = 3 RANDOM_CHANGE = 1 } #Gives Hunter Lifestyle XP # Determine who could be wounded scope:activity ?= { random_attending_character = { limit = { is_alive = yes } save_scope_as = injury_target hunt_wound_select_effect = yes } } save_scope_as = injury_target hunt_wound_select_effect = yes duel = { skill = prowess value = hunt_melee_kill_prowess_value 50 = { desc = hunt_kill_success_melee hunt_kill_melee_modifiers = yes # SPEAR hunt_kill_hunter_modifiers = yes # HUNTER if = { #chance_to_gain_prowess_during_bear_hunts parameter check limit = { faith = { has_doctrine_parameter = chance_to_gain_prowess_during_bear_hunts } scope:activity.var:animal_type = flag:bear } add_prowess_skill = 1 add_martial_skill = 1 } send_interface_toast = { title = { first_valid = { triggered_desc = { trigger = { scope:animal_slayer ?= root } desc = hunt_kill_success_melee_root } desc = hunt_kill_success_melee_guest } } left_icon = scope:animal_slayer scope:activity ?= { add_activity_log_entry = { key = hunt_melee_log tags = { kill } score = 100 character = scope:animal_slayer #Effect scope:animal_slayer ?= { add_prestige = hunt_prestige_melee_value # Complete activity intent if relevant if = { limit = { AND = { scope:hunt_kill_death_chance = flag:yes NOT = { hunt_small_game_trigger = { VAR = $VAR$ } } } } hunt_animal_slayer_memory_effect = yes } } } } } save_scope_as = melee_success } 1 = { # Injury desc = hunt_kill_failure_melee compare_modifier = { value = scope:duel_value multiplier = -3.5 min = 5 } modifier = { hunt_small_game_trigger = { VAR = $VAR$ } factor = 0.05 } modifier = { add = hunt_melee_danger_value } # Effect hidden_effect = { scope:injury_target = { if = { limit = { hunt_animal_type_dangerous_trigger = { VAR = $VAR$ } } hunt_wound_apply_effect = { SEVERE = yes } } else = { hunt_wound_apply_effect = { SEVERE = no } } } } scope:activity ?= { add_activity_log_entry = { key = hunt_melee_log tags = { kill } score = 100 character = scope:animal_slayer #Effects scope:animal_slayer ?= { add_prestige = hunt_prestige_melee_wound_value # Complete activity intent if relevant if = { limit = { AND = { scope:hunt_kill_death_chance = flag:yes NOT = { hunt_small_game_trigger = { VAR = $VAR$ } } } } hunt_animal_slayer_memory_effect = yes } } } hidden_effect = { add_activity_log_entry = { key = hunt_melee_wounded_log score = 75 tags = { kill } character = scope:injury_target scope:injury_target = { hunt_wound_tooltip_effect = yes } } } } if = { limit = { scope:severe ?= yes } custom_tooltip = hunt_character_wound_tt } else = { show_as_tooltip = { increase_wounds_no_death_effect = { REASON = fight } } } save_scope_as = melee_failure } 1 = { # Death desc = hunt_kill_critical_failure_melee trigger = { scope:hunt_kill_death_chance = flag:yes NOT = { hunt_small_game_trigger = { VAR = $VAR$ } } } compare_modifier = { value = scope:duel_value multiplier = -3.5 min = 5 } modifier = { add = hunt_melee_kill_prowess_value } scope:activity ?= { add_activity_log_entry = { key = hunt_melee_killed_log score = 75 tags = { kill } character = scope:animal_slayer # Effect scope:animal_slayer = { hunt_animal_death_effect = { VAR = $VAR$ } } } } save_scope_as = melee_critical } } # Outcome scope:animal_slayer ?= { if = { limit = { has_activity_intent = slay_beast_intent } show_as_tooltip = { complete_activity_intent = yes } } hunt_complete_slay_beast_intent_effect = yes # Complete activity intent if relevant } scope:activity ?= { every_attending_character = { limit = { is_ai = no } trigger_event = hunt.1201 } } } hunt_animal_melee_kill_group_effect = { save_scope_as = group_kill hunt_animal_kill_effect = { DEATH = $DEATH$ VAR = $VAR$ } scope:activity ?= { # Determine who is slaying every_attending_character = { limit = { is_alive = yes NOT = { has_character_flag = not_slaying } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:host } trigger_if = { limit = { exists = scope:group_craven } this != scope:host } } custom = hunt_every_hunter_tt add_to_list = animal_slayers hunter_progress_point_gain_effect = { CHANGE = 1 RANDOM_CHANGE = 1 } #Gives Hunter Lifestyle XP } } # Determine who could be wounded random_in_list = { list = animal_slayers weight = { base = 20 hunt_likely_injured_modifiers = yes } save_scope_as = injury_target hunt_wound_select_effect = yes } # Outcome random_list = { 50 = { # Animal is captured trigger = { exists = scope:group_capture } desc = hunt_kill_success_capture scope:activity ?= { add_activity_log_entry = { key = hunt_melee_capture_log score = 75 tags = { kill } character = scope:animal_slayer # Effect every_in_list = { list = animal_slayers custom = hunt_every_hunter_tt add_prestige = hunt_prestige_melee_group_value } } } save_scope_as = group_success } 50 = { # Animal is slain trigger = { NOT = { exists = scope:group_capture } } desc = hunt_kill_success_melee scope:activity ?= { add_activity_log_entry = { key = hunt_melee_group_log score = 75 tags = { kill } character = scope:animal_slayer # Effect every_in_list = { list = animal_slayers custom = hunt_every_hunter_tt add_prestige = hunt_prestige_melee_group_value } } } save_scope_as = group_success } 25 = { # ...but someone is injured desc = hunt_kill_failure_melee_group modifier = { add = hunt_melee_kill_prowess_value } modifier = { hunt_small_game_trigger = { VAR = $VAR$ } factor = 0.1 } modifier = { add = hunt_melee_danger_value } # Effect hidden_effect = { scope:injury_target = { if = { # Big animal injure big limit = { hunt_animal_type_dangerous_trigger = { VAR = $VAR$ } } hunt_wound_apply_effect = { SEVERE = yes } } else = { # Smol animal injure smol hunt_wound_apply_effect = { SEVERE = no } } } } scope:activity ?= { add_activity_log_entry = { key = hunt_melee_group_log score = 75 tags = { kill } character = scope:animal_slayer # Effect every_in_list = { list = animal_slayers custom = hunt_every_hunter_tt add_prestige = hunt_prestige_melee_wound_group_value } } hidden_effect = { add_activity_log_entry = { key = hunt_melee_group_wounded_log score = 75 tags = { kill } character = scope:injury_target scope:injury_target = { hunt_wound_tooltip_effect = yes } } } } custom_tooltip = hunt_random_attendee_injured_tt save_scope_as = group_failure } 10 = { # ...but someone is killed desc = hunt_kill_critical_failure_melee_group trigger = { scope:hunt_kill_death_chance = flag:yes NOT = { hunt_small_game_trigger = { VAR = $VAR$ } } } modifier = { add = hunt_melee_kill_prowess_value } custom_tooltip = hunt_random_attendee_killed_tt scope:activity ?= { add_activity_log_entry = { key = hunt_melee_group_log score = 75 tags = { kill } character = scope:animal_slayer } hidden_effect = { add_activity_log_entry = { key = hunt_melee_group_killed_log score = 75 tags = { kill } character = scope:injury_target # Effect scope:injury_target = { hunt_animal_death_effect = { VAR = $VAR$ } } } } } save_scope_as = group_critical } } if = { limit = { NOT = { exists = scope:group_capture } } hidden_effect = { every_in_list = { list = animal_slayers custom = hunt_every_slay_beast_hunter_tt # Complete activity intent if relevant hunt_complete_slay_beast_intent_effect = yes } } } scope:activity ?= { every_attending_character = { limit = { is_ai = no } trigger_event = hunt.1202 } } } hunt_animal_bow_kill_effect = { save_scope_as = bow_kill hunt_animal_kill_effect = { DEATH = $DEATH$ VAR = $VAR$ } if = { limit = { has_trait = tourney_participant } add_trait_xp = { trait = tourney_participant track = bow value = { 1 3 } } hunter_progress_point_gain_effect = { CHANGE = 1 RANDOM_CHANGE = 1 } #Gives Hunter Lifestyle XP } else = { hunter_progress_point_gain_effect = { CHANGE = 2 RANDOM_CHANGE = 1 } #Gives Hunter Lifestyle XP } # Determine who could be wounded scope:activity ?= { random_attending_character = { limit = { is_alive = yes } save_scope_as = injury_target hunt_wound_select_effect = yes } } if = { # Separate win option to avoid Duel tooltips if very easy limit = { scope:hunt_kill_death_chance = flag:no exists = scope:hunt_ending scope:activity = { hunt_story_trigger = { STORY = chase } } } scope:activity ?= { add_activity_log_entry = { key = hunt_bow_log score = 75 tags = { kill } character = scope:animal_slayer # Effect scope:animal_slayer = { # Complete activity intent if relevant if = { limit = { has_activity_intent = slay_beast_intent } show_as_tooltip = { complete_activity_intent = yes } } hunt_complete_slay_beast_intent_effect = yes add_prestige = hunt_prestige_bow_value } } } save_scope_as = bow_success play_sound_effect = "event:/DLC/EP2/SFX/Events/Grand_Activities/Hunts/ConstructionKits/ep2_event_grand_hunt_ck_arrow_shoot" } else = { duel = { skill = prowess value = hunt_melee_kill_prowess_value 50 = { # Success desc = hunt_kill_success_bow_tt hunt_kill_bow_modifiers = yes # BOW hunt_kill_hunter_modifiers = yes # HUNTER compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -25 } scope:activity ?= { add_activity_log_entry = { key = hunt_bow_log score = 75 tags = { kill } character = scope:animal_slayer # Effect scope:animal_slayer = { add_prestige = hunt_prestige_bow_value # Complete activity intent if relevant if = { limit = { has_activity_intent = slay_beast_intent } show_as_tooltip = { complete_activity_intent = yes } } hunt_complete_slay_beast_intent_effect = yes if = { limit = { has_activity_intent = impose_obedience_intent scope:host.intent_target = { NOT = { is_obedient_to = scope:host } } } scope:host.intent_target = { add_opinion = { target = scope:host modifier = obedience_opinion } } } hunt_animal_slayer_memory_effect = yes if = { #chance_to_gain_prowess_during_bear_hunts parameter check limit = { faith = { has_doctrine_parameter = chance_to_gain_prowess_during_bear_hunts } scope:activity.var:animal_type = flag:bear } random = { chance = 10 add_prowess_skill = 1 } } } } } save_scope_as = bow_success play_sound_effect = "event:/DLC/EP2/SFX/Events/Grand_Activities/Hunts/ConstructionKits/ep2_event_grand_hunt_ck_arrow_impact_hit" } 5 = { # Failure desc = hunt_kill_failure_melee_group trigger = { scope:hunt_kill_death_chance = flag:yes } compare_modifier = { value = scope:duel_value multiplier = -1.5 min = 1 } modifier = { hunt_small_game_trigger = { VAR = $VAR$ } factor = 0.1 } modifier = { add = hunt_bow_danger_value } custom_tooltip = hunt_random_attendee_injured_tt hidden_effect = { scope:host ?= { send_interface_toast = { title = hunt_kill_failure_melee_group left_icon = scope:animal_slayer right_icon = scope:injury_target scope:activity = { add_activity_log_entry = { key = hunt_bow_log score = 75 tags = { kill } character = scope:animal_slayer target = scope:injury_target # Effect scope:animal_slayer = { custom_tooltip = hunt_kill_failure_bow # Complete activity intent if relevant hunt_complete_slay_beast_intent_effect = yes } if = { limit = { exists = scope:injury_target } scope:injury_target = { hunt_wound_tooltip_effect = yes } } } } } } } save_scope_as = bow_failure play_sound_effect = "event:/DLC/EP2/SFX/Events/Grand_Activities/Hunts/ConstructionKits/ep2_event_grand_hunt_ck_arrow_impact_miss" } 50 = { # Critical Failure desc = hunt_kill_critical_failure_bow_tt trigger = { NAND = { exists = scope:hunt_ending scope:activity ?= { hunt_story_trigger = { STORY = chase } } } } compare_modifier = { value = scope:duel_value multiplier = -3.5 min = 5 } send_interface_toast = { title = hunt_kill_miss_bow_tt left_icon = scope:animal_slayer scope:activity ?= { add_activity_log_entry = { key = hunt_bow_miss_log score = 75 tags = { kill } character = scope:animal_slayer } } } save_scope_as = bow_critical play_sound_effect = "event:/DLC/EP2/SFX/Events/Grand_Activities/Hunts/ConstructionKits/ep2_event_grand_hunt_ck_arrow_impact_miss" } } } scope:activity = { every_attending_character = { limit = { is_ai = no } trigger_event = hunt.1200 } } } animal_artifact_wealth_quality_effect = { save_scope_value_as = { name = quality value = { value = 0 if = { limit = { exists = scope:excellent_animal_artifacts } add = 500 } if = { limit = { OR = { scope:owner.var:animal_type ?= flag:hare AND = { hunt_activity_bird_trigger = { VAR = scope:owner.var:animal_type } NOR = { hunt_activity_ground_bird_trigger = { VAR = scope:owner.var:animal_type } hunt_activity_exotic_bird_trigger = { VAR = scope:owner.var:animal_type } } } } } add = { 0 30 } } else_if = { limit = { OR = { scope:owner.var:animal_type ?= flag:fox hunt_activity_ground_bird_trigger = { VAR = scope:owner.var:animal_type } } } add = { 15 45 } } else_if = { limit = { OR = { scope:owner.var:animal_type ?= flag:roe scope:owner.var:animal_type ?= flag:gazelle # Pets scope:owner.var:animal_type ?= flag:cat scope:owner.var:animal_type ?= flag:dog scope:owner.var:animal_type ?= flag:eagle } } add = { 30 60 } } else_if = { limit = { OR = { scope:owner.var:animal_type ?= flag:wolf scope:owner.var:animal_type ?= flag:hyena scope:owner.var:animal_type ?= flag:lynx # Exotic Birds hunt_activity_exotic_bird_trigger = { VAR = scope:owner.var:animal_type } } } add = { 45 75 } } else_if = { limit = { OR = { scope:owner.var:animal_type ?= flag:bison scope:owner.var:animal_type ?= flag:aurochs scope:owner.var:animal_type ?= flag:stag scope:owner.var:animal_type ?= flag:reindeer scope:owner.var:animal_type ?= flag:antelope } } add = { 60 90 } } else_if = { limit = { OR = { scope:owner.var:animal_type ?= flag:lion scope:owner.var:animal_type ?= flag:tiger scope:owner.var:animal_type ?= flag:bear scope:owner.var:animal_type ?= flag:leopard } } add = { 75 105 } } else_if = { limit = { OR = { scope:owner.var:animal_type ?= flag:boar scope:owner.var:animal_type ?= flag:hart scope:owner.var:animal_type ?= flag:elk } } add = { 90 120 } } if = { limit = { scope:legendary ?= yes } multiply = 2 } if = { limit = { exists = scope:impressive_trophy } multiply = 1.5 } if = { limit = { exists = var:pet_name } multiply = 2 } } } save_scope_value_as = { name = wealth value = { if = { limit = { exists = scope:excellent_animal_artifacts } add = 500 } if = { # If our artifact already has a quality, set base wealth equal to 1/4th quality value. limit = { exists = scope:quality } add = scope:quality multiply = 0.5 round = yes } else = { add = 10 # Otherwise, set base wealth value to 10. } scope:creator = { if = { limit = { has_trait = lifestyle_hunter } add = 10 } } if = { # Falconry Exp limit = { exists = scope:activity scope:activity = { has_activity_type = activity_hunt has_activity_option = { category = special_type option = hunt_type_falconry } } } if = { limit = { scope:creator = { hunt_lifestyle_track_greater_equal_trigger = { TRACK = falconer GREATER_EQUAL = 50 } } } add = 10 } if = { limit = { scope:creator = { hunt_lifestyle_track_greater_equal_trigger = { TRACK = falconer GREATER_EQUAL = 100 } } } add = 10 } } else = { # Hunter Exp if = { limit = { scope:creator = { hunt_lifestyle_track_greater_equal_trigger = { TRACK = hunter GREATER_EQUAL = 50 } } } add = 10 } if = { limit = { scope:creator = { hunt_lifestyle_track_greater_equal_trigger = { TRACK = hunter GREATER_EQUAL = 100 } } } add = 10 } } } } } hunt_animal_slayer_bow_opinion_effect = { if = { limit = { hunt_dharmic_pacificist_trigger = yes } add_opinion = { target = scope:host modifier = hunt_dharmic_mercy_opinion opinion = -15 } stress_impact = { base = minor_stress_impact_gain } add_character_flag = { flag = dharmic_mercy_flag weeks = 1 } } else_if = { limit = { scope:host = { exists = intent_target OR = { has_activity_intent = befriend_attendee_intent has_activity_intent = woo_attendee_intent AND = { has_activity_intent = impose_obedience_intent scope:host.intent_target = { # They're not obedient to you already NOT = { is_obedient_to = scope:host } } } } } this = scope:host.intent_target } save_scope_as = opinion_target scope:host = { switch = { trigger = has_activity_intent befriend_attendee_intent = { progress_towards_friend_effect = { REASON = friend_gave_hunt_kill_reason CHARACTER = scope:opinion_target OPINION = default_friend_opinion } } woo_attendee_intent = { progress_towards_lover_effect = { REASON = friend_gave_hunt_kill_reason CHARACTER = scope:opinion_target OPINION = default_lover_opinion } } impose_obedience_intent = { scope:opinion_target = { add_opinion = { target = scope:host modifier = obedience_opinion } } } } } } else_if = { limit = { OR = { $VAR$ = flag:hart $VAR$ = flag:boar } } add_opinion = { target = scope:host modifier = hunt_honored_with_kill_opinion opinion = 15 } } else_if = { limit = { OR = { $VAR$ = flag:fox $VAR$ = flag:hare } } add_opinion = { target = scope:host modifier = hunt_honored_with_kill_opinion opinion = 5 } } else = { add_opinion = { target = scope:host modifier = hunt_honored_with_kill_opinion opinion = 10 } } } hunt_animal_slayer_melee_opinion_effect = { if = { limit = { OR = { has_trait = craven AND = { NOT = { has_trait = lifestyle_hunter } OR = { scope:activity.var:animal_type = flag:hart scope:activity.var:animal_type = flag:boar } } hunt_dharmic_pacificist_trigger = yes } } add_opinion = { target = scope:host modifier = hunt_forced_to_kill_opinion opinion = -10 } } else_if = { limit = { scope:host = { exists = intent_target OR = { has_activity_intent = befriend_attendee_intent has_activity_intent = woo_attendee_intent AND = { has_activity_intent = impose_obedience_intent scope:host.intent_target = { # They're not obedient to you already NOT = { is_obedient_to = scope:host } } } } } this = scope:host.intent_target } save_scope_as = opinion_target scope:host = { switch = { trigger = has_activity_intent befriend_attendee_intent = { progress_towards_friend_effect = { REASON = friend_gave_hunt_kill_reason CHARACTER = scope:opinion_target OPINION = default_friend_opinion } } woo_attendee_intent = { progress_towards_lover_effect = { REASON = friend_gave_hunt_kill_reason CHARACTER = scope:opinion_target OPINION = default_lover_opinion } } impose_obedience_intent = { scope:opinion_target = { add_opinion = { target = scope:host modifier = obedience_opinion } } } } } } else_if = { limit = { OR = { has_trait = lifestyle_hunter has_trait = ambitious has_trait = arrogant has_trait = brave } } add_opinion = { target = scope:host modifier = hunt_honored_with_kill_opinion opinion = 10 } } } hunt_activity_method_effect = { custom_tooltip = hunt_activity_$STORY$_tt scope:activity = { if = { limit = { exists = var:hunt_activity_story } remove_variable = hunt_activity_story } set_variable = { name = hunt_activity_story value = flag:$STORY$ } add_activity_log_entry = { key = hunt_$STORY$_method_selected_log score = 25 tags = { method } character = scope:host } } } activity_improve_relations_intent_effect = { if = { limit = { intent_target ?= $CHARACTER$ OR = { has_activity_intent = befriend_attendee_intent has_activity_intent = woo_attendee_intent AND = { has_activity_intent = impose_obedience_intent scope:host.intent_target = { # They're not obedient to you already NOT = { is_obedient_to = scope:host } } } } } switch = { trigger = has_activity_intent befriend_attendee_intent = { progress_towards_friend_effect = { REASON = $REASON$ CHARACTER = $CHARACTER$ OPINION = default_friend_opinion } } woo_attendee_intent = { progress_towards_lover_effect = { REASON = $REASON$ CHARACTER = $CHARACTER$ OPINION = default_lover_opinion } } impose_obedience_intent = { scope:opinion_target = { add_opinion = { target = scope:host modifier = obedience_opinion } } } } } else_if = { limit = { NOT = { this = $CHARACTER$ } } reverse_add_opinion = { modifier = $MODIFIER$ opinion = $OPINION$ target = $CHARACTER$ } } } # Save master of the hunt or a fallback hunt_activity_sighting_master_effect = { add_character_flag = { flag = recent_hunt_sighting years = 3 } save_scope_value_as = { name = lifestyle value = flag:$TYPE$ } if = { limit = { employs_court_position = master_of_hunt_court_position court_position:master_of_hunt_court_position = { is_available_adult = yes } } court_position:master_of_hunt_court_position = { save_scope_as = sighting_character } } else_if = { limit = { employs_court_position = huntperson_camp_officer court_position:huntperson_camp_officer = { is_available_adult = yes } } court_position:huntperson_camp_officer = { save_scope_as = sighting_character } } else = { every_vassal_or_below = { limit = { is_available_adult = yes has_trait = lifestyle_hunter } add_to_list = potential_sighting_givers } every_courtier = { limit = { is_available_adult = yes has_trait = lifestyle_hunter } add_to_list = potential_sighting_givers } random_in_list = { list = potential_sighting_givers weight = { base = 1 modifier = { factor = 2 scope:lifestyle = flag:hunter has_trait_xp = { trait = lifestyle_hunter track = hunter value >= 25 } } modifier = { factor = 2 scope:lifestyle = flag:falconer has_trait_xp = { trait = lifestyle_hunter track = falconer value >= 25 } } modifier = { factor = 0 # Exclude clergy who don't fight is_clergy = yes NOR = { faith = { has_doctrine_parameter = clergy_can_fight } culture = { has_cultural_parameter = culture_clergy_can_fight } } } modifier = { factor = 0.1 scope:lifestyle = flag:hunter NOT = { can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } } } } save_scope_as = sighting_character } } scope:sighting_character ?= { save_scope_as = portrait_character } if = { limit = { NOT = { exists = scope:sighting_character } is_ai = no } create_character = { location = root.location template = hunter_template culture = root.location.culture faith = root.location.faith dynasty = none save_scope_as = new_hunter } scope:new_hunter = { save_scope_as = portrait_character } } } hunt_dharmic_pacificism_effect = { scope:activity ?= { if = { limit = { any_attending_character = { NOT = { scope:host ?= this } hunt_dharmic_pacificist_trigger = yes NOT = { has_character_flag = dharmic_mercy_flag } } } every_attending_character = { limit = { NOT = { scope:host ?= this } hunt_dharmic_pacificist_trigger = yes NOT = { has_character_flag = dharmic_mercy_flag } } custom = every_non_cynical_dharmic_attendee_tt add_opinion = { target = root modifier = hunt_dharmic_mercy_opinion opinion = -10 } } } } scope:host ?= { hunt_dharmic_pacificism_stress_effect = yes } } hunt_dharmic_pacificism_stress_effect = { if = { limit = { is_alive = yes hunt_dharmic_pacificist_trigger = yes } if = { limit = { NOT = { scope:host ?= this } } add_opinion = { target = scope:host modifier = hunt_dharmic_mercy_opinion opinion = -15 } } stress_impact = { base = minor_stress_impact_gain } add_character_flag = { flag = dharmic_mercy_flag weeks = 1 } } } hunt_humble_hunter_stress_effect = { if = { limit = { is_alive = yes } stress_impact = { lazy = miniscule_stress_impact_gain humble = miniscule_stress_impact_gain shy = miniscule_stress_impact_gain generous = miniscule_stress_impact_gain lifestyle_hunter = minor_stress_impact_loss } } } hunt_jealous_hunter_stress_effect = { if = { limit = { is_alive = yes } stress_impact = { diligent = miniscule_stress_impact_gain arrogant = miniscule_stress_impact_gain arbitrary = miniscule_stress_impact_gain greedy = miniscule_stress_impact_gain lifestyle_hunter = minor_stress_impact_gain } } } hunt_remove_variables_effect = { scope:host = { if = { limit = { is_alive = yes } if = { limit = { has_character_flag = dangerous_road } remove_character_flag = dangerous_road } if = { limit = { exists = var:animal_type } remove_variable = animal_type } if = { limit = { has_variable = strife_loss_total } remove_variable = strife_loss_total } } } scope:activity = { every_attending_character = { if = { limit = { exists = var:animal_type } remove_variable = animal_type } } } } hunt_wound_select_effect = { hidden_effect = { random_list = { 50 = { save_scope_value_as = { name = wound value = flag:wound } } 5 = { trigger = { NOT = { has_trait = incapable } } modifier = { has_trait = wounded add = 1 } save_scope_value_as = { name = wound value = flag:incapable } } 5 = { trigger = { NOT = { has_trait = maimed } } modifier = { has_trait = wounded add = 1 } save_scope_value_as = { name = wound value = flag:maimed } } 5 = { trigger = { NOT = { has_trait = one_eyed } } modifier = { has_trait = wounded add = 1 } save_scope_value_as = { name = wound value = flag:one_eyed } } 5 = { trigger = { NOT = { has_trait = one_legged } } modifier = { has_trait = wounded add = 1 } save_scope_value_as = { name = wound value = flag:one_legged } } 5 = { trigger = { NOT = { has_trait = disfigured } } modifier = { has_trait = wounded add = 1 } save_scope_value_as = { name = wound value = flag:disfigured } } 5 = { save_scope_value_as = { name = wound value = flag:none } } } } } hunt_wound_apply_effect = { if = { limit = { has_character_flag = hunt_wound_ignored } remove_character_flag = hunt_wound_ignored } save_scope_value_as = { name = severe value = $SEVERE$ } if = { limit = { scope:severe = yes } if = { limit = { NOT = { scope:wound = flag:wound } } hidden_effect = { change_trait_rank = { trait = wounded rank = 1 max = 3 } } } switch = { trigger = scope:wound flag:wound = { hidden_effect = { change_trait_rank = { trait = wounded rank = 2 max = 3 } } } flag:incapable = { add_trait_force_tooltip = incapable } flag:maimed = { apply_maimed_trait_and_modifier_effect = yes } flag:one_eyed = { add_trait_force_tooltip = one_eyed } flag:one_legged = { add_trait_force_tooltip = one_legged } flag:disfigured = { add_trait_force_tooltip = disfigured } flag:none = {} } } else = { hidden_effect = { change_trait_rank = { trait = wounded rank = 1 max = 3 } } } if = { limit = { has_trait = wounded_1 } add_trait_force_tooltip = wounded_1 } else_if = { limit = { has_trait = wounded_2 } add_trait_force_tooltip = wounded_2 } else = { add_trait_force_tooltip = wounded_3 } add_character_flag = { flag = recent_hunt_wound weeks = 1 } } hunt_wound_tooltip_effect = { show_as_tooltip = { if = { limit = { has_trait = wounded_3 } add_trait_force_tooltip = wounded_3 } else_if = { limit = { has_trait = wounded_2 } add_trait_force_tooltip = wounded_2 } else_if = { limit = { has_trait = wounded_1 } add_trait_force_tooltip = wounded_1 } if = { limit = { scope:severe = yes } switch = { trigger = scope:wound flag:wound = {} flag:incapable = { add_trait_force_tooltip = incapable } flag:maimed = { apply_maimed_trait_and_modifier_effect = yes } flag:one_eyed = { add_trait_force_tooltip = one_eyed } flag:one_legged = { add_trait_force_tooltip = one_legged } flag:disfigured = { add_trait_force_tooltip = disfigured } flag:none = {} } } } } hunt_story_tooltip_effect = { if = { limit = { hunt_story_trigger = { STORY = chase } } custom_tooltip = hunt_activity_chase_tt } else_if = { limit = { hunt_story_trigger = { STORY = stealth } } custom_tooltip = hunt_activity_stealth_tt } else_if = { limit = { hunt_story_trigger = { STORY = ambush } } custom_tooltip = hunt_activity_ambush_tt } } hunt_save_murder_target_effect = { hidden_effect = { if = { limit = { hunt_murder_intent_target_trigger = yes } intent_target = { save_scope_as = murder_target } } else_if = { limit = { var:hunt_murder_attempt ?= { is_alive = yes is_participant_in_activity = scope:activity } } var:hunt_murder_attempt = { save_scope_as = murder_target random_targeting_scheme = { limit = { scheme_type = murder OR = { scheme_owner = root any_scheme_agent_character = { this = root } } } save_scope_as = scheme every_scheme_agent_character = { add_to_list = murder_agents } scheme_owner = { save_scope_as = murder_schemer } hunt_save_hostile_accomplice_effect = { SCHEME = murder VICTIM = scope:murder_target } } } } else_if = { limit = { hunt_1012_hated_participant_trigger = yes } var:participant_to_use_1011 = { save_scope_as = murder_target } } else = { scope:activity = { random_attending_character = { limit = { has_relation_nemesis = root } alternative_limit = { has_relation_rival = root } save_scope_as = murder_target } } } if = { limit = { NOT = { exists = scope:accomplice } } random_list = { 10 = { trigger = { primary_title = { has_order_of_succession = election any_election_candidate = { this = scope:murder_target } any_elector = { hunt_elective_accomplice_trigger = { MURDERER = scope:murder_target TARGET = root } } } } primary_title = { ordered_elector = { limit = { hunt_elective_accomplice_trigger = { MURDERER = scope:murder_target TARGET = root } } order_by = intrigue save_scope_as = accomplice save_scope_as = elective_accomplice } } } 10 = { trigger = { any_targeting_faction = { hunt_claimant_faction_trigger = { MURDERER = scope:murder_target TARGET = root } any_faction_member = { hunt_accomplice_general_trigger = { MURDERER = scope:murder_target TARGET = root } } } } random_targeting_faction = { limit = { hunt_claimant_faction_trigger = { MURDERER = scope:murder_target TARGET = root } any_faction_member = { hunt_accomplice_general_trigger = { MURDERER = scope:murder_target TARGET = root } } } ordered_faction_member = { limit = { hunt_accomplice_general_trigger = { MURDERER = scope:murder_target TARGET = root } } order_by = intrigue save_scope_as = accomplice save_scope_as = claimant_accomplice } } } 10 = { trigger = { scope:murder_target = { any_relation = { type = lover type = friend hunt_accomplice_general_trigger = { MURDERER = scope:murder_target TARGET = root } } } } scope:murder_target = { ordered_relation = { type = lover type = friend limit = { hunt_accomplice_general_trigger = { MURDERER = scope:murder_target TARGET = root } } order_by = intrigue save_scope_as = accomplice save_scope_as = relation_accomplice } } } 0 = {} } } } } hunt_save_physician_effect = { if = { limit = { exists = court_position:court_physician_court_position court_position:court_physician_court_position = { is_participant_in_activity = scope:activity is_alive = yes } } court_position:court_physician_court_position = { save_scope_as = physician } } } hunt_physician_treatment_effect = { scope:physician = { duel = { skill = learning value = medium_skill_rating 20 = { compare_modifier = { value = scope:duel_value multiplier = 3.5 min = -25 } min = 5 desc = hunt.4014.c.success scope:host = { send_interface_toast = { title = hunt.4014.c.success left_icon = scope:patient right_icon = scope:physician scope:patient = { change_trait_rank = { trait = wounded rank = -1 max = 1 } if = { limit = { this != scope:host } add_opinion = { target = scope:host modifier = grateful_opinion opinion = 10 } } add_opinion = { target = scope:physician modifier = grateful_opinion opinion = 10 } } } } } 15 = { compare_modifier = { value = scope:duel_value multiplier = -3.5 min = -25 } modifier = { factor = 0.5 has_trait = lifestyle_physician } min = 5 desc = hunt.4014.c.failure scope:host = { send_interface_toast = { title = hunt.4014.c.failure left_icon = scope:patient right_icon = scope:physician scope:patient = { add_character_modifier = { modifier = infected_wound_modifier } add_opinion = { target = scope:physician modifier = failed_to_treat_me_opinion opinion = -15 } } } } } } } } hunt_friendly_intent_effect = { if = { limit = { has_activity_intent = woo_attendee_intent intent_target ?= $TARGET$ } progress_towards_lover_effect = { REASON = $REASON$ CHARACTER = $TARGET$ OPINION = default_lover_opinion } } else_if = { limit = { has_activity_intent = befriend_attendee_intent intent_target ?= $TARGET$ } progress_towards_friend_effect = { REASON = $REASON$ CHARACTER = $TARGET$ OPINION = default_friend_opinion } } else = { if = { limit = { can_add_hook = { target = $TARGET$ type = favor_hook } } add_hook = { type = favor_hook target = $TARGET$ } } } } # Give hunt xp to every attending character hunt_all_attendee_xp_effect = { hidden_effect = { scope:activity = { every_attending_character = { limit = { is_alive = yes NOT = { has_character_flag = not_slaying } trigger_if = { limit = { NOT = { scope:activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } } } can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = scope:host } } } add_to_list = animal_slayers } activity_host = { add_to_list = animal_slayers } } every_in_list = { list = animal_slayers if = { limit = { has_trait = lifestyle_hunter } send_interface_toast = { title = hunter_xp_gain_message hunter_progress_point_gain_effect = { CHANGE = $CHANGE$ RANDOM_CHANGE = $RANDOM$ } #Gives points towards ranking up the Hunter Lifestyle } } else = { hunter_progress_point_gain_effect = { CHANGE = $CHANGE$ RANDOM_CHANGE = $RANDOM$ } #Gives points towards ranking up the Hunter Lifestyle } } } } hunt_intent_outcome_tooltip_effect = { if = { # Murder limit = { has_activity_intent = murder_attendee_intent } if = { limit = { exists = intent_target.killer intent_target.killer = root } custom_tooltip = intent_murder_success_tt } else_if = { limit = { exists = intent_target.killer intent_target.killer = { is_alive = no } } custom_tooltip = intent_murder_dead_tt } else = { custom_tooltip = intent_murder_fail_tt } } if = { # Impose Obedience limit = { has_activity_intent = impose_obedience_intent } if = { limit = { intent_target = { is_obedient_to = root } } custom_tooltip = intent_obedience_success_tt } else = { custom_tooltip = intent_obedience_fail_tt } } else_if = { # Woo limit = { has_activity_intent = woo_attendee_intent } if = { limit = { has_relation_lover = intent_target } custom_tooltip = intent_woo_success_tt } else_if = { limit = { has_relation_potential_friend = intent_target } custom_tooltip = intent_woo_potential_tt } else = { custom_tooltip = intent_woo_fail_tt } } else_if = { # Befriend limit = { has_activity_intent = befriend_attendee_intent } if = { limit = { has_relation_friend = intent_target } custom_tooltip = intent_befriend_success_tt } else_if = { limit = { has_relation_potential_friend = intent_target } custom_tooltip = intent_befriend_potential_tt } else = { custom_tooltip = intent_befriend_fail_tt } } } hunt_participant_to_blame_effect = { scope:activity = { if = { limit = { any_attending_character = { NOR = { this = root this = scope:murder_target } is_alive = yes } } every_attending_character = { limit = { NOR = { this = root this = scope:murder_target } is_alive = yes } add_to_list = potential_blamees } random_in_list = { list = potential_blamees limit = { #Blame someone you don't like! OR = { has_relation_rival = root has_relation_potential_rival = root reverse_opinion = { target = root value <= -30 } } } alternative_limit = { reverse_opinion = { target = root value <= -10 } } alternative_limit = { always = yes } #Just pick whomever at this stage weight = { base = 10 modifier = { add = -9 OR = { has_relation_friend = root has_relation_potential_friend = root has_relation_lover = root } } } save_scope_as = participant_to_blame } } } } hunt_murder_confession_opinion_effect = { scope:activity = { every_attending_character = { #All honorable participants lose opinion limit = { this != root this != scope:murder_target is_alive = yes ai_honor >= high_positive_honor } custom = hunt.1014.all_honorable_hunt_participants add_opinion = { modifier = opinion_acting_strange target = root } } every_attending_character = { #All evil participants gain opinion limit = { this != root this != scope:murder_target is_alive = yes OR = { has_trait = sadistic opinion = { target = scope:murder_target value <= -30 } } } custom = hunt.1014.all_who_dislike_or_are_evil add_opinion = { modifier = cruelty_opinion target = root opinion = 10 } } } } hunt_increment_murder_accident_attempt = { if = { limit = { exists = var:hunt_murder_accident_attempt } change_variable = { name = hunt_murder_accident_attempt add = 1 } set_variable = { name = hunt_murder_accident_attempt value = var:hunt_murder_accident_attempt years = 10 } custom_tooltip = hunt_attempted_accident_murder_tt } else = { set_variable = { name = hunt_murder_accident_attempt value = 1 years = 10 } } } hunt_animal_from_death_effect = { $DEAD$ = { switch = { trigger = death_reason death_deer = { $TARGET$ = { set_variable = { name = animal_type value = flag:stag } } } death_moose = { $TARGET$ = { set_variable = { name = animal_type value = flag:elk } } } death_bear = { $TARGET$ = { set_variable = { name = animal_type value = flag:bear } } } death_boar = { $TARGET$ = { set_variable = { name = animal_type value = flag:boar } } } death_antelope = { $TARGET$ = { set_variable = { name = animal_type value = flag:antelope } } } death_gazelle = { $TARGET$ = { set_variable = { name = animal_type value = flag:gazelle } } } death_bison = { $TARGET$ = { set_variable = { name = animal_type value = flag:bison } } } death_aurochs = { $TARGET$ = { set_variable = { name = animal_type value = flag:aurochs } } } death_wolf = { $TARGET$ = { set_variable = { name = animal_type value = flag:wolf } } } death_hyena = { $TARGET$ = { set_variable = { name = animal_type value = flag:hyena } } } death_lion = { $TARGET$ = { set_variable = { name = animal_type value = flag:lion } } } death_tiger = { $TARGET$ = { set_variable = { name = animal_type value = flag:tiger } } } death_leopard = { $TARGET$ = { set_variable = { name = animal_type value = flag:leopard } } } death_lynx = { $TARGET$ = { set_variable = { name = animal_type value = flag:lynx } } } death_roe = { $TARGET$ = { set_variable = { name = animal_type value = flag:roe } } } death_hart = { $TARGET$ = { set_variable = { name = animal_type value = flag:hart } } } } } } hunt_chance_for_no_pelt_effect = { # Chance for no pelt reward if = { limit = { has_royal_court = yes } random = { chance = 50 custom_tooltip = hunt_pelt_damaged_tt scope:activity = { set_variable = pelt_damaged } } } } hunt_no_pelt_effect = { if = { limit = { has_royal_court = yes } custom_tooltip = hunt_pelt_damaged_tt scope:activity = { set_variable = pelt_damaged } } } hunt_no_skull_effect = { if = { limit = { has_royal_court = yes } custom_tooltip = hunt_skull_damaged_tt scope:activity = { set_variable = skull_damaged } } } hunt_save_master_or_hunter_courtier_effect = { if = { limit = { employs_court_position = master_of_hunt_court_position court_position:master_of_hunt_court_position = { is_available = yes } } court_position:master_of_hunt_court_position = { save_scope_as = m_hunt } } else = { random_courtier = { limit = { is_adult = yes can_be_combatant_based_on_gender_trigger = { ARMY_OWNER = root } } weight = { base = 10 modifier = { factor = 2 has_trait = lifestyle_hunter } # Not priest modifier = { factor = 0 is_clergy = yes } modifier = { factor = 0 hunt_dharmic_pacificist_trigger = yes } } save_scope_as = m_hunt } } } hunt_murder_add_and_reveal_attempted_murder = { if = { limit = { is_alive = yes } hidden_effect = { add_secret = { type = secret_murder_attempt target = root } } random_secret = { type = secret_murder_attempt limit = { secret_target = root } reveal_to_without_events_effect = { CHARACTER = root } if = { limit = { exists = scope:bodyguard_appears exists = scope:bodyguard scope:bodyguard = { is_alive = yes } } reveal_to_without_events_effect = { CHARACTER = scope:bodyguard } } } } } hunt_gift_trophy_opinion_effect = { if = { limit = { $RECIPIENT$ != scope:host } if = { limit = { hunt_dharmic_pacificist_trigger = yes } add_opinion = { target = scope:host modifier = hunt_dharmic_mercy_opinion opinion = -10 } } else_if = { limit = { scope:activity = { has_activity_option = { category = special_type option = hunt_type_legendary } } } activity_improve_relations_intent_effect = { CHARACTER = scope:host REASON = friend_gave_hunt_trophy_reason OPINION = 20 MODIFIER = hunt_gifted_trophy_opinion } } else_if = { limit = { $RECIPIENT$ = { is_adult = yes } scope:newly_created_artifact = { OR = { artifact_type = animal_trinket artifact_type = bird_feather } } NOT = { hunt_animal_type_predator_trigger = { VAR = scope:activity.var:animal_type } } } activity_improve_relations_intent_effect = { CHARACTER = scope:host REASON = friend_gave_hunt_trophy_reason OPINION = 5 MODIFIER = hunt_gifted_trophy_opinion } } else_if = { limit = { $RECIPIENT$ = { is_adult = yes } scope:newly_created_artifact = { hunt_activity_large_game_trigger = { VAR = var:animal_type } } } activity_improve_relations_intent_effect = { CHARACTER = scope:host REASON = friend_gave_hunt_trophy_reason OPINION = 15 MODIFIER = hunt_gifted_trophy_opinion } } else = { activity_improve_relations_intent_effect = { CHARACTER = scope:host REASON = friend_gave_hunt_trophy_reason OPINION = 10 MODIFIER = hunt_gifted_trophy_opinion } } } } hunt_complete_remove_sightings_effect = { # Remove sightings scope:activity = { if = { limit = { activity_location.county.var:sighting_owner ?= scope:host OR = { # Standard/dangerous AND = { has_activity_option = { category = special_type option = hunt_type_standard } activity_location.county = { OR = { has_county_modifier = hunt_sighting_standard_modifier has_county_modifier = hunt_sighting_dangerous_modifier } } } # Falconry AND = { has_activity_option = { category = special_type option = hunt_type_falconry } activity_location.county = { has_county_modifier = hunt_sighting_falconry_modifier } } } } # Remove sighting and trackers activity_location.county = { hunt_remove_sighting_effect = yes } } else_if = { limit = { has_activity_option = { category = special_type option = hunt_type_legendary } NOT = { exists = var:hunt_4013 } # Sighting already created } # Create new sighting activity_location.county = { hunt_create_sighting_effect = { TYPE = legendary ANIMAL = scope:activity.var:animal_type OWNER = scope:host } } } } } hunt_outcome_scope_effect = { # Scopes if = { limit = { exists = scope:activity.var:accident_target scope:activity.var:accident_target != scope:host } scope:activity.var:accident_target = { save_scope_as = wounded_courtier } } if = { limit = { exists = scope:activity.var:participant_to_use } scope:activity.var:participant_to_use = { save_scope_as = hunt_participant } } else = { hunt_activity_random_subordinate_participant_effect = { ARCHETYPE = hunter COMBATANT = yes SCOPE = hunt_participant } } if = { limit = { exists = intent_target this != intent_target } intent_target = { save_scope_as = intentee save_scope_as = pertinent } } else_if = { limit = { exists = scope:hunt_participant } save_scope_as = pertinent } } hunt_complete_slay_beast_intent_effect = { if = { limit = { exists = involved_activity has_activity_intent = slay_beast_intent is_alive = yes } save_scope_as = intent_completer hidden_effect = { send_interface_toast = { title = activity_intent_complete_toast left_icon = scope:intent_completer complete_activity_intent = yes if = { limit = { exists = scope:group_kill } if = { limit = { OR = { involved_activity.var:animal_type ?= flag:hare involved_activity.var:animal_type ?= flag:fox } } stress_impact = { base = miniscule_stress_impact_loss } } else = { stress_impact = { base = minor_stress_impact_loss } } } else = { if = { limit = { OR = { involved_activity.var:animal_type ?= flag:hare involved_activity.var:animal_type ?= flag:fox } } stress_impact = { base = minor_stress_impact_loss } } else = { stress_impact = { base = major_stress_impact_loss } } } } } show_as_tooltip = { if = { limit = { exists = scope:group_kill } stress_impact = { base = minor_stress_impact_loss } } else = { stress_impact = { base = major_stress_impact_loss } } } } } hunt_animal_slayer_memory_effect = { if = { limit = { is_alive = yes scope:activity.var:hunt_success ?= flag:yes exists = scope:activity.var:kill_animal_type } create_character_memory = { type = hunt_animal_slayer_memory participants = { animal_slayer = scope:animal_slayer host = scope:host } } ordered_memory = { memory_type = hunt_animal_slayer_memory order_by = memory_creation_date save_scope_as = new_memory set_variable = { name = animal_type value = scope:activity.var:kill_animal_type } set_variable = { name = location value = scope:activity.activity_location } } } } hunt_trophy_recipient_scope_effect = { # Save potential gift recipient if = { limit = { intent_target ?= { is_alive = yes } OR = { has_activity_intent = woo_attendee_intent has_activity_intent = befriend_attendee_intent AND = { has_activity_intent = impose_obedience_intent scope:host.intent_target = { # They're not obedient to you already NOT = { is_obedient_to = scope:host } } } } } intent_target = { save_scope_as = trophy_recipient } } else = { every_child = { limit = { hunt_trophy_recipient_trigger = yes } add_to_list = trophy_recipients } every_consort = { limit = { hunt_trophy_recipient_trigger = yes } add_to_list = trophy_recipients } every_close_family_member = { limit = { hunt_trophy_recipient_trigger = yes } add_to_list = trophy_recipients } every_relation = { type = friend type = lover type = potential_friend type = potential_lover add_to_list = trophy_recipients } random_in_list = { list = trophy_recipients limit = { trigger_if = { limit = { exists = scope:newly_created_artifact scope:newly_created_artifact = { OR = { artifact_type = animal_hide_big artifact_type = animal_hide artifact_type = animal_skull } } } has_royal_court = yes } NOR = { scope:animal_slayer ?= this hunt_dharmic_pacificist_trigger = yes } this != root } alternative_limit = { NOT = { scope:animal_slayer ?= this } this != root } weight = { base = 1 modifier = { add = 10 OR = { has_relation_potential_friend = root has_relation_potential_lover = root } } } save_scope_as = trophy_recipient } } } hunt_create_trophy_effect = { # Scopes for artifact loc if = { limit = { NOT = { exists = scope:animal_slayer } } if = { limit = { exists = scope:credit_taker } scope:credit_taker = { save_scope_as = animal_slayer } } else = { scope:host = { save_scope_as = animal_slayer } } } # Create trophy artifact hidden_effect = { random_list = { 100 = { # Create Skull trigger = { has_royal_court = yes exists = scope:activity.var:animal_type can_animal_produce_skull_trigger = { VARIABLE = scope:activity.var:animal_type } scope:activity = { NOR = { AND = { hunt_activity_deer_game_trigger = { VAR = var:animal_type } exists = scope:activity.var:female_quarry } exists = var:skull_damaged has_activity_option = { category = special_type option = hunt_type_falconry } } } } modifier = { # Already have one of the same factor = 0.5 any_character_artifact = { artifact_type = animal_skull exists = var:animal_type var:animal_type = scope:activity.var:animal_type } } create_artifact_wall_skull_effect = { OWNER = root HUNTER = scope:animal_slayer LEGENDARY = no ANIMAL = scope:activity.var:animal_type } } 100 = { # Create Hide trigger = { has_royal_court = yes exists = scope:activity.var:animal_type scope:activity = { NOR = { exists = scope:activity.var:pelt_damaged has_activity_option = { category = special_type option = hunt_type_falconry } } } } modifier = { # Already have one factor = 0.5 trigger_if = { limit = { hunt_hide_big_trigger = { VARIABLE = scope:activity.var:animal_type } } any_character_artifact = { artifact_type = animal_hide_big exists = var:animal_type var:animal_type = scope:activity.var:animal_type } } trigger_else = { any_character_artifact = { artifact_type = animal_hide exists = var:animal_type var:animal_type = scope:activity.var:animal_type } } } create_artifact_animal_hide_effect = { OWNER = root HUNTER = scope:animal_slayer LEGENDARY = no ANIMAL = scope:activity.var:animal_type } } 5 = { # Create Trinket trigger = { scope:activity = { # Must be hare if Falconry trigger_if = { limit = { has_activity_option = { category = special_type option = hunt_type_falconry } } var:animal_type = flag:hare } NAND = { hunt_activity_deer_game_trigger = { VAR = var:animal_type } exists = scope:activity.var:female_quarry } NOT = { has_activity_option = { category = special_type option = hunt_type_falconry } } } } create_artifact_animal_trinket_effect = { OWNER = root HUNTER = scope:animal_slayer LEGENDARY = no ANIMAL = scope:activity.var:animal_type } } 5 = { # Create Feather trigger = { scope:activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } NOT = { scope:activity.var:animal_type = flag:hare } } create_artifact_bird_feather_effect = { OWNER = root HUNTER = root ANIMAL = scope:activity.var:animal_type } } } if = { limit = { exists = scope:newly_created_artifact } scope:activity = { add_to_variable_list = { name = artifact_rewards target = scope:newly_created_artifact } } } } } hunt_save_hostile_accomplice_effect = { if = { limit = { any_in_list = { list = $SCHEME$_agents is_ai = yes is_participant_in_activity = scope:activity NOR = { this = root trigger_if = { limit = { exists = scope:accomplice } this = scope:accomplice } } } } random_in_list = { list = $SCHEME$_agents limit = { is_ai = yes is_participant_in_activity = scope:activity NOR = { this = root trigger_if = { limit = { exists = scope:accomplice } this = scope:accomplice } } save_temporary_scope_as = $SCHEME$er_temp } weight = { base = 1 hunt_murderer_modifier = { MURDERER = scope:$SCHEME$er_temp TARGET = $VICTIM$ } } save_scope_as = accomplice } } if = { limit = { any_in_list = { list = $SCHEME$_agents is_ai = yes is_participant_in_activity = scope:activity NOR = { this = root trigger_if = { limit = { exists = scope:accomplice } this = scope:accomplice } } } } random_in_list = { list = $SCHEME$_agents limit = { is_ai = yes is_participant_in_activity = scope:activity NOR = { this = root trigger_if = { limit = { exists = scope:accomplice } this = scope:accomplice } } save_temporary_scope_as = $SCHEME$er_temp } weight = { base = 1 hunt_murderer_modifier = { MURDERER = scope:$SCHEME$er_temp TARGET = $VICTIM$ } } save_scope_as = accomplice_2 } } } hunt_invalidation_event_effect = { if = { limit = { is_in_list = attendees } if = { limit = { scope:activity = { has_activity_option = { category = special_type option = hunt_type_falconry } } } hunter_lifestyle_rank_up_check_effect = { FALCONRY = yes } } else = { hunter_lifestyle_rank_up_check_effect = { FALCONRY = no } } } if = { limit = { exists = scope:activity } custom_tooltip = hunt_ends_tt } custom_tooltip = hunt_invalidated_warning_tt } # Unified effect for adding sightings to counties hunt_create_sighting_effect = { if = { limit = { NOT = { exists = scope:sighting_county } } save_scope_as = sighting_county } # Track who can use the sighting set_variable = { name = animal_type years = 3 value = $ANIMAL$ } # Track who can use the sighting set_variable = { name = sighting_owner years = 3 value = $OWNER$ } # Stop sightings in the same place too regularly set_variable = { name = recent_sighting years = 10 } # Add sighting modifier add_county_modifier = { modifier = hunt_sighting_$TYPE$_modifier years = 3 desc = hunt_sighting_$TYPE$_modifier_custom_desc } } hunt_remove_sighting_effect = { # Remove sighting modifier if = { limit = { has_county_modifier = hunt_sighting_standard_modifier } remove_county_modifier = hunt_sighting_standard_modifier } if = { limit = { has_county_modifier = hunt_sighting_dangerous_modifier } remove_county_modifier = hunt_sighting_dangerous_modifier } if = { limit = { has_county_modifier = hunt_sighting_legendary_modifier } remove_county_modifier = hunt_sighting_legendary_modifier } if = { limit = { has_county_modifier = hunt_sighting_falconry_modifier } remove_county_modifier = hunt_sighting_falconry_modifier } # Remove sightings remove_variable = animal_type remove_variable = sighting_owner } ### Nerge nerge_rewards_effect = { if = { limit = { scope:activity.var:activity_special_type_progression < 25 } scope:host = { add_dread = unimpressive_nerge_dread_value } } else_if = { limit = { scope:activity.var:activity_special_type_progression < 50 } scope:host = { add_dread = regular_nerge_dread_value add_prestige = regular_nerge_prestige_value add_gold = regular_nerge_gold_value add_legitimacy = regular_nerge_legitimacy_value } scope:activity = { every_attending_character = { custom = every_nerge_character limit = { NOT = { this = scope:host } } add_prestige = regular_nerge_guest_prestige_value } } } else_if = { limit = { scope:activity.var:activity_special_type_progression < 75 } scope:host = { add_dread = impressive_nerge_dread_value add_prestige = impressive_nerge_prestige_value add_gold = impressive_nerge_gold_value add_legitimacy = impressive_nerge_legitimacy_value } scope:activity = { every_attending_character = { custom = every_nerge_character limit = { NOT = { this = scope:host } } add_prestige = impressive_nerge_guest_prestige_value } } } else_if = { limit = { scope:activity.var:activity_special_type_progression < 100 } scope:host = { add_dread = great_nerge_dread_value add_prestige = great_nerge_prestige_value add_gold = great_nerge_gold_value add_legitimacy = great_nerge_legitimacy_value } scope:activity = { every_attending_character = { custom = every_nerge_character limit = { NOT = { this = scope:host } } custom_tooltip = nerge_commander_trait_tt add_prestige = great_nerge_guest_prestige_value } } } else_if = { limit = { scope:activity.var:activity_special_type_progression >= 100 } scope:host = { add_dread = fantastic_nerge_dread_value add_prestige = fantastic_nerge_prestige_value add_gold = fantastic_nerge_gold_value add_legitimacy = fantastic_nerge_legitimacy_value add_martial_skill = fantastic_nerge_martial_value # MPO ACHIEVEMENT Shut up, Nerge if = { limit = { is_ai = no } add_achievement_global_variable_effect = { VARIABLE = mpo_shut_up_nerge_achievement_unlocked VALUE = yes } } } scope:activity = { every_attending_character = { custom = every_nerge_character limit = { NOT = { this = scope:host } } custom_tooltip = nerge_commander_trait_tt add_prestige = fantastic_nerge_guest_prestige_value add_martial_skill = fantastic_nerge_guest_martial_value } } } } hand_out_nerge_rewards = { if = { limit = { this = scope:host } scope:activity = { add_activity_log_entry = { key = finished_nerge_$OUTCOME$ character = scope:host show_in_conclusion = yes scope:host = { nerge_rewards_effect = yes } } } } else = { show_as_tooltip = { nerge_rewards_effect = yes } } } nerge_check_commander_trait_effect = { prev = { if = { limit = { NOT = { has_trait = $TRAIT$ } } add_trait_force_tooltip = $TRAIT$ } } } nerge_check_commander_trait_xp_effect = { prev = { if = { limit = { has_trait = $TRAIT$ } add_trait_xp = { trait = $TRAIT$ value = 10 } } } } nerge_commander_trait_effect = { scope:nerge_location = { switch = { trigger = terrain plains = { nerge_check_commander_trait_xp_effect = { TRAIT = open_terrain_expert } } farmlands = { nerge_check_commander_trait_xp_effect = { TRAIT = open_terrain_expert } } steppe = { nerge_check_commander_trait_xp_effect = { TRAIT = open_terrain_expert } } wetlands = { nerge_check_commander_trait_xp_effect = { TRAIT = rough_terrain_expert } } hills = { nerge_check_commander_trait_xp_effect = { TRAIT = rough_terrain_expert } } mountains = { nerge_check_commander_trait_xp_effect = { TRAIT = rough_terrain_expert } } desert = { nerge_check_commander_trait_xp_effect = { TRAIT = rough_terrain_expert } } desert_mountains = { nerge_check_commander_trait_xp_effect = { TRAIT = desert_warrior } } oasis = { nerge_check_commander_trait_xp_effect = { TRAIT = desert_warrior } } drylands = { nerge_check_commander_trait_xp_effect = { TRAIT = desert_warrior } } jungle = { nerge_check_commander_trait_xp_effect = { TRAIT = jungle_stalker } } forest = { nerge_check_commander_trait_xp_effect = { TRAIT = forest_fighter } } taiga = { nerge_check_commander_trait_xp_effect = { TRAIT = forest_fighter } } floodplains = { nerge_check_commander_trait_xp_effect = { TRAIT = forder } } } } if = { limit = { number_of_commander_traits < 3 } scope:nerge_location = { switch = { trigger = terrain plains = { nerge_check_commander_trait_effect = { TRAIT = open_terrain_expert } } farmlands = { nerge_check_commander_trait_effect = { TRAIT = open_terrain_expert } } steppe = { nerge_check_commander_trait_effect = { TRAIT = open_terrain_expert } } wetlands = { nerge_check_commander_trait_effect = { TRAIT = rough_terrain_expert } } hills = { nerge_check_commander_trait_effect = { TRAIT = rough_terrain_expert } } mountains = { nerge_check_commander_trait_effect = { TRAIT = rough_terrain_expert } } desert = { nerge_check_commander_trait_effect = { TRAIT = rough_terrain_expert } } desert_mountains = { nerge_check_commander_trait_effect = { TRAIT = desert_warrior } } oasis = { nerge_check_commander_trait_effect = { TRAIT = desert_warrior } } drylands = { nerge_check_commander_trait_effect = { TRAIT = desert_warrior } } jungle = { nerge_check_commander_trait_effect = { TRAIT = jungle_stalker } } forest = { nerge_check_commander_trait_effect = { TRAIT = forest_fighter } } taiga = { nerge_check_commander_trait_effect = { TRAIT = forest_fighter } } floodplains = { nerge_check_commander_trait_effect = { TRAIT = forder } } } } } } nerge_progression_effect = { save_temporary_scope_as = root_scope save_scope_value_as = { name = amount_of_players value = { value = 1 scope:activity = { every_attending_character = { limit = { is_ai = no } add = 1 } subtract = 1 } min = 1 } } if = { limit = { OR = { is_ai = no AND = { NOT = { involved_activity = { any_attending_character = { is_ai = no } } } scope:root_scope = involved_activity.activity_host } } } scope:activity ?= { if = { limit = { exists = var:activity_special_type_progression } change_variable = { name = activity_special_type_progression add = { value = $VALUE$ multiply = nerge_score_multiplier_value divide = scope:amount_of_players } } } } if = { limit = { $VALUE$ <= 2 } custom_tooltip = nerge_outcome_boost_tiny } else_if = { limit = { $VALUE$ <= 5 } custom_tooltip = nerge_outcome_boost_small } else_if = { limit = { $VALUE$ <= 9 } custom_tooltip = nerge_outcome_boost_medium } else_if = { limit = { $VALUE$ >= 13 } custom_tooltip = nerge_outcome_boost_large } } } nerge_progression_tiny_effect = { nerge_progression_effect = { VALUE = 2 } } nerge_progression_small_effect = { nerge_progression_effect = { VALUE = 5 } } nerge_progression_medium_effect = { nerge_progression_effect = { VALUE = 9 } } nerge_progression_large_effect = { nerge_progression_effect = { VALUE = 13 } }