From f316d8d7245319a2ffabcba89e118b31b15ae5c4 Mon Sep 17 00:00:00 2001 From: GoTouchSomeGrass314 Date: Sun, 1 Mar 2026 12:36:46 +0100 Subject: [PATCH] Added the Vinyeards line of buildings For now, they are tied to the Brewing Culture tradition, but this might (and probably will) change in the future. --- .../N3OW_standard_economy_buildings.txt | 411 ++++++++++++++++++ common/buildings/NEOW_special_buildings.txt | 31 +- .../traditions/00_realm_traditions.txt | 1 + common/holdings/00_holdings.txt | 1 + .../00_building_requirement_triggers.txt | 11 + .../domicile_building_vineyard.dds | 3 + .../replace/NEOW_buildings_l_english.yml | 21 +- .../zz_NEOW_cultural_traditions_l_english.yml | 3 + 8 files changed, 470 insertions(+), 12 deletions(-) create mode 100644 gfx/interface/icons/building_types/domicile_building_vineyard.dds diff --git a/common/buildings/N3OW_standard_economy_buildings.txt b/common/buildings/N3OW_standard_economy_buildings.txt index 9e7e5754..ee33c310 100644 --- a/common/buildings/N3OW_standard_economy_buildings.txt +++ b/common/buildings/N3OW_standard_economy_buildings.txt @@ -597,4 +597,415 @@ leclerc_dyeworks_03 = { ai_general_building_modifier = yes directive_to_build_economy_modifier = yes } +} + +### Vineyards + +vineyards_01 = { + construction_time = standard_construction_time + effect_desc = orchards_effect_desc + + can_construct_potential = { + building_vineyards_requirement = yes + } + + can_construct_showing_failures_only = { + building_requirement_tribal = no + } + + cost_gold = normal_building_tier_1_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_1 + } + county_modifier = { + development_growth_factor = 0.03 + county_opinion_add = 2 + } + province_terrain_modifier = { + parameter = coastal_agriculture_building_bonuses + is_coastal = yes + tax_mult = 0.01 + } + + on_complete = { + #Mandala Creator Aspect + creator_mandala_built_regular_building_piety_effect = yes + } + + next_building = vineyards_02 + + type_icon = "domicile_building_vineyard.dds" + + ai_value = { + base = 15 + ai_tier_1_building_modifier = yes + ai_tier_1_economical_building_preference_modifier = yes + ai_orchard_improvement_from_culture_modifier = yes + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + } +} + +vineyards_02 = { + construction_time = standard_construction_time + effect_desc = orchards_effect_desc + + can_construct_potential = { + building_vineyards_requirement = 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 = normal_building_tier_2_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_2 + } + county_modifier = { + development_growth_factor = 0.07 + county_opinion_add = 5 + } + province_terrain_modifier = { + parameter = coastal_agriculture_building_bonuses + is_coastal = yes + tax_mult = 0.02 + } + + on_complete = { + #Mandala Creator Aspect + creator_mandala_built_regular_building_piety_effect = yes + } + + next_building = vineyards_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 + } + } +} + +vineyards_03 = { + construction_time = standard_construction_time + effect_desc = orchards_effect_desc + + can_construct_potential = { + building_vineyards_requirement = 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 = normal_building_tier_3_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_3 + supply_limit_mult = 0.1 + } + county_modifier = { + development_growth_factor = 0.10 + county_opinion_add = 7 + } + province_terrain_modifier = { + parameter = coastal_agriculture_building_bonuses + is_coastal = yes + tax_mult = 0.03 + supply_limit_mult = 0.1 + } + + on_complete = { + #Mandala Creator Aspect + creator_mandala_built_regular_building_piety_effect = yes + } + + next_building = vineyards_04 + + ai_value = { + base = 8 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + } +} + +vineyards_04 = { + construction_time = standard_construction_time + effect_desc = orchards_effect_desc + + can_construct_potential = { + building_vineyards_requirement = 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 = normal_building_tier_4_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_4 + supply_limit_mult = 0.1 + } + county_modifier = { + development_growth_factor = 0.14 + county_opinion_add = 10 + } + province_terrain_modifier = { + parameter = coastal_agriculture_building_bonuses + is_coastal = yes + tax_mult = 0.04 + supply_limit_mult = 0.1 + } + + on_complete = { + #Mandala Creator Aspect + creator_mandala_built_regular_building_piety_effect = yes + } + + next_building = vineyards_05 + + ai_value = { + base = 7 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + } +} + +vineyards_05 = { + construction_time = standard_construction_time + effect_desc = orchards_effect_desc + + can_construct_potential = { + building_vineyards_requirement = 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 = normal_building_tier_5_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_5 + supply_limit_mult = 0.1 + } + county_modifier = { + development_growth_factor = 0.18 + county_opinion_add = 13 + } + province_terrain_modifier = { + parameter = coastal_agriculture_building_bonuses + is_coastal = yes + tax_mult = 0.05 + supply_limit_mult = 0.1 + } + + on_complete = { + #Mandala Creator Aspect + creator_mandala_built_regular_building_piety_effect = yes + } + + next_building = vineyards_06 + + ai_value = { + base = 6 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + } +} + +vineyards_06 = { + construction_time = standard_construction_time + effect_desc = orchards_effect_desc + + can_construct_potential = { + building_vineyards_requirement = 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 = normal_building_tier_6_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_6 + supply_limit = 1000 + supply_limit_mult = 0.1 + } + county_modifier = { + development_growth_factor = 0.22 + county_opinion_add = 16 + } + province_terrain_modifier = { + parameter = coastal_agriculture_building_bonuses + is_coastal = yes + tax_mult = 0.06 + supply_limit_mult = 0.1 + } + + on_complete = { + #Mandala Creator Aspect + creator_mandala_built_regular_building_piety_effect = yes + } + + next_building = vineyards_07 + + ai_value = { + base = 5 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + } +} + +vineyards_07 = { + construction_time = standard_construction_time + effect_desc = orchards_effect_desc + + can_construct_potential = { + building_vineyards_requirement = 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 = normal_building_tier_7_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_7 + supply_limit = 1000 + supply_limit_mult = 0.1 + } + county_modifier = { + development_growth_factor = 0.26 + county_opinion_add = 20 + } + province_terrain_modifier = { + parameter = coastal_agriculture_building_bonuses + is_coastal = yes + tax_mult = 0.07 + supply_limit_mult = 0.1 + } + character_modifier = { + monthly_prestige = 0.1 + } + + on_complete = { + #Mandala Creator Aspect + creator_mandala_built_regular_building_piety_effect = yes + } + + next_building = vineyards_08 + + ai_value = { + base = 4 + ai_general_building_modifier = yes + directive_to_build_economy_modifier = yes + ai_economical_building_preference_modifier = yes + } +} + +vineyards_08 = { + construction_time = standard_construction_time + effect_desc = orchards_effect_desc + + can_construct_potential = { + building_vineyards_requirement = 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 = normal_building_tier_8_cost + + province_modifier = { + monthly_income = normal_building_tax_tier_8 + supply_limit = 1000 + supply_limit_mult = 0.1 + } + county_modifier = { + development_growth_factor = 0.30 + county_opinion_add = 25 + } + province_terrain_modifier = { + parameter = coastal_agriculture_building_bonuses + is_coastal = yes + tax_mult = 0.08 + supply_limit_mult = 0.1 + } + character_modifier = { + monthly_prestige = 0.1 + } + + on_complete = { + #Mandala Creator Aspect + creator_mandala_built_regular_building_piety_effect = yes + } + + 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/buildings/NEOW_special_buildings.txt b/common/buildings/NEOW_special_buildings.txt index 0714adcc..88efeffd 100644 --- a/common/buildings/NEOW_special_buildings.txt +++ b/common/buildings/NEOW_special_buildings.txt @@ -6888,6 +6888,25 @@ croke_park_02 = { flag = travel_point_of_interest_martial } +########## +# TEMPLATE +########## + +######################################## +# GERMANIA +######################################## + + + +######################################## +# SCANDINAVIA +######################################## + + + +######################################## +# SPECIAL MILITARY BUILDINGS +######################################## chemistry_workshop_01 = { construction_time = standard_construction_time effect_desc = chemistry_workshop_1_effect_desc @@ -7234,14 +7253,4 @@ air_dock_04 = { ai_general_building_modifier = yes directive_to_build_military_modifier = yes } -} - -######################################## -# GERMANIA -######################################## - - - -######################################## -# SCANDINAVIA -######################################## \ No newline at end of file +} \ No newline at end of file diff --git a/common/culture/traditions/00_realm_traditions.txt b/common/culture/traditions/00_realm_traditions.txt index 51685916..d64f35a2 100644 --- a/common/culture/traditions/00_realm_traditions.txt +++ b/common/culture/traditions/00_realm_traditions.txt @@ -3978,6 +3978,7 @@ tradition_brewery = { } parameters = { + allows_vineyards = yes allows_brewery = yes brewery_farming_bonus = yes } diff --git a/common/holdings/00_holdings.txt b/common/holdings/00_holdings.txt index e9a0ae7d..7cd2aedc 100644 --- a/common/holdings/00_holdings.txt +++ b/common/holdings/00_holdings.txt @@ -52,6 +52,7 @@ # N3OW buildings leclerc_dyeworks_01 tell_mines_01 + vineyards_01 chemistry_workshop_01 air_dock_01 } diff --git a/common/scripted_triggers/00_building_requirement_triggers.txt b/common/scripted_triggers/00_building_requirement_triggers.txt index 8a05884f..1ccb1466 100644 --- a/common/scripted_triggers/00_building_requirement_triggers.txt +++ b/common/scripted_triggers/00_building_requirement_triggers.txt @@ -950,4 +950,15 @@ building_leclerc_dyeworks_requirement_terrain = { this.barony = title:b_lyon this.barony = title:b_roanne } +} + +building_vineyards_requirement = { + AND = { + root.culture = { has_cultural_parameter = allows_vineyards } + OR = { + terrain = farmlands + terrain = plains + terrain = hills + } + } } \ No newline at end of file diff --git a/gfx/interface/icons/building_types/domicile_building_vineyard.dds b/gfx/interface/icons/building_types/domicile_building_vineyard.dds new file mode 100644 index 00000000..c9f23c6d --- /dev/null +++ b/gfx/interface/icons/building_types/domicile_building_vineyard.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9c1b1174b15023cc47de0922a35fbdf299394cc5b958c71a928d6e515020c42 +size 61632 diff --git a/localization/english/replace/NEOW_buildings_l_english.yml b/localization/english/replace/NEOW_buildings_l_english.yml index 0def6ed9..a88a0b61 100644 --- a/localization/english/replace/NEOW_buildings_l_english.yml +++ b/localization/english/replace/NEOW_buildings_l_english.yml @@ -499,4 +499,23 @@ building_leclerc_dyeworks_02:1 "Leclerc Dyehouse" building_leclerc_dyeworks_02_desc:1 "A centre of production, where the collected titanium rust is stored and used in the making of Leclerc White by master unionsmen and their apprentices." building_leclerc_dyeworks_03:1 "Leclercier Union Hall" - building_leclerc_dyeworks_03_desc:1 "The local headquarters of the Leclercier Union in the region, which oversees product quality, tax collection and the continued training of new masters." \ No newline at end of file + building_leclerc_dyeworks_03_desc:1 "The local headquarters of the Leclercier Union in the region, which oversees product quality, tax collection and the continued training of new masters." + + building_type_vineyards_01:1 "Vineyards" + building_type_vineyards_01_desc:0 "$building_vineyards_01_desc$" + building_vineyards_01:1 "Small Vineyard" + building_vineyards_01_desc:0 "A small plantation of grape-bearing vines produces rough wine for the surrounding settlements." + building_vineyards_02:1 "Small Winepresses" + building_vineyards_02_desc:0 "Many small wine presses are installed to replace manual labor with quicker and more efficient machinery." + building_vineyards_03:1 "Fermenting Vats" + building_vineyards_03_desc:0 "The more the wine ferments, the richer the flavor. Many fermenting vats and barrels were made to further improve the winemaking process." + building_vineyards_04:1 "Large Vineyard" + building_vineyards_04_desc:0 "A large plantation of grape-bearing vines, that produces not only rough and fine wine but also other grape products. " + building_vineyards_05:1 "Large Winepresses" + building_vineyards_05_desc:0 "Many large wine presses are installed to further speed up the process of pressing grapes into rough wine." + building_vineyards_06:1 "Specialized Coopers" + building_vineyards_06_desc:0 "With the production growing, the surrounding wineries needed more barrels to age their wine. This attracted many talented coopers to the region, creating several cooper Unions." + building_vineyards_07:1 "Massive Vineyard" + building_vineyards_07_desc:0 "A massive plantation of grape-bearing vines, which stretches for miles across the surrounding lands, covering massive amount of space." + building_vineyards_08:1 "Massive Winepresses" + building_vineyards_08_desc:0 "In many wineries, a massive wine press was installed to press thousands of grapes in seconds, speeding up the whole process." diff --git a/localization/english/replace/culture/traditions/zz_NEOW_cultural_traditions_l_english.yml b/localization/english/replace/culture/traditions/zz_NEOW_cultural_traditions_l_english.yml index 344d2d68..133683b9 100644 --- a/localization/english/replace/culture/traditions/zz_NEOW_cultural_traditions_l_english.yml +++ b/localization/english/replace/culture/traditions/zz_NEOW_cultural_traditions_l_english.yml @@ -31,6 +31,9 @@ life_is_a_joke_trait_same_culture_opinion:0 "Opinion of [gregarious|E], [cynical|E], [fickle|E], and [eccentric|E] characters" + allows_vineyards:1 "Unlocks the #color_white $building_type_vineyards_01$#! line of [buildings|E]" + culture_parameter_allows_vineyards:0 "$allows_vineyards$" + # MAA Unlocks culture_parameter_unlock_maa_handgonners:0 "Can recruit [GetMaA('handgonners').GetName] as [men_at_arms|E]" culture_parameter_unlock_maa_kuhjung:0 "Can recruit [GetMaA('cowboys').GetName] as [men_at_arms|E]" \ No newline at end of file