# Author(s): AngriestBird # Effect: free_trait_picks_used # Purpose: Displays the number of free_trait_picks for a MIO to ensure there is a display and an notification to the player to make it easier to know when and why it's free free_trait_picks_used = { custom_effect_tooltip = number_of_mio_free_trait_picks add_to_variable = { free_trait_picks = -1 } if = { limit = { check_variable = { free_trait_picks = 0 } } clear_variable = free_trait_picks } } expenditure_for_mio_upgrade = { if = { limit = { check_variable = { free_trait_picks > 0 } } free_trait_picks_used = yes } else = { FROM = { small_expenditure = yes } } } expenditure_medium_for_mio_upgrade = { if = { limit = { check_variable = { free_trait_picks > 0 } } free_trait_picks_used = yes } else = { FROM = { medium_expenditure = yes } } } expenditure_large_for_mio_upgrade = { if = { limit = { check_variable = { free_trait_picks > 0 } } free_trait_picks_used = yes } else = { FROM = { large_expenditure = yes } } } # MIO Unlock Catalog — master token array seeded in setup_global_arrays (00_startup_effects.txt). update_mio_catalog_dirty_variable = { if = { limit = { check_variable = { global.mio_catalog_dirty_update_var < 10000 } } add_to_variable = { global.mio_catalog_dirty_update_var = 1 } } else = { set_variable = { global.mio_catalog_dirty_update_var = 1 } } } mio_catalog_rebuild_visible_yes = { clear_array = mio_catalog_visible_array set_temp_variable = { mio_catalog_iter = 1 } while_loop_effect = { limit = { check_variable = { mio_catalog_iter < 24 } } set_temp_variable = { v = mio_catalog_iter } if = { limit = { mio_catalog_entry_available_yes = yes } add_to_array = { mio_catalog_visible_array = mio_catalog_iter } } add_to_temp_variable = { mio_catalog_iter = 1 } } } # Caller charges 50 PP. Per-entry XP cost + the bare-name `_unlocked` flag are set here because # meta_effect can't strip the GENERIC_ prefix from the token key. The meta_effect tail handles the # only piece that needs the full token name (`mio:`). mio_catalog_entry_unlock_yes = { if = { limit = { check_variable = { v = 1 } } set_country_flag = krepost_state_defense_bureau_unlocked } else_if = { limit = { check_variable = { v = 2 } } army_experience = -50 set_country_flag = north_plains_heavy_industries_unlocked } else_if = { limit = { check_variable = { v = 3 } } set_country_flag = sentinel_grid_networks_unlocked } else_if = { limit = { check_variable = { v = 4 } } set_country_flag = brunn_heavy_engineering_werke_unlocked } else_if = { limit = { check_variable = { v = 5 } } set_country_flag = reichswerke_konstrukt_dynamik_unlocked } else_if = { limit = { check_variable = { v = 6 } } set_country_flag = vector_defense_labs_unlocked } else_if = { limit = { check_variable = { v = 7 } } army_experience = -75 set_country_flag = marshall_tractor_works_unlocked } else_if = { limit = { check_variable = { v = 8 } } army_experience = -100 set_country_flag = vanderlind_hartwell_systems_unlocked } else_if = { limit = { check_variable = { v = 9 } } air_experience = -50 set_country_flag = mil_kamov_rotorworks_unlocked } else_if = { limit = { check_variable = { v = 10 } } set_country_flag = helitech_avionique_unlocked } else_if = { limit = { check_variable = { v = 11 } } air_experience = -100 set_country_flag = aurora_aerodynamics_corporation_unlocked } else_if = { limit = { check_variable = { v = 12 } } air_experience = -75 set_country_flag = societe_europeenne_daerostructures_unlocked } else_if = { limit = { check_variable = { v = 13 } } set_country_flag = southwestern_aerospace_dynamics_bureau_unlocked } else_if = { limit = { check_variable = { v = 14 } } set_country_flag = skyforge_autonomous_systems_unlocked } else_if = { limit = { check_variable = { v = 15 } } set_country_flag = compagnie_aeronatique_darmement_unlocked } else_if = { limit = { check_variable = { v = 16 } } set_country_flag = whitehall_strategic_solutions_unlocked } else_if = { limit = { check_variable = { v = 17 } } navy_experience = -100 set_country_flag = triton_maritime_defense_group_unlocked } else_if = { limit = { check_variable = { v = 18 } } set_country_flag = eastern_maritime_shipbuilding_group_unlocked } else_if = { limit = { check_variable = { v = 19 } } set_country_flag = sevmorprom_submarine_yards_unlocked } else_if = { limit = { check_variable = { v = 20 } } set_country_flag = halland_civic_engineering_group_unlocked } else_if = { limit = { check_variable = { v = 21 } } set_country_flag = second_academy_missile_bureau_unlocked } else_if = { limit = { check_variable = { v = 22 } } set_country_flag = western_orbital_systems_bureau_unlocked } else_if = { limit = { check_variable = { v = 23 } } set_country_flag = central_heavy_atomics_power_unlocked } meta_effect = { text = { unlock_military_industrial_organization_tooltip = mio:[ORG] } ORG = "[?global.mio_catalog_all_tokens^v.GetTokenKey]" } } mio_accumulate_merge_sums = { set_variable = { mio_merge_counter = 0 } while_loop_effect = { limit = { check_variable = { mio_merge_counter < 100 } has_mio_number_of_completed_traits > var:mio_merge_counter } add_to_variable = { mio_merge_counter = 1 } } ROOT = { add_to_variable = { mio_merge_trait_sum = PREV.mio_merge_counter } add_to_variable = { mio_merge_picks_sum = PREV.mio_merge_counter } } if = { limit = { check_variable = { free_trait_picks > 0 } } ROOT = { add_to_variable = { mio_merge_picks_sum = PREV.free_trait_picks } } } clear_variable = mio_merge_counter } ITA_alenia_aermacchi_merger_carry_traits = { set_variable = { mio_merge_trait_sum = 0 } set_variable = { mio_merge_picks_sum = 0 } mio:ITA_alenia_aeronautica = { mio_accumulate_merge_sums = yes } mio:ITA_aermacchi_manufacturer = { mio_accumulate_merge_sums = yes } if = { limit = { check_variable = { mio_merge_trait_sum > 0 } } mio:ITA_alenia_aermacchi = { add_mio_size = ROOT.mio_merge_trait_sum } } if = { limit = { check_variable = { mio_merge_picks_sum > 0 } } mio:ITA_alenia_aermacchi = { add_to_variable = { free_trait_picks = ROOT.mio_merge_picks_sum } } } clear_variable = mio_merge_trait_sum clear_variable = mio_merge_picks_sum } ITA_finmeccanica_restructuring_carry_traits = { set_variable = { mio_merge_trait_sum = 0 } set_variable = { mio_merge_picks_sum = 0 } mio:ITA_alenia_aermacchi = { mio_accumulate_merge_sums = yes } mio:ITA_finmeccanica = { mio_accumulate_merge_sums = yes } mio:ITA_agusta_westland = { mio_accumulate_merge_sums = yes } if = { limit = { check_variable = { mio_merge_trait_sum > 0 } } mio:ITA_leonardo = { add_mio_size = ROOT.mio_merge_trait_sum } } if = { limit = { check_variable = { mio_merge_picks_sum > 0 } } mio:ITA_leonardo = { add_to_variable = { free_trait_picks = ROOT.mio_merge_picks_sum } } } clear_variable = mio_merge_trait_sum clear_variable = mio_merge_picks_sum } GER_airbus_change_carry_traits = { mio:GER_Eurocopter_helicopters_tank_manufacturer = { mio_accumulate_merge_sums = yes } if = { limit = { check_variable = { mio_merge_trait_sum > 0 } } mio:GER_airbus_defence_aircraft_manufacturer = { add_mio_size = ROOT.mio_merge_trait_sum } } if = { limit = { check_variable = { mio_merge_picks_sum > 0 } } mio:GER_airbus_defence_aircraft_manufacturer = { add_to_variable = { free_trait_picks = ROOT.mio_merge_picks_sum } } } clear_variable = mio_merge_trait_sum clear_variable = mio_merge_picks_sum }