diff --git a/common/scripted_triggers/00_building_requirement_triggers.txt b/common/scripted_triggers/00_building_requirement_triggers.txt new file mode 100644 index 00000000..7196420d --- /dev/null +++ b/common/scripted_triggers/00_building_requirement_triggers.txt @@ -0,0 +1,940 @@ +###################################################################### +# Government +###################################################################### + +building_requirement_tribal = { + scope:holder ?= { + OR = { + government_has_flag = government_is_tribal + government_has_flag = government_is_nomadic + government_has_flag = government_is_wanua + } + } +} + +building_requirement_wanua = { + scope:holder ?= { + government_has_flag = government_is_wanua + } +} + +building_requirement_tribal_holding_in_county = { + NOT = { + county = { + any_county_province = { + has_holding_type = tribal_holding + } + } + } +} + +building_requirement_nomad = { + scope:holder ?= { + government_has_flag = government_is_nomadic + } +} + +building_requirement_nomad_holding_in_county = { + NOT = { + county = { + any_county_province = { + has_holding_type = nomad_holding + } + } + } +} + +building_requirement_herder = { + scope:holder ?= { + government_has_flag = government_is_herder + } +} + +building_requirement_herder_holding_in_county = { + NOT = { + county = { + any_county_province = { + has_holding_type = herder_holding + } + } + } +} + +###################################################################### +# Holding Level +###################################################################### + +building_requirement_castle_city_church = { + trigger_if = { + limit = { has_holding_type = castle_holding } + has_building_or_higher = castle_$LEVEL$ + } + trigger_else_if = { + limit = { has_holding_type = city_holding } + has_building_or_higher = city_$LEVEL$ + } + trigger_else_if = { + limit = { has_holding_type = church_holding } + has_building_or_higher = temple_$LEVEL$ + } + trigger_else_if = { + limit = { has_holding_type = temple_citadel_holding } + has_building_or_higher = temple_citadel_$LEVEL$ + } + trigger_else = { + custom_description = { + text = "building_requirement_castle_city_church_failed" + always = no + } + } +} + +building_requirement_castle_city_church_temple_citadel_tribe = { + trigger_if = { + limit = { has_holding_type = castle_holding } + has_building_or_higher = castle_$LEVEL$ + } + trigger_else_if = { + limit = { has_holding_type = city_holding } + has_building_or_higher = city_$LEVEL$ + } + trigger_else_if = { + limit = { has_holding_type = church_holding } + has_building_or_higher = temple_$LEVEL$ + } + trigger_else_if = { + limit = { has_holding_type = temple_citadel_holding } + has_building_or_higher = temple_citadel_$LEVEL$ + } + trigger_else_if = { + limit = { has_holding_type = tribal_holding } + trigger_if = { + limit = { + $LEVEL$ > 1 + } + has_building_or_higher = tribe_02 + } + trigger_else = { has_building_or_higher = tribe_01 } + } + trigger_else = { + custom_description = { + text = "building_requirement_castle_city_church_tribe_failed" + always = no + } + } +} + +###################################################################### +# Special +###################################################################### + +building_hall_of_heroes_requirement = { + custom_description = { + text = building_requirement_hall_of_heroes_failed + has_variable = hall_of_heroes + scope:holder = { + OR = { + has_religion = religion:baltic_religion + has_religion = religion:slavic_religion + has_religion = religion:finno_ugric_religion + has_religion = religion:siberian_religion + } + } + } +} + +building_university_requirement = { + #has_variable = university +} + +###################################################################### +# Terrain +###################################################################### + +building_common_tradeport_requirement_terrain = { + OR = { + is_coastal = yes + is_riverside_province = yes + } +} + +building_pastures_requirement_terrain = { + OR = { + terrain = farmlands + terrain = plains + terrain = steppe + terrain = desert + terrain = drylands + terrain = oasis + terrain = mountains + terrain = desert_mountains + terrain = hills + terrain = tells + terrain = floodplains + AND = { + terrain = jungle + NOT = { geographical_region = world_innovation_elephants } + } + } +} + +building_hunting_grounds_requirement_terrain = { + OR = { + terrain = plains + terrain = drylands + terrain = steppe + terrain = hills + terrain = tells + terrain = taiga + terrain = forest + terrain = jungle + terrain = wetlands + } +} + +building_orchards_requirement_terrain = { + OR = { + terrain = floodplains + terrain = oasis + has_building_or_higher = qanats_05 + culture = { + has_cultural_parameter = vegetarian_fruit_orchard_allowed + } + } +} + +building_farm_estates_requirement_terrain = { + terrain = farmlands +} + +building_tell_mines_requirement_terrain = { + terrain = tells +} +building_military_camps_requirement_terrain = { + #OR = { # All Terrains + # terrain = farmlands + # terrain = plains + # terrain = drylands + # terrain = desert + # terrain = oasis + # terrain = floodplains + # terrain = steppe + # terrain = mountains + # terrain = desert_mountains + # terrain = wetlands + # terrain = forest + # terrain = taiga + # terrain = jungle + # terrain = hills + #} +} + +building_regimental_grounds_requirement_terrain = { + OR = { + terrain = floodplains + terrain = farmlands + } +} + +building_ramparts_requirement_terrain = { + OR = { + terrain = taiga + terrain = forest + terrain = jungle + } +} + +building_curtain_walls_requirement_terrain = { + OR = { + terrain = farmlands + terrain = plains + terrain = wetlands + terrain = floodplains + } +} + +building_watchtowers_requirement_terrain = { + OR = { + terrain = desert + terrain = drylands + terrain = oasis + terrain = steppe + } +} + +building_paddy_fields_requirement_terrain = { + custom_tooltip = { + text = building_paddy_fields_requirement_terrain_tt + OR = { + terrain = terraced_hills + AND = { + terrain = floodplains + OR = { + geographical_region = graphical_east_asia + geographical_region = custom_viet_lands + } + } + AND = { + terrain = wetlands + county.culture = { has_cultural_parameter = champa_rice_wet_land_paddies } + } + AND = { + OR = { + terrain = hills + terrain = jungle + } + county.culture = { has_cultural_parameter = rice_cultivators_can_construct_paddy_fields_in_hills_and_jungle } + } + } + } +} + +building_cereal_fields_requirement_terrain = { + OR = { + terrain = farmlands + terrain = plains + terrain = drylands + AND = { + terrain = floodplains + NOR = { + geographical_region = graphical_east_asia + geographical_region = custom_viet_lands + } + } + county = { + OR = { + has_county_modifier = fertile_desert_mountains_modifier + has_county_modifier = dodekapolis_modifier + } + } + + has_building_or_higher = qanats_05 + } +} + +building_outposts_requirement_terrain = { + OR = { + terrain = wetlands + terrain = taiga + terrain = forest + terrain = jungle + } +} + +building_barracks_requirement_terrain = { + #OR = { + # terrain = farmlands + # terrain = plains + # terrain = drylands + # terrain = floodplains # new + # terrain = hills + # terrain = mountains + # terrain = forest + # terrain = taiga + # terrain = jungle + # terrain = wetlands + # terrain = steppe + #} +} + +building_camel_farms_requirement_terrain = { + geographical_region = world_innovation_camels # new + OR = { + terrain = desert + terrain = desert_mountains + terrain = oasis + terrain = floodplains + terrain = drylands # new + } +} + +building_stables_requirement_terrain = { + # All terrains +} + +building_smiths_requirement_terrain = { + # All terrains +} + +building_workshops_requirement_terrain = { + # All terrains +} + +building_logging_camps_requirement_terrain = { + OR = { + terrain = taiga + terrain = forest + terrain = jungle + } +} + +building_peat_quarries_requirement_terrain = { + terrain = wetlands +} + +building_hill_farms_requirement_terrain = { + OR = { + terrain = hills + terrain = tells + terrain = terraced_hills + } +} + +building_elephant_pens_requirement_terrain = { + terrain = jungle + OR = { + geographical_region = world_innovation_elephants + culture = { has_cultural_parameter = elephant_pens_building_bonuses } + } +} + +building_horse_pastures_requirement_terrain = { + OR = { + terrain = steppe + geographical_region = world_steppe_east + culture = { has_cultural_parameter = unlock_horse_pastures_building } + } +} + +building_plantations_requirement_terrain = { + OR = { + terrain = drylands + terrain = desert + terrain = oasis + } +} + +building_quarries_requirement_terrain = { + OR = { + terrain = mountains + terrain = desert_mountains + culture = { has_cultural_parameter = can_build_quarries_everywhere } + } +} + +building_warrior_lodges_requirement_terrain = { + OR = { + AND = { + OR = { + terrain = mountains + terrain = desert_mountains + terrain = hills + terrain = tells + } + NOT = { geographical_region = world_horse_buildings_in_hills_and_mountains } + } + culture = { has_cultural_parameter = warrior_lodges_lift_restrictions } + } +} + +building_hillside_grazing_requirement_terrain = { + OR = { + terrain = mountains + terrain = desert_mountains + terrain = hills + terrain = tells + } + geographical_region = world_horse_buildings_in_hills_and_mountains +} + +building_wind_furnace_requirement_terrain = { + geographical_region = world_india + OR = { + is_coastal = yes + AND = { + scope:holder.top_liege = { + any_realm_county = { + any_county_province = { + has_building_or_higher = konasamudram_mines_01 + } + } + } + duchy = { + any_de_jure_county = { + any_county_province = { + has_building_or_higher = konasamudram_mines_01 + } + } + } + } + + } + + scope:holder.culture = { has_innovation = innovation_wootz_steel } +} + +building_hill_forts_requirement_terrain = { + OR = { + terrain = mountains + terrain = desert_mountains + terrain = hills + terrain = tells + terrain = terraced_hills + } +} + +building_windmills_requirement_terrain = { + county ?= { + any_county_province = { + OR = { + terrain = farmlands + terrain = plains + terrain = hills + terrain = tells + is_coastal = yes + } + } + } +} + +building_watermills_requirement_terrain = { + county ?= { + any_county_province = { + OR = { + terrain = mountains + terrain = wetlands + terrain = forest + terrain = taiga + terrain = jungle + terrain = terraced_hills + is_riverside_province = yes + } + } + } +} + +building_caravanserai_requirement_terrain = { + county ?= { + any_county_province = { + OR = { + terrain = drylands + terrain = desert + terrain = oasis + terrain = floodplains + terrain = steppe + terrain = desert_mountains + AND = { + geographical_region = world_europe_west_iberia + has_global_variable = fp2_struggle_conciliation_ending + } + } + } + } +} + +building_qanats_requirement_terrain = { + county ?= { + culture = { has_cultural_parameter = unlocks_qanat_building } + county_has_province_with_terrain = { + terrain = hills + terrain = tells + terrain = mountains + terrain = desert_mountains + terrain = desert + terrain = drylands + } + } +} + +building_hospices_requirement_terrain = { + +} + +has_any_special_mine_trigger = { + has_building_with_flag = special_mine + #OR = { + # has_building_or_higher = rammelsberg_mines_01 + # has_building_or_higher = kutna_hora_mines_01 + # has_building_or_higher = kremnica_mines_01 + # has_building_or_higher = falun_mines_01 + # has_building_or_higher = schwaz_mines_01 + # has_building_or_higher = argentiera_mines_01 + # has_building_or_higher = kollur_mines_01 + # has_building_or_higher = siderokausia_mines_01 + # has_building_or_higher = mali_mines_01 + # has_building_or_higher = konasamudram_mines_01 + # has_building_or_higher = dean_mines_01 + # has_building_or_higher = phnom_dek_mines_01 + # has_building_or_higher = zawar_mines_01 + # has_building_or_higher = takkeda_mines_01 + # has_building_or_higher = khetri_mines_01 + # has_building_or_higher = taghaza_mines_01 + # has_building_or_higher = ijil_mines_01 + # has_building_or_higher = turda_mines_01 + # has_building_or_higher = phocaea_mines_01 + # has_building_or_higher = pansjhir_mines_01 + # has_building_or_higher = trepca_mines_01 + # has_building_or_higher = rudnik_mines_01 + # has_building_or_higher = cevennes_mines_01 + # has_building_or_higher = allaq_mines_01 + # has_building_or_higher = verespatak_mines_01 + # has_building_or_higher = nishapur_mines_01 + # has_building_or_higher = srebrenica_mines_01 + # has_building_or_higher = ratnapura_mines_01 + # has_building_or_higher = mogok_mines_01 + #} +} + +###################################################################### +# Baronies that cannot have a holding (intended for Sahara) +###################################################################### + +barony_cannot_construct_holding = { + barony.title_province = { + OR = { + terrain = desert + terrain = desert_mountains + } + geographical_region = world_africa_sahara + } +} + +###################################################################### +# Triggers for add_random_building_effect script effect +###################################################################### + +# is any existing building of the checked tier? (e.g. 02) +has_any_building_of_level_trigger = { + OR = { + has_building = outposts_$BUILDING_LEVEL$ + has_building = logging_camps_$BUILDING_LEVEL$ + has_building = peat_quarries_$BUILDING_LEVEL$ + has_building = hill_forts_$BUILDING_LEVEL$ + has_building = plantations_$BUILDING_LEVEL$ + has_building = quarries_$BUILDING_LEVEL$ + has_building = hunting_grounds_$BUILDING_LEVEL$ + has_building = military_camps_$BUILDING_LEVEL$ + has_building = pastures_$BUILDING_LEVEL$ + has_building = ramparts_$BUILDING_LEVEL$ + has_building = curtain_walls_$BUILDING_LEVEL$ + has_building = watchtowers_$BUILDING_LEVEL$ + has_building = cereal_fields_$BUILDING_LEVEL$ + has_building = barracks_$BUILDING_LEVEL$ + has_building = camel_farms_$BUILDING_LEVEL$ + has_building = hill_farms_$BUILDING_LEVEL$ + has_building = elephant_pens_$BUILDING_LEVEL$ + has_building = common_tradeport_$BUILDING_LEVEL$ + has_building = orchards_$BUILDING_LEVEL$ + has_building = farm_estates_$BUILDING_LEVEL$ + has_building = regimental_grounds_$BUILDING_LEVEL$ + has_building = monastic_schools_$BUILDING_LEVEL$ + } +} + +# is any existing building a lower tier than compare building? +has_lesser_building_trigger = { + trigger_if = { + limit = { has_building_or_higher = $COMPARE$_02 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 01 } + } + trigger_else_if = { + limit = { has_building_or_higher = $COMPARE$_03 } + OR = { + has_any_building_of_level_trigger = { BUILDING_LEVEL = 01 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 02 } + } + } + trigger_else_if = { + limit = { has_building_or_higher = $COMPARE$_04 } + OR = { + has_any_building_of_level_trigger = { BUILDING_LEVEL = 01 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 02 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 03 } + } + } + trigger_else_if = { + limit = { has_building_or_higher = $COMPARE$_05 } + OR = { + has_any_building_of_level_trigger = { BUILDING_LEVEL = 01 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 02 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 03 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 04 } + } + } + trigger_else_if = { + limit = { has_building_or_higher = $COMPARE$_06 } + OR = { + has_any_building_of_level_trigger = { BUILDING_LEVEL = 01 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 02 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 03 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 04 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 05 } + } + } + trigger_else_if = { + limit = { has_building_or_higher = $COMPARE$_07 } + OR = { + has_any_building_of_level_trigger = { BUILDING_LEVEL = 01 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 02 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 03 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 04 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 05 } + has_any_building_of_level_trigger = { BUILDING_LEVEL = 06 } + } + } + trigger_else = { always = no } # Must already be highest tier possible +} + +# can this building be added? +add_random_building_trigger = { + building_$BUILDING$_requirement_terrain = yes # terrain fits building type + trigger_if = { # if all slots are full, this building type exists already + limit = { free_building_slots = 0 } + has_building_or_higher = $BUILDING$_01 + NOT = { + has_lesser_building_trigger = { COMPARE = $BUILDING$ } + } + } + trigger_else = { + NOT = { has_building_or_higher = $BUILDING$_01 } + } +} + +# Innovation and holding level triggers for most economic buildings +generic_economic_building_innovation_trigger = { + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_01 } + scope:build_owner.culture = { has_innovation = innovation_crop_rotation } + } + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_02 } + building_requirement_castle_city_church = { LEVEL = 02 } + scope:build_owner.culture = { has_innovation = innovation_manorialism } + } + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_04 } + building_requirement_castle_city_church = { LEVEL = 03 } + scope:build_owner.culture = { has_innovation = innovation_guilds } + } + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_06 } + building_requirement_castle_city_church = { LEVEL = 04 } + scope:build_owner.culture = { has_innovation = innovation_cranes } + } +} + +# Innovation and holding level triggers for most fortification buildings +generic_fortification_building_innovations_trigger = { + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_01 } + scope:build_owner.culture = { has_innovation = innovation_motte } + } + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_02 } + building_requirement_castle_city_church = { LEVEL = 02 } + scope:build_owner.culture = { has_innovation = innovation_battlements } + } + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_04 } + building_requirement_castle_city_church = { LEVEL = 03 } + scope:build_owner.culture = { has_innovation = innovation_hoardings } + } + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_06 } + building_requirement_castle_city_church = { LEVEL = 04 } + scope:build_owner.culture = { has_innovation = innovation_machicolations } + } +} + +# Innovation and holding level triggers for most recruitment buildings +generic_recruitment_building_innovations_trigger = { + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_01 } + scope:build_owner.culture = { has_innovation = innovation_barracks } + } + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_02 } + building_requirement_castle_city_church = { LEVEL = 02 } + scope:build_owner.culture = { has_innovation = innovation_burhs } + } + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_04 } + building_requirement_castle_city_church = { LEVEL = 03 } + scope:build_owner.culture = { has_innovation = innovation_castle_baileys } + } + trigger_if = { + limit = { has_building_or_higher = $BUILDING$_06 } + building_requirement_castle_city_church = { LEVEL = 04 } + scope:build_owner.culture = { has_innovation = innovation_royal_armory } + } +} + +islamic_special_building_trigger = { + OR = { + has_building = holy_site_great_mosque_of_djenne_01 + has_building = holy_site_great_mosque_of_samarra_01 + has_building = holy_site_prophetic_mosque_01 + has_building = hagia_sophia_02 + has_building = the_friday_mosque_01 # shared zoroastrian + has_building = holy_site_great_mosque_of_cordoba_01 # shared christian + has_building_or_higher = damascus_mosque_01 + has_building_or_higher = yazd_mosque_01 + } +} + +christian_special_building_trigger = { + OR = { + has_building = holy_site_cologne_cathedral_01 + has_building = holy_site_canterbury_cathedral_01 + has_building = holy_site_canterbury_cathedral_02 + has_building = holy_site_canterbury_cathedral_03 + has_building = temple_of_uppsala_01 + has_building = temple_of_uppsala_02 + has_building = lund_cathedral_01 + has_building = holy_site_great_mosque_of_cordoba_01 # shared muslim + has_building_or_higher = cluny_abbey_01 + has_building_or_higher = beta_giyorgis_01 + has_building_or_higher = holy_wisdom_01 + has_building_or_higher = duomo_florence_01 + has_building_or_higher = wawel_cathedral_01 + has_building_or_higher = holy_site_st_peters_basilica_01 + has_building_or_higher = mont_st_michel_01 + } +} + +eastern_special_building_trigger = { + OR = { + has_building = buddhas_of_bamian_01 + has_building = brihadeeswarar_temple_01 + has_building = shwedagon_pagoda_01 + has_building = ananda_temple_01 + has_building = khajuraho_01 + has_building_or_higher = jokhang_01 + has_building_or_higher = konark_temple_01 + has_building_or_higher = vatapi_caves_01 + has_building_or_higher = sanchi_stupa_01 + has_building_or_higher = boudhanath_01 + } +} + +# Religious special building triggers +religious_special_building_exclusion_trigger = { # checks if any special buildings present do not fit your religion + OR = { + AND = { # Generic + NOT = { + barony = { is_holy_site_of = holder.faith } + } + OR = { + has_building = holy_site_cathedral_01 + has_building = holy_site_mosque_01 + has_building = holy_site_pagan_grand_temple_01 + has_building = holy_site_indian_grand_temple_01 + has_building = holy_site_other_grand_temple_01 + has_building = hagia_sophia_01 + has_building = holy_site_mahabodhi_temple_01 + has_building = holy_site_imam_ali_mosque_01 + has_building = holy_site_great_mosque_of_mecca_01 + islamic_special_building_trigger = yes + christian_special_building_trigger = yes + has_building = holy_site_buddhist_grand_temple_01 + has_building = holy_site_japanese_temple_01 + has_building = holy_site_chinese_temple_01 + has_building = holy_site_se_asia_pagan_temple_01 + } + } + AND = { # Islamic + NOT = { barony.holder.religion = religion:islam_religion } + islamic_special_building_trigger = yes + } + AND = { # Christian + NOT = { barony.holder.religion = religion:christianity_religion } + christian_special_building_trigger = yes + } + AND = { # Islamic/Zoroastrian + NOT = { barony.holder.religion = religion:zoroastrianism_religion } + has_building = the_friday_mosque_01 # shared muslim + } + AND = { # Eastern family + NOR = { + barony.holder.religion = religion:hinduism_religion + barony.holder.religion = religion:buddhism_religion + barony.holder.religion = religion:jainism_religion + barony.holder.religion = religion:taoism_religion + barony.holder.religion = religion:zoroastrianism_religion + } + eastern_special_building_trigger = yes + } + # Judaism + AND = { + barony.holder.religion = religion:judaism_religion + has_building = dome_of_the_rock_01 + } + AND = { + NOT = { barony.holder.religion = religion:judaism_religion } + has_building = temple_in_jerusalem_01 + } + } +} + +building_murex_farm_requirement_terrain = { + is_county_capital = yes + is_coastal = yes + geographical_region = mediteranean_coast + NOR = { + this.barony = title:b_salmydessus + this.barony = title:b_chelai + } +} + +building_waterworks_requirement_terrain = { + is_county_capital = yes + NOR = { + terrain = mountains + terrain = desert_mountains + } + scope:holder.culture = { has_cultural_parameter = unlocks_waterworks_buildings } +} + +building_spice_plantation_requirement_terrain = { + is_county_capital = yes + + # cloves, nutmeg: present on Muluku Islands + # cinnamomum verum: India, Sri Lanka, Bangladesh and Myanmar + # cinnamomum malabathrum: Eastern Himalayas & Western Ghats + OR = { + geographical_region = world_asia_southeast_mainland + geographical_region = world_asia_borneo + geographical_region = world_asia_sulawesi_maluku + geographical_region = world_asia_indonesia + geographical_region = world_india + } + OR = { + terrain = jungle + terrain = farmlands + terrain = terraced_hills + terrain = plains + } +} + +building_examination_hall_requirement_terrain = { + is_county_capital = yes + + scope:holder = { + government_has_flag = government_has_merit + } +} + +building_breweries_requirement = { + OR = { + AND = { + has_building_or_higher = temple_$NUMBER$ + OR = { + faith = faith:catholic + faith = { has_doctrine_parameter = allows_brewery } + } + } + AND = { + has_building_or_higher = city_$NUMBER$ + culture = { has_cultural_parameter = allows_brewery } + } + } +} + +#building_powder_magazine_requirement = { +# scope:build_owner.culture = { +# OR = { +# has_innovation = innovation_gunpowder +# has_innovation = innovation_fire_medicine +# } +# } +#}