Implement technology tree, research queue by least remaining work, and unit/building tech availability & obsolescence
This commit is contained in:
@@ -4,6 +4,7 @@ action_needed:
|
||||
track_idle_units: true
|
||||
track_city_no_production: true
|
||||
track_city_free_population: true
|
||||
track_no_research: true
|
||||
max_visible_items: 8
|
||||
|
||||
# Visual & Layout parameters
|
||||
@@ -19,5 +20,6 @@ action_needed:
|
||||
unit_idle_color: "#3CA0FF"
|
||||
city_no_prod_color: "#FFA028"
|
||||
city_free_pop_color: "#46DC82"
|
||||
no_research_color: "#38C8FF"
|
||||
card_bg_color: "#121822"
|
||||
card_bg_alpha: 235
|
||||
|
||||
+131
-8
@@ -1,19 +1,55 @@
|
||||
# City Buildings & Extensions configuration
|
||||
# All gameplay values are configurable via YAML
|
||||
# All gameplay values, required technologies, and obsolescence technologies are configurable via YAML
|
||||
|
||||
districts:
|
||||
center:
|
||||
id: "center"
|
||||
name: "City Center"
|
||||
max_buildings: 10
|
||||
max_buildings: 12
|
||||
description: "The urban core and administrative center of the city."
|
||||
|
||||
buildings:
|
||||
monument:
|
||||
id: "monument"
|
||||
name: "Monument"
|
||||
district: "center"
|
||||
labor_cost: 800
|
||||
required_tech: ""
|
||||
obsolete_tech: ""
|
||||
food_modifier: 0.0
|
||||
food_bonus: 0
|
||||
labor_bonus: 0
|
||||
culture_bonus: 250
|
||||
science_bonus: 0
|
||||
faith_bonus: 0
|
||||
gold_bonus: 0
|
||||
icon: "images/improvements/monument.png"
|
||||
description: "+250 Culture per tick"
|
||||
|
||||
palisade:
|
||||
id: "palisade"
|
||||
name: "Wooden Palisade"
|
||||
district: "center"
|
||||
labor_cost: 700
|
||||
required_tech: ""
|
||||
obsolete_tech: "masonry"
|
||||
food_modifier: 0.0
|
||||
food_bonus: 0
|
||||
labor_bonus: 100
|
||||
culture_bonus: 100
|
||||
science_bonus: 0
|
||||
faith_bonus: 0
|
||||
gold_bonus: 0
|
||||
icon: "images/improvements/monument.png"
|
||||
description: "+100 Production, +100 Culture/tick (Obsolete with Masonry)"
|
||||
|
||||
granary:
|
||||
id: "granary"
|
||||
name: "Granary"
|
||||
district: "center"
|
||||
labor_cost: 1000
|
||||
required_tech: "pottery"
|
||||
obsolete_tech: ""
|
||||
food_modifier: 0.50
|
||||
food_bonus: 0
|
||||
labor_bonus: 0
|
||||
@@ -24,17 +60,104 @@ buildings:
|
||||
icon: "images/improvements/granary.png"
|
||||
description: "+50% Food production in city"
|
||||
|
||||
monument:
|
||||
id: "monument"
|
||||
name: "Monument"
|
||||
library:
|
||||
id: "library"
|
||||
name: "Library"
|
||||
district: "center"
|
||||
labor_cost: 800
|
||||
labor_cost: 1200
|
||||
required_tech: "writing"
|
||||
obsolete_tech: ""
|
||||
food_modifier: 0.0
|
||||
food_bonus: 0
|
||||
labor_bonus: 0
|
||||
culture_bonus: 250
|
||||
culture_bonus: 0
|
||||
science_bonus: 350
|
||||
faith_bonus: 0
|
||||
gold_bonus: 0
|
||||
icon: "images/resources/kennis.png"
|
||||
description: "+350 Science per tick"
|
||||
|
||||
walls:
|
||||
id: "walls"
|
||||
name: "Stone Walls"
|
||||
district: "center"
|
||||
labor_cost: 1500
|
||||
required_tech: "masonry"
|
||||
obsolete_tech: "gunpowder"
|
||||
food_modifier: 0.0
|
||||
food_bonus: 0
|
||||
labor_bonus: 200
|
||||
culture_bonus: 200
|
||||
science_bonus: 0
|
||||
faith_bonus: 0
|
||||
gold_bonus: 0
|
||||
icon: "images/improvements/monument.png"
|
||||
description: "+250 Culture per tick"
|
||||
description: "+200 Production, +200 Culture/tick (Obsolete with Gunpowder)"
|
||||
|
||||
water_mill:
|
||||
id: "water_mill"
|
||||
name: "Water Mill"
|
||||
district: "center"
|
||||
labor_cost: 1600
|
||||
required_tech: "wheel"
|
||||
obsolete_tech: ""
|
||||
food_modifier: 0.0
|
||||
food_bonus: 200
|
||||
labor_bonus: 250
|
||||
culture_bonus: 0
|
||||
science_bonus: 0
|
||||
faith_bonus: 0
|
||||
gold_bonus: 0
|
||||
icon: "images/improvements/granary.png"
|
||||
description: "+200 Food, +250 Production per tick"
|
||||
|
||||
market:
|
||||
id: "market"
|
||||
name: "Market"
|
||||
district: "center"
|
||||
labor_cost: 1800
|
||||
required_tech: "currency"
|
||||
obsolete_tech: ""
|
||||
food_modifier: 0.0
|
||||
food_bonus: 0
|
||||
labor_bonus: 0
|
||||
culture_bonus: 0
|
||||
science_bonus: 0
|
||||
faith_bonus: 0
|
||||
gold_bonus: 400
|
||||
icon: "images/resources/goud.png"
|
||||
description: "+400 Gold per tick"
|
||||
|
||||
university:
|
||||
id: "university"
|
||||
name: "University"
|
||||
district: "center"
|
||||
labor_cost: 2800
|
||||
required_tech: "education"
|
||||
obsolete_tech: ""
|
||||
food_modifier: 0.0
|
||||
food_bonus: 0
|
||||
labor_bonus: 0
|
||||
culture_bonus: 100
|
||||
science_bonus: 700
|
||||
faith_bonus: 0
|
||||
gold_bonus: 0
|
||||
icon: "images/resources/kennis.png"
|
||||
description: "+700 Science, +100 Culture per tick"
|
||||
|
||||
workshop:
|
||||
id: "workshop"
|
||||
name: "Workshop"
|
||||
district: "center"
|
||||
labor_cost: 2600
|
||||
required_tech: "machinery"
|
||||
obsolete_tech: ""
|
||||
food_modifier: 0.0
|
||||
food_bonus: 0
|
||||
labor_bonus: 500
|
||||
culture_bonus: 0
|
||||
science_bonus: 0
|
||||
faith_bonus: 0
|
||||
gold_bonus: 0
|
||||
icon: "images/resources/arbeid.png"
|
||||
description: "+500 Production per tick"
|
||||
|
||||
+39
-1
@@ -128,7 +128,7 @@ ui:
|
||||
management_title: "%1 - CITY MANAGEMENT"
|
||||
close_btn: "[X] Close"
|
||||
local_info: "Local: Population: %L1 (%2 Pop: %3 working, %4 free) | Labor: %L5"
|
||||
national_info: "National: Culture: %L1 | Science: %L2 | Gold: %L3 | Faith: %L4"
|
||||
national_info: "National: Culture: %L1 | Science: +%L2/tick | Gold: %L3 | Faith: %L4"
|
||||
help_text: "Click a slot to assign/free Pop | Hold a slot to choose resource | Buy tile with Culture."
|
||||
current_production: "CURRENT PRODUCTION"
|
||||
production_panel_title: "CITY PRODUCTION"
|
||||
@@ -160,6 +160,8 @@ ui:
|
||||
queued_item_removed: "%1: Removed %2 from queue"
|
||||
already_built: "%1 already built in this city!"
|
||||
already_queued: "%1 is already in the production queue!"
|
||||
requires_tech: "%1 requires technology: %2!"
|
||||
obsolete_item: "%1 is obsolete and can no longer be built!"
|
||||
growth_float: "+%1 Inhabitants | +%2 Culture"
|
||||
not_enough_culture: "Not enough Culture! (%1 needed)"
|
||||
worker_freed: "Pop worker freed"
|
||||
@@ -187,6 +189,42 @@ ui:
|
||||
unit_idle_desc: "Needs orders"
|
||||
city_no_production_desc: "No production"
|
||||
city_free_pop_desc: "+%1 Free Pop"
|
||||
no_research_title: "RESEARCH"
|
||||
no_research_desc: "Choose technology"
|
||||
dismiss_tip: "Right-click to dismiss"
|
||||
more_items: "+%1"
|
||||
|
||||
tech_tree:
|
||||
title: "TECHNOLOGY TREE"
|
||||
close_btn: "[X] Close"
|
||||
btn_open: "Tech [T]"
|
||||
no_research: "No Research"
|
||||
choose_research: "Choose Tech [T]"
|
||||
science_rate: "+%L1/tick"
|
||||
active_research: "ACTIVE RESEARCH: %1"
|
||||
no_active_research: "No active research - Click any technology node below to start researching"
|
||||
queue_label: "QUEUE (%1):"
|
||||
clear_queue_btn: "Clear Queue"
|
||||
status_researched: "RESEARCHED"
|
||||
status_researching: "ACTIVE #1"
|
||||
status_queued: "QUEUED #%1"
|
||||
status_available: "AVAILABLE"
|
||||
status_locked: "LOCKED"
|
||||
cost_format: "%L1 Science (~%2 %3)"
|
||||
progress_format: "%L1 / %L2 (%3%)"
|
||||
remaining_format: "%L1 left (~%2 %3)"
|
||||
tick_singular: "tick"
|
||||
tick_plural: "ticks"
|
||||
prereqs_label: "Req: %1"
|
||||
prereqs_none: "Base Technology"
|
||||
unlocks_label: "Unlocks: %1"
|
||||
obsoletes_label: "Obsoletes: %1"
|
||||
help_text: "Left-click a tech to research (prerequisites auto-queued by least remaining work) | Shift+Click to append | Right-click to remove | Drag/Scroll to pan"
|
||||
tech_completed_float: "Technology Researched: %1!"
|
||||
tech_started_float: "Researching: %1"
|
||||
tech_queued_float: "Research Queue Updated (%1 techs, target: %2)"
|
||||
tech_already_researched: "%1 has already been researched!"
|
||||
tech_cancelled_float: "Research queue cleared"
|
||||
tech_removed_float: "Removed %1 from research queue"
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,202 @@
|
||||
# Technology Tree Configuration
|
||||
# All gameplay values, science costs, layout coordinates, and prerequisite chains are configurable via YAML.
|
||||
|
||||
technologies:
|
||||
pottery:
|
||||
id: "pottery"
|
||||
name: "Pottery"
|
||||
science_cost: 1000
|
||||
column: 0
|
||||
row: 0
|
||||
icon: "images/improvements/granary.png"
|
||||
description: "Ceramic vessels for storing grain and preserving food supplies."
|
||||
|
||||
animal_husbandry:
|
||||
id: "animal_husbandry"
|
||||
name: "Animal Husbandry"
|
||||
science_cost: 1000
|
||||
column: 0
|
||||
row: 1
|
||||
icon: "images/resources/voedsel.png"
|
||||
description: "Domestication and breeding of livestock for food and labor."
|
||||
|
||||
mining:
|
||||
id: "mining"
|
||||
name: "Mining"
|
||||
science_cost: 1200
|
||||
column: 0
|
||||
row: 2
|
||||
icon: "images/resources/arbeid.png"
|
||||
description: "Extraction of stone and metal ores from the earth."
|
||||
|
||||
sailing:
|
||||
id: "sailing"
|
||||
name: "Sailing"
|
||||
science_cost: 1500
|
||||
column: 1
|
||||
row: 0
|
||||
icon: "images/units/galley.png"
|
||||
description: "Harnessing the wind to navigate coastal waters."
|
||||
prerequisites:
|
||||
- "pottery"
|
||||
|
||||
writing:
|
||||
id: "writing"
|
||||
name: "Writing"
|
||||
science_cost: 1800
|
||||
column: 1
|
||||
row: 1
|
||||
icon: "images/resources/kennis.png"
|
||||
description: "Recording laws, history, and scientific knowledge in script."
|
||||
prerequisites:
|
||||
- "pottery"
|
||||
|
||||
archery:
|
||||
id: "archery"
|
||||
name: "Archery"
|
||||
science_cost: 1500
|
||||
column: 1
|
||||
row: 2
|
||||
icon: "images/units/slinger.png"
|
||||
description: "Use of bows and arrows for superior ranged warfare."
|
||||
prerequisites:
|
||||
- "animal_husbandry"
|
||||
|
||||
bronze_working:
|
||||
id: "bronze_working"
|
||||
name: "Bronze Working"
|
||||
science_cost: 1800
|
||||
column: 1
|
||||
row: 3
|
||||
icon: "images/units/warrior.png"
|
||||
description: "Smelting copper and tin into durable bronze weapons and armor."
|
||||
prerequisites:
|
||||
- "mining"
|
||||
|
||||
masonry:
|
||||
id: "masonry"
|
||||
name: "Masonry"
|
||||
science_cost: 1600
|
||||
column: 1
|
||||
row: 4
|
||||
icon: "images/improvements/monument.png"
|
||||
description: "Cutting and laying stone for permanent fortifications and monuments."
|
||||
prerequisites:
|
||||
- "mining"
|
||||
|
||||
celestial_navigation:
|
||||
id: "celestial_navigation"
|
||||
name: "Celestial Navigation"
|
||||
science_cost: 2500
|
||||
column: 2
|
||||
row: 0
|
||||
icon: "images/units/galley.png"
|
||||
description: "Using the stars to guide maritime trade and exploration."
|
||||
prerequisites:
|
||||
- "sailing"
|
||||
- "writing"
|
||||
|
||||
currency:
|
||||
id: "currency"
|
||||
name: "Currency"
|
||||
science_cost: 2400
|
||||
column: 2
|
||||
row: 1
|
||||
icon: "images/resources/goud.png"
|
||||
description: "Standardized coinage enabling thriving markets and trade."
|
||||
prerequisites:
|
||||
- "writing"
|
||||
|
||||
wheel:
|
||||
id: "wheel"
|
||||
name: "The Wheel"
|
||||
science_cost: 2200
|
||||
column: 2
|
||||
row: 2
|
||||
icon: "images/actions/road.png"
|
||||
description: "Rotational mechanics for transport and water-powered mills."
|
||||
prerequisites:
|
||||
- "archery"
|
||||
- "mining"
|
||||
|
||||
horseback_riding:
|
||||
id: "horseback_riding"
|
||||
name: "Horseback Riding"
|
||||
science_cost: 2500
|
||||
column: 2
|
||||
row: 3
|
||||
icon: "images/actions/move.png"
|
||||
description: "Mounted cavalry tactics for rapid battlefield maneuvers."
|
||||
prerequisites:
|
||||
- "archery"
|
||||
|
||||
iron_working:
|
||||
id: "iron_working"
|
||||
name: "Iron Working"
|
||||
science_cost: 2800
|
||||
column: 2
|
||||
row: 4
|
||||
icon: "images/actions/attack.png"
|
||||
description: "Forging strong iron blades and heavy infantry armor."
|
||||
prerequisites:
|
||||
- "bronze_working"
|
||||
|
||||
education:
|
||||
id: "education"
|
||||
name: "Education"
|
||||
science_cost: 3600
|
||||
column: 3
|
||||
row: 0
|
||||
icon: "images/resources/kennis.png"
|
||||
description: "Higher learning institutions and systematic scientific inquiry."
|
||||
prerequisites:
|
||||
- "currency"
|
||||
- "celestial_navigation"
|
||||
|
||||
engineering:
|
||||
id: "engineering"
|
||||
name: "Engineering"
|
||||
science_cost: 3400
|
||||
column: 3
|
||||
row: 2
|
||||
icon: "images/resources/arbeid.png"
|
||||
description: "Advanced structural design, aqueducts, and mechanical contraptions."
|
||||
prerequisites:
|
||||
- "wheel"
|
||||
- "masonry"
|
||||
|
||||
stirrups:
|
||||
id: "stirrups"
|
||||
name: "Stirrups"
|
||||
science_cost: 4000
|
||||
column: 3
|
||||
row: 3
|
||||
icon: "images/actions/move.png"
|
||||
description: "Saddle stirrups enabling heavily armored shock cavalry."
|
||||
prerequisites:
|
||||
- "horseback_riding"
|
||||
- "iron_working"
|
||||
|
||||
machinery:
|
||||
id: "machinery"
|
||||
name: "Machinery"
|
||||
science_cost: 4200
|
||||
column: 4
|
||||
row: 1
|
||||
icon: "images/resources/arbeid.png"
|
||||
description: "Mechanical gears, crossbows, and specialized workshops."
|
||||
prerequisites:
|
||||
- "engineering"
|
||||
- "iron_working"
|
||||
|
||||
gunpowder:
|
||||
id: "gunpowder"
|
||||
name: "Gunpowder"
|
||||
science_cost: 5200
|
||||
column: 4
|
||||
row: 3
|
||||
icon: "images/actions/attack.png"
|
||||
description: "Explosive black powder revolutionizing firearms and siege warfare."
|
||||
prerequisites:
|
||||
- "machinery"
|
||||
- "stirrups"
|
||||
@@ -0,0 +1,16 @@
|
||||
id: archer
|
||||
name: Archer
|
||||
category: militair
|
||||
domain: land
|
||||
health: 85
|
||||
movement_speed: 2.0
|
||||
cost: 60
|
||||
labor_cost: 1200
|
||||
attack_damage: 25
|
||||
attack_range: 2
|
||||
required_tech: "archery"
|
||||
obsolete_tech: "machinery"
|
||||
icon: images/units/slinger.png
|
||||
actions:
|
||||
- verplaatsen
|
||||
- aanvallen
|
||||
@@ -6,7 +6,9 @@ health: 100
|
||||
movement_speed: 2.0
|
||||
cost: 50
|
||||
labor_cost: 1000
|
||||
build_charges: -1 # -1 voor oneindig doorwerken
|
||||
required_tech: ""
|
||||
obsolete_tech: ""
|
||||
build_charges: -1 # -1 for infinite build charges
|
||||
infinite_charges: true
|
||||
icon: images/units/builder.png
|
||||
actions:
|
||||
@@ -14,5 +16,5 @@ actions:
|
||||
- boerderij_bouwen
|
||||
- build_road
|
||||
action_speeds:
|
||||
boerderij_bouwen: 10.0 # Duur in seconden die deze builder unit nodig heeft voor de actie boerderij_bouwen
|
||||
build_road: 2 # Duur in ticks
|
||||
boerderij_bouwen: 10.0
|
||||
build_road: 2
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
id: crossbowman
|
||||
name: Crossbowman
|
||||
category: militair
|
||||
domain: land
|
||||
health: 110
|
||||
movement_speed: 2.0
|
||||
cost: 120
|
||||
labor_cost: 2400
|
||||
attack_damage: 42
|
||||
attack_range: 2
|
||||
required_tech: "machinery"
|
||||
obsolete_tech: ""
|
||||
icon: images/units/slinger.png
|
||||
actions:
|
||||
- verplaatsen
|
||||
- aanvallen
|
||||
@@ -8,6 +8,8 @@ cost: 60
|
||||
labor_cost: 1500
|
||||
attack_damage: 25
|
||||
attack_range: 1
|
||||
required_tech: "sailing"
|
||||
obsolete_tech: ""
|
||||
icon: images/units/galley.png
|
||||
actions:
|
||||
- verplaatsen
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
id: horseman
|
||||
name: Horseman
|
||||
category: militair
|
||||
domain: land
|
||||
health: 125
|
||||
movement_speed: 4.0
|
||||
cost: 85
|
||||
labor_cost: 1700
|
||||
attack_damage: 34
|
||||
attack_range: 1
|
||||
required_tech: "horseback_riding"
|
||||
obsolete_tech: "stirrups"
|
||||
icon: images/units/warrior.png
|
||||
actions:
|
||||
- verplaatsen
|
||||
- aanvallen
|
||||
@@ -0,0 +1,16 @@
|
||||
id: knight
|
||||
name: Knight
|
||||
category: militair
|
||||
domain: land
|
||||
health: 180
|
||||
movement_speed: 4.0
|
||||
cost: 140
|
||||
labor_cost: 2800
|
||||
attack_damage: 52
|
||||
attack_range: 1
|
||||
required_tech: "stirrups"
|
||||
obsolete_tech: ""
|
||||
icon: images/units/warrior.png
|
||||
actions:
|
||||
- verplaatsen
|
||||
- aanvallen
|
||||
@@ -0,0 +1,16 @@
|
||||
id: musketman
|
||||
name: Musketman
|
||||
category: militair
|
||||
domain: land
|
||||
health: 200
|
||||
movement_speed: 2.0
|
||||
cost: 160
|
||||
labor_cost: 3200
|
||||
attack_damage: 60
|
||||
attack_range: 1
|
||||
required_tech: "gunpowder"
|
||||
obsolete_tech: ""
|
||||
icon: images/units/warrior.png
|
||||
actions:
|
||||
- verplaatsen
|
||||
- aanvallen
|
||||
@@ -6,6 +6,8 @@ health: 100
|
||||
movement_speed: 2.0
|
||||
cost: 80
|
||||
labor_cost: 2000
|
||||
required_tech: ""
|
||||
obsolete_tech: ""
|
||||
icon: images/units/settler.png
|
||||
actions:
|
||||
- verplaatsen
|
||||
|
||||
@@ -8,6 +8,8 @@ cost: 35
|
||||
labor_cost: 800
|
||||
attack_damage: 15
|
||||
attack_range: 2
|
||||
required_tech: ""
|
||||
obsolete_tech: "archery"
|
||||
icon: images/units/slinger.png
|
||||
actions:
|
||||
- verplaatsen
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
id: spearman
|
||||
name: Spearman
|
||||
category: militair
|
||||
domain: land
|
||||
health: 120
|
||||
movement_speed: 2.0
|
||||
cost: 65
|
||||
labor_cost: 1300
|
||||
attack_damage: 28
|
||||
attack_range: 1
|
||||
required_tech: "bronze_working"
|
||||
obsolete_tech: "gunpowder"
|
||||
icon: images/units/warrior.png
|
||||
actions:
|
||||
- verplaatsen
|
||||
- aanvallen
|
||||
@@ -0,0 +1,16 @@
|
||||
id: swordsman
|
||||
name: Swordsman
|
||||
category: militair
|
||||
domain: land
|
||||
health: 140
|
||||
movement_speed: 2.0
|
||||
cost: 90
|
||||
labor_cost: 1800
|
||||
attack_damage: 38
|
||||
attack_range: 1
|
||||
required_tech: "iron_working"
|
||||
obsolete_tech: "gunpowder"
|
||||
icon: images/units/warrior.png
|
||||
actions:
|
||||
- verplaatsen
|
||||
- aanvallen
|
||||
@@ -8,6 +8,8 @@ cost: 40
|
||||
labor_cost: 1000
|
||||
attack_damage: 20
|
||||
attack_range: 1
|
||||
required_tech: ""
|
||||
obsolete_tech: "iron_working"
|
||||
icon: images/units/warrior.png
|
||||
actions:
|
||||
- verplaatsen
|
||||
|
||||
Reference in New Issue
Block a user