From 0434c1a71e71d03241790f1c67201cbbe600f96b Mon Sep 17 00:00:00 2001 From: trashb0at Date: Thu, 12 Jun 2025 13:09:26 -0400 Subject: [PATCH] tell mines --- .../N3OW_standard_economy_buildings.txt | 442 ++++++++++++++++++ common/holdings/00_holdings.txt | 188 ++++++++ common/holdings/_holdings.info | 71 +++ .../00_building_requirement_triggers.txt | 15 +- .../icon_building_tell_mines.dds | 3 + .../english/NEOW_buildings_l_english.yml | 19 + 6 files changed, 737 insertions(+), 1 deletion(-) create mode 100644 common/buildings/N3OW_standard_economy_buildings.txt create mode 100644 common/holdings/00_holdings.txt create mode 100644 common/holdings/_holdings.info create mode 100644 gfx/interface/icons/building_types/icon_building_tell_mines.dds create mode 100644 localization/english/NEOW_buildings_l_english.yml diff --git a/common/buildings/N3OW_standard_economy_buildings.txt b/common/buildings/N3OW_standard_economy_buildings.txt new file mode 100644 index 00000000..6ef450e8 --- /dev/null +++ b/common/buildings/N3OW_standard_economy_buildings.txt @@ -0,0 +1,442 @@ +################################### +# N3OW Standard Economy Buildings # +################################### + +### tell mines + +tell_mines_01 = { + construction_time = quick_construction_time + + can_construct_potential = { + building_tell_mines_requirement_terrain = yes + building_requirement_castle_city_church = { LEVEL = 01 } + } + + can_construct_showing_failures_only = { + building_requirement_tribal = no + } + + cost_gold = cheap_building_tier_1_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_1 + } + character_culture_modifier = { + parameter = quarries_building_bonuses + heavy_infantry_maintenance_mult = -0.01 + pikemen_maintenance_mult = -0.01 + heavy_cavalry_maintenance_mult = -0.01 + men_at_arms_recruitment_cost = -0.01 + } + county_culture_modifier = { + parameter = quarries_building_bonuses + levy_size = 0.01 + } + province_culture_modifier = { + parameter = ancient_miners_quarries_building_bonuses + monthly_income = poor_building_tax_tier_1 + } + + next_building = tell_mines_02 + + type_icon = "icon_building_tell_mines.dds" + + ai_value = { + base = 12 # A little bit higher than normal, they're very handy for further development + ai_tier_1_building_modifier = yes + ai_tier_1_economical_building_preference_modifier = yes + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_quarries_improvement_from_culture_modifier = yes + modifier = { + factor = 0 + scope:holder = { + government_has_flag = government_is_special_republic + } + NOT = { + has_building_or_higher = guild_halls_01 + } + } + } +} + +tell_mines_02 = { + construction_time = quick_construction_time + + can_construct_potential = { + building_tell_mines_requirement_terrain = yes + building_requirement_castle_city_church = { LEVEL = 01 } + scope:holder.culture = { + has_innovation = innovation_crop_rotation + } + } + + can_construct_showing_failures_only = { + building_requirement_tribal = no + } + + cost_gold = cheap_building_tier_2_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_2 + } + county_modifier = { + development_growth_factor = 0.025 + } + character_culture_modifier = { + parameter = quarries_building_bonuses + heavy_infantry_maintenance_mult = -0.02 + pikemen_maintenance_mult = -0.02 + heavy_cavalry_maintenance_mult = -0.02 + men_at_arms_recruitment_cost = -0.02 + } + county_culture_modifier = { + parameter = quarries_building_bonuses + levy_size = 0.02 + } + province_culture_modifier = { + parameter = ancient_miners_quarries_building_bonuses + monthly_income = poor_building_tax_tier_2 + } + + next_building = tell_mines_03 + + ai_value = { + base = 9 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + modifier = { # Fill all building slots before going for upgrades + factor = 0 + free_building_slots > 0 + } + } +} + +tell_mines_03 = { + construction_time = quick_construction_time + + can_construct_potential = { + building_tell_mines_requirement_terrain = yes + } + + can_construct = { + building_requirement_castle_city_church = { LEVEL = 02 } + scope:holder.culture = { + has_innovation = innovation_manorialism + } + } + + can_construct_showing_failures_only = { + building_requirement_tribal = no + } + + cost_gold = cheap_building_tier_3_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_3 + } + county_modifier = { + development_growth_factor = 0.05 + } + character_modifier = { + cultural_head_fascination_mult = 0.005 + } + character_culture_modifier = { + parameter = quarries_building_bonuses + heavy_infantry_maintenance_mult = -0.03 + pikemen_maintenance_mult = -0.03 + heavy_cavalry_maintenance_mult = -0.03 + men_at_arms_recruitment_cost = -0.03 + } + county_culture_modifier = { + parameter = quarries_building_bonuses + levy_size = 0.03 + } + province_culture_modifier = { + parameter = ancient_miners_quarries_building_bonuses + monthly_income = poor_building_tax_tier_3 + } + + next_building = tell_mines_04 + + ai_value = { + base = 8 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + } +} + +tell_mines_04 = { + construction_time = quick_construction_time + + can_construct_potential = { + building_tell_mines_requirement_terrain = yes + } + + can_construct = { + building_requirement_castle_city_church = { LEVEL = 02 } + scope:holder.culture = { + has_innovation = innovation_manorialism + } + } + + can_construct_showing_failures_only = { + building_requirement_tribal = no + } + + cost_gold = cheap_building_tier_4_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_4 + } + county_modifier = { + development_growth_factor = 0.1 + } + character_modifier = { + cultural_head_fascination_mult = 0.01 + } + character_culture_modifier = { + parameter = quarries_building_bonuses + heavy_infantry_maintenance_mult = -0.04 + pikemen_maintenance_mult = -0.04 + heavy_cavalry_maintenance_mult = -0.04 + men_at_arms_recruitment_cost = -0.04 + } + county_culture_modifier = { + parameter = quarries_building_bonuses + levy_size = 0.04 + } + province_culture_modifier = { + parameter = ancient_miners_quarries_building_bonuses + monthly_income = poor_building_tax_tier_4 + } + + next_building = tell_mines_05 + + ai_value = { + base = 7 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + } +} + +tell_mines_05 = { + construction_time = quick_construction_time + + can_construct_potential = { + building_tell_mines_requirement_terrain = yes + } + + can_construct = { + building_requirement_castle_city_church = { LEVEL = 03 } + scope:holder.culture = { + has_innovation = innovation_guilds + } + } + + can_construct_showing_failures_only = { + building_requirement_tribal = no + } + + cost_gold = cheap_building_tier_5_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_5 + } + county_modifier = { + development_growth_factor = 0.15 + } + character_modifier = { + cultural_head_fascination_mult = 0.02 + } + character_culture_modifier = { + parameter = quarries_building_bonuses + heavy_infantry_maintenance_mult = -0.05 + pikemen_maintenance_mult = -0.05 + heavy_cavalry_maintenance_mult = -0.05 + men_at_arms_recruitment_cost = -0.05 + } + county_culture_modifier = { + parameter = quarries_building_bonuses + levy_size = 0.05 + } + province_culture_modifier = { + parameter = ancient_miners_quarries_building_bonuses + monthly_income = poor_building_tax_tier_5 + } + + next_building = tell_mines_06 + + ai_value = { + base = 6 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + } +} + +tell_mines_06 = { + construction_time = quick_construction_time + + can_construct_potential = { + building_tell_mines_requirement_terrain = yes + } + + can_construct = { + building_requirement_castle_city_church = { LEVEL = 03 } + scope:holder.culture = { + has_innovation = innovation_guilds + } + } + + can_construct_showing_failures_only = { + building_requirement_tribal = no + } + + cost_gold = cheap_building_tier_6_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_6 + } + county_modifier = { + development_growth_factor = 0.2 + } + character_modifier = { + cultural_head_fascination_mult = 0.03 + } + character_culture_modifier = { + parameter = quarries_building_bonuses + heavy_infantry_maintenance_mult = -0.06 + pikemen_maintenance_mult = -0.06 + heavy_cavalry_maintenance_mult = -0.06 + men_at_arms_recruitment_cost = -0.06 + } + county_culture_modifier = { + parameter = quarries_building_bonuses + levy_size = 0.06 + } + province_culture_modifier = { + parameter = ancient_miners_quarries_building_bonuses + monthly_income = poor_building_tax_tier_6 + } + + next_building = tell_mines_07 + + ai_value = { + base = 5 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + } +} + +tell_mines_07 = { + construction_time = quick_construction_time + + can_construct_potential = { + building_tell_mines_requirement_terrain = yes + } + + can_construct = { + building_requirement_castle_city_church = { LEVEL = 04 } + scope:holder.culture = { + has_innovation = innovation_cranes + } + } + + can_construct_showing_failures_only = { + building_requirement_tribal = no + } + + cost_gold = cheap_building_tier_7_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_7 + } + county_modifier = { + development_growth_factor = 0.3 + } + character_modifier = { + cultural_head_fascination_mult = 0.04 + } + character_culture_modifier = { + parameter = quarries_building_bonuses + heavy_infantry_maintenance_mult = -0.07 + pikemen_maintenance_mult = -0.07 + heavy_cavalry_maintenance_mult = -0.07 + men_at_arms_recruitment_cost = -0.07 + } + county_culture_modifier = { + parameter = quarries_building_bonuses + levy_size = 0.07 + } + province_culture_modifier = { + parameter = ancient_miners_quarries_building_bonuses + monthly_income = poor_building_tax_tier_7 + } + + next_building = tell_mines_08 + + ai_value = { + base = 4 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + } +} + +tell_mines_08 = { + construction_time = quick_construction_time + + can_construct_potential = { + building_tell_mines_requirement_terrain = yes + } + + can_construct = { + building_requirement_castle_city_church = { LEVEL = 04 } + scope:holder.culture = { + has_innovation = innovation_cranes + } + } + + can_construct_showing_failures_only = { + building_requirement_tribal = no + } + + cost_gold = cheap_building_tier_8_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_8 + } + county_modifier = { + development_growth_factor = 0.4 + } + character_modifier = { + cultural_head_fascination_mult = 0.05 + } + character_culture_modifier = { + parameter = quarries_building_bonuses + heavy_infantry_maintenance_mult = -0.08 + pikemen_maintenance_mult = -0.08 + heavy_cavalry_maintenance_mult = -0.08 + men_at_arms_recruitment_cost = -0.08 + } + county_culture_modifier = { + parameter = quarries_building_bonuses + levy_size = 0.08 + } + province_culture_modifier = { + parameter = ancient_miners_quarries_building_bonuses + monthly_income = poor_building_tax_tier_8 + } + + ai_value = { + base = 3 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + } +} \ No newline at end of file diff --git a/common/holdings/00_holdings.txt b/common/holdings/00_holdings.txt new file mode 100644 index 00000000..afd557b6 --- /dev/null +++ b/common/holdings/00_holdings.txt @@ -0,0 +1,188 @@ +castle_holding = { + primary_building = castle_01 + buildings = { + capital_bureau_01 + + hospices_01 + curtain_walls_01 + watchtowers_01 + outposts_01 + hill_forts_01 + ramparts_01 + farm_estates_01 + cereal_fields_01 + pastures_01 + peat_quarries_01 + hill_farms_01 + logging_camps_01 + plantations_01 + quarries_01 + orchards_01 + elephant_pens_01 + hunting_grounds_01 + regimental_grounds_01 + barracks_01 + military_camps_01 + camel_farms_01 + stables_01 + smiths_01 + hillside_grazing_01 + warrior_lodges_01 + horse_pastures_01 + windmills_01 + watermills_01 + caravanserai_01 + workshops_01 + wind_furnace_01 + + common_tradeport_01 + hall_of_heroes_01 + special_sicilian_parliament_01 + special_greenhouse_01 + qanats_01 + murex_farm_01 + + #NEOW + tell_mines_01 + } +} + +tribal_holding = { + primary_building = tribe_01 + + buildings = { + palisades_01 + war_camps_01 + longhouses_01 + market_villages_01 + + hillside_grazing_01 + warrior_lodges_01 + horse_pastures_01 + + common_tradeport_01 # only for trade_ports_enabled_for_tribals culture parameter + } +} + +city_holding = { + primary_building = city_01 + buildings = { + hospices_01 + outposts_01 + farm_estates_01 + cereal_fields_01 + pastures_01 + peat_quarries_01 + hill_farms_01 + logging_camps_01 + plantations_01 + quarries_01 + orchards_01 + elephant_pens_01 + hunting_grounds_01 + regimental_grounds_01 + barracks_01 + military_camps_01 + camel_farms_01 + stables_01 + smiths_01 + hillside_grazing_01 + warrior_lodges_01 + horse_pastures_01 + windmills_01 + watermills_01 + caravanserai_01 + workshops_01 + wind_furnace_01 + + guild_halls_01 + + common_tradeport_01 + qanats_01 + murex_farm_01 + + breweries_01 + + #NEOW + tell_mines_01 + } + + can_be_inherited = yes +} + +church_holding = { + primary_building = temple_01 + buildings = { + hospices_01 + scriptorium_01 + outposts_01 + farm_estates_01 + cereal_fields_01 + pastures_01 + peat_quarries_01 + hill_farms_01 + logging_camps_01 + plantations_01 + quarries_01 + orchards_01 + elephant_pens_01 + hunting_grounds_01 + regimental_grounds_01 + barracks_01 + military_camps_01 + camel_farms_01 + stables_01 + smiths_01 + hillside_grazing_01 + warrior_lodges_01 + horse_pastures_01 + windmills_01 + watermills_01 + caravanserai_01 + workshops_01 + wind_furnace_01 + + monastic_schools_01 + megalith_01 + + common_tradeport_01 + hall_of_heroes_01 + qanats_01 + + breweries_01 + + #NEOW + tell_mines_01 + } + + can_be_inherited = yes +} + +nomad_holding = { + primary_building = nomadic_camp_01 + counts_toward_domain_limit_if_disabled = no + can_be_inherited = yes + required_heir_government_types = { nomad_government } + + parameters = { + no_buildings + no_levies + county_fertility + } +} + +herder_holding = { + primary_building = herder_camp_01 + counts_toward_domain_limit_if_disabled = no + can_be_inherited = yes + required_heir_government_types = { + nomad_government + herder_government + } + + parameters = { + no_buildings + no_levies + county_fertility + } +} diff --git a/common/holdings/_holdings.info b/common/holdings/_holdings.info new file mode 100644 index 00000000..0d69f024 --- /dev/null +++ b/common/holdings/_holdings.info @@ -0,0 +1,71 @@ +== Structure == + +name_of_the_holding = { + + ### brief: primary_building ( key ) + # The primary building for this holding + # (will be built when creating a holding of this type) + # + primary_building = city_01 + + ### brief: buildings ( keys, optional ) + # First levels of all buildings buildable in the holding + # (doesn't include the primary building) + # + buildings = { + city_market_01 + common_shipyard_01 + ... + } + + ### brief: can_be_inherited ( bool, optional) + # Can a barony with this holding be inherited? + # Default: yes + # + can_be_inherited = yes/no + + ### brief: counts_toward_domain_limit_if_disabled ( bool, optional) + # Does a barony with this holding type count toward a ruler's domain + # limit if the holding is disabled? + # Default: yes + # + counts_toward_domain_limit_if_disabled = yes/no + + ### brief: required_heir_government_types ( array of database keys, optional ) + # Which government types are required to inherit a county title with + # this holding built in the capital province when succession occurs? + # If generating a character for county title of this province during succession, + # the first government type in the list will be used. + # Keys are mapped to the government types database: common/governments + # Default: none + # + required_heir_government_types = { + nomad_government + ... + } + + ### brief: parameters ( keys, optional ) + # An arbitrary list of parameter keys which can be checked with + # the has_holding_parameter trigger + # Default: none + # + parameters = { + no_buildings + ... + } +} + +== Modifiers == +The following modifiers are automatically generated for all holding types: + +* _build_speed (example: church_holding_build_speed) +* _build_gold_cost +* _build_piety_cost +* _build_prestige_cost +* _holding_build_speed +* _holding_build_gold_cost +* _holding_build_piety_cost +* _holding_build_prestige_cost +These affect building buildings within such a holding or the holdings themselves. + +These work everywhere the more generic version works. E.G., church_holding_build_speed will work everywhere build_speed does. diff --git a/common/scripted_triggers/00_building_requirement_triggers.txt b/common/scripted_triggers/00_building_requirement_triggers.txt index cb35e57e..53ab0318 100644 --- a/common/scripted_triggers/00_building_requirement_triggers.txt +++ b/common/scripted_triggers/00_building_requirement_triggers.txt @@ -124,6 +124,7 @@ building_pastures_requirement_terrain = { terrain = desert_mountains terrain = hills terrain = floodplains + terrain = tells AND = { terrain = jungle NOT = { geographical_region = world_innovation_elephants } @@ -290,7 +291,10 @@ building_peat_quarries_requirement_terrain = { } building_hill_farms_requirement_terrain = { - terrain = hills + OR = { + terrain = tells + terrain = hills + } } building_elephant_pens_requirement_terrain = { @@ -325,6 +329,10 @@ building_quarries_requirement_terrain = { } } +building_tell_mines_requirement_terrain = { + terrain = tells +} + building_warrior_lodges_requirement_terrain = { OR = { AND = { @@ -332,6 +340,7 @@ building_warrior_lodges_requirement_terrain = { terrain = mountains terrain = desert_mountains terrain = hills + terrain = tells } NOT = { geographical_region = world_horse_buildings_in_hills_and_mountains } } @@ -344,6 +353,7 @@ building_hillside_grazing_requirement_terrain = { terrain = mountains terrain = desert_mountains terrain = hills + terrain = tells } geographical_region = world_horse_buildings_in_hills_and_mountains } @@ -379,6 +389,7 @@ building_hill_forts_requirement_terrain = { terrain = mountains terrain = desert_mountains terrain = hills + terrain = tells } } @@ -433,6 +444,7 @@ building_qanats_requirement_terrain = { county ?= { any_county_province = { OR = { + terrain = tells terrain = hills terrain = mountains terrain = desert_mountains @@ -523,6 +535,7 @@ has_any_building_of_level_trigger = { has_building = farm_estates_$BUILDING_LEVEL$ has_building = regimental_grounds_$BUILDING_LEVEL$ has_building = monastic_schools_$BUILDING_LEVEL$ + has_building = tell_mines_$BUILDING_LEVEL$ } } diff --git a/gfx/interface/icons/building_types/icon_building_tell_mines.dds b/gfx/interface/icons/building_types/icon_building_tell_mines.dds new file mode 100644 index 00000000..a68d0a57 --- /dev/null +++ b/gfx/interface/icons/building_types/icon_building_tell_mines.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ad7533a37d14b8e54238f66a9127137d560a35b9700f29f391ca431796a2a15 +size 78128 diff --git a/localization/english/NEOW_buildings_l_english.yml b/localization/english/NEOW_buildings_l_english.yml new file mode 100644 index 00000000..764a171d --- /dev/null +++ b/localization/english/NEOW_buildings_l_english.yml @@ -0,0 +1,19 @@ +l_english: + building_type_tell_mines_01:1 "Tell Mines" + building_type_tell_mines_01_desc:1 "WIP." + building_tell_mines_01:1 "Surface Excavation" + building_tell_mines_01_desc:2 "WIP." + building_tell_mines_02:1 "Shallow Dig Sites" + building_tell_mines_02_desc:1 "WIP." + building_tell_mines_03:1 "Simple Pulleys" + building_tell_mines_03_desc:1 "WIP." + building_tell_mines_04:1 "Carts and Rails" + building_tell_mines_04_desc:1 "WIP." + building_tell_mines_05:1 "Merchants and Appraisers" + building_tell_mines_05_desc:1 "WIP." + building_tell_mines_06:1 "Shafts and Elevators" + building_tell_mines_06_desc:1 "WIP." + building_tell_mines_07:1 "Scholars and Alchemists " + building_tell_mines_07_desc:1 "WIP." + building_tell_mines_08:2 "Forges of Antediluvia" + building_tell_mines_08_desc:2 "WIP." \ No newline at end of file