547 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			547 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from typing import List | ||
|  | 
 | ||
|  | from ..ItemData import ExistingItemData | ||
|  | 
 | ||
|  | 
 | ||
|  | existing_tech: List[ExistingItemData] = [ | ||
|  |     { | ||
|  |         "Type": "TECH_POTTERY", | ||
|  |         "Cost": 25, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_ANCIENT", | ||
|  |         "Name": "Pottery", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ANIMAL_HUSBANDRY", | ||
|  |         "Cost": 25, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_ANCIENT", | ||
|  |         "Name": "Animal Husbandry", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_MINING", | ||
|  |         "Cost": 25, | ||
|  |         "UITreeRow": 3, | ||
|  |         "EraType": "ERA_ANCIENT", | ||
|  |         "Name": "Mining", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_SAILING", | ||
|  |         "Cost": 50, | ||
|  |         "UITreeRow": -3, | ||
|  |         "EraType": "ERA_ANCIENT", | ||
|  |         "Name": "Sailing", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ASTROLOGY", | ||
|  |         "Cost": 50, | ||
|  |         "UITreeRow": -2, | ||
|  |         "EraType": "ERA_ANCIENT", | ||
|  |         "Name": "Astrology", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_IRRIGATION", | ||
|  |         "Cost": 50, | ||
|  |         "UITreeRow": -1, | ||
|  |         "EraType": "ERA_ANCIENT", | ||
|  |         "Name": "Irrigation", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ARCHERY", | ||
|  |         "Cost": 50, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_ANCIENT", | ||
|  |         "Name": "Archery", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_WRITING", | ||
|  |         "Cost": 50, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_ANCIENT", | ||
|  |         "Name": "Writing", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_MASONRY", | ||
|  |         "Cost": 80, | ||
|  |         "UITreeRow": 2, | ||
|  |         "EraType": "ERA_ANCIENT", | ||
|  |         "Name": "Masonry", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_BRONZE_WORKING", | ||
|  |         "Cost": 80, | ||
|  |         "UITreeRow": 3, | ||
|  |         "EraType": "ERA_ANCIENT", | ||
|  |         "Name": "Bronze Working", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_THE_WHEEL", | ||
|  |         "Cost": 80, | ||
|  |         "UITreeRow": 4, | ||
|  |         "EraType": "ERA_ANCIENT", | ||
|  |         "Name": "The Wheel", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_CELESTIAL_NAVIGATION", | ||
|  |         "Cost": 120, | ||
|  |         "UITreeRow": -2, | ||
|  |         "EraType": "ERA_CLASSICAL", | ||
|  |         "Name": "Celestial Navigation", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_CURRENCY", | ||
|  |         "Cost": 120, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_CLASSICAL", | ||
|  |         "Name": "Currency", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_HORSEBACK_RIDING", | ||
|  |         "Cost": 120, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_CLASSICAL", | ||
|  |         "Name": "Horseback Riding", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_IRON_WORKING", | ||
|  |         "Cost": 120, | ||
|  |         "UITreeRow": 3, | ||
|  |         "EraType": "ERA_CLASSICAL", | ||
|  |         "Name": "Iron Working", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_SHIPBUILDING", | ||
|  |         "Cost": 200, | ||
|  |         "UITreeRow": -3, | ||
|  |         "EraType": "ERA_CLASSICAL", | ||
|  |         "Name": "Shipbuilding", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_MATHEMATICS", | ||
|  |         "Cost": 200, | ||
|  |         "UITreeRow": -1, | ||
|  |         "EraType": "ERA_CLASSICAL", | ||
|  |         "Name": "Mathematics", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_CONSTRUCTION", | ||
|  |         "Cost": 200, | ||
|  |         "UITreeRow": 2, | ||
|  |         "EraType": "ERA_CLASSICAL", | ||
|  |         "Name": "Construction", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ENGINEERING", | ||
|  |         "Cost": 200, | ||
|  |         "UITreeRow": 4, | ||
|  |         "EraType": "ERA_CLASSICAL", | ||
|  |         "Name": "Engineering", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_MILITARY_TACTICS", | ||
|  |         "Cost": 300, | ||
|  |         "UITreeRow": -2, | ||
|  |         "EraType": "ERA_MEDIEVAL", | ||
|  |         "Name": "Military Tactics", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_APPRENTICESHIP", | ||
|  |         "Cost": 300, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_MEDIEVAL", | ||
|  |         "Name": "Apprenticeship", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_MACHINERY", | ||
|  |         "Cost": 300, | ||
|  |         "UITreeRow": 4, | ||
|  |         "EraType": "ERA_MEDIEVAL", | ||
|  |         "Name": "Machinery", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_EDUCATION", | ||
|  |         "Cost": 390, | ||
|  |         "UITreeRow": -1, | ||
|  |         "EraType": "ERA_MEDIEVAL", | ||
|  |         "Name": "Education", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_STIRRUPS", | ||
|  |         "Cost": 390, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_MEDIEVAL", | ||
|  |         "Name": "Stirrups", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_MILITARY_ENGINEERING", | ||
|  |         "Cost": 390, | ||
|  |         "UITreeRow": 2, | ||
|  |         "EraType": "ERA_MEDIEVAL", | ||
|  |         "Name": "Military Engineering", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_CASTLES", | ||
|  |         "Cost": 390, | ||
|  |         "UITreeRow": 3, | ||
|  |         "EraType": "ERA_MEDIEVAL", | ||
|  |         "Name": "Castles", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_CARTOGRAPHY", | ||
|  |         "Cost": 600, | ||
|  |         "UITreeRow": -3, | ||
|  |         "EraType": "ERA_RENAISSANCE", | ||
|  |         "Name": "Cartography", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_MASS_PRODUCTION", | ||
|  |         "Cost": 600, | ||
|  |         "UITreeRow": -2, | ||
|  |         "EraType": "ERA_RENAISSANCE", | ||
|  |         "Name": "Mass Production", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_BANKING", | ||
|  |         "Cost": 600, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_RENAISSANCE", | ||
|  |         "Name": "Banking", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_GUNPOWDER", | ||
|  |         "Cost": 600, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_RENAISSANCE", | ||
|  |         "Name": "Gunpowder", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_PRINTING", | ||
|  |         "Cost": 600, | ||
|  |         "UITreeRow": 4, | ||
|  |         "EraType": "ERA_RENAISSANCE", | ||
|  |         "Name": "Printing", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_SQUARE_RIGGING", | ||
|  |         "Cost": 730, | ||
|  |         "UITreeRow": -3, | ||
|  |         "EraType": "ERA_RENAISSANCE", | ||
|  |         "Name": "Square Rigging", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ASTRONOMY", | ||
|  |         "Cost": 730, | ||
|  |         "UITreeRow": -1, | ||
|  |         "EraType": "ERA_RENAISSANCE", | ||
|  |         "Name": "Astronomy", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_METAL_CASTING", | ||
|  |         "Cost": 730, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_RENAISSANCE", | ||
|  |         "Name": "Metal Casting", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_SIEGE_TACTICS", | ||
|  |         "Cost": 730, | ||
|  |         "UITreeRow": 3, | ||
|  |         "EraType": "ERA_RENAISSANCE", | ||
|  |         "Name": "Siege Tactics", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_INDUSTRIALIZATION", | ||
|  |         "Cost": 930, | ||
|  |         "UITreeRow": -2, | ||
|  |         "EraType": "ERA_INDUSTRIAL", | ||
|  |         "Name": "Industrialization", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_SCIENTIFIC_THEORY", | ||
|  |         "Cost": 930, | ||
|  |         "UITreeRow": -1, | ||
|  |         "EraType": "ERA_INDUSTRIAL", | ||
|  |         "Name": "Scientific Theory", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_BALLISTICS", | ||
|  |         "Cost": 930, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_INDUSTRIAL", | ||
|  |         "Name": "Ballistics", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_MILITARY_SCIENCE", | ||
|  |         "Cost": 930, | ||
|  |         "UITreeRow": 3, | ||
|  |         "EraType": "ERA_INDUSTRIAL", | ||
|  |         "Name": "Military Science", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_STEAM_POWER", | ||
|  |         "Cost": 1070, | ||
|  |         "UITreeRow": -3, | ||
|  |         "EraType": "ERA_INDUSTRIAL", | ||
|  |         "Name": "Steam Power", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_SANITATION", | ||
|  |         "Cost": 1070, | ||
|  |         "UITreeRow": -1, | ||
|  |         "EraType": "ERA_INDUSTRIAL", | ||
|  |         "Name": "Sanitation", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ECONOMICS", | ||
|  |         "Cost": 1070, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_INDUSTRIAL", | ||
|  |         "Name": "Economics", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_RIFLING", | ||
|  |         "Cost": 1070, | ||
|  |         "UITreeRow": 2, | ||
|  |         "EraType": "ERA_INDUSTRIAL", | ||
|  |         "Name": "Rifling", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_FLIGHT", | ||
|  |         "Cost": 1250, | ||
|  |         "UITreeRow": -2, | ||
|  |         "EraType": "ERA_MODERN", | ||
|  |         "Name": "Flight", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_REPLACEABLE_PARTS", | ||
|  |         "Cost": 1250, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_MODERN", | ||
|  |         "Name": "Replaceable Parts", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_STEEL", | ||
|  |         "Cost": 1250, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_MODERN", | ||
|  |         "Name": "Steel", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ELECTRICITY", | ||
|  |         "Cost": 1370, | ||
|  |         "UITreeRow": -3, | ||
|  |         "EraType": "ERA_MODERN", | ||
|  |         "Name": "Electricity", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_RADIO", | ||
|  |         "Cost": 1370, | ||
|  |         "UITreeRow": -2, | ||
|  |         "EraType": "ERA_MODERN", | ||
|  |         "Name": "Radio", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_CHEMISTRY", | ||
|  |         "Cost": 1370, | ||
|  |         "UITreeRow": -1, | ||
|  |         "EraType": "ERA_MODERN", | ||
|  |         "Name": "Chemistry", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_COMBUSTION", | ||
|  |         "Cost": 1370, | ||
|  |         "UITreeRow": 2, | ||
|  |         "EraType": "ERA_MODERN", | ||
|  |         "Name": "Combustion", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ADVANCED_FLIGHT", | ||
|  |         "Cost": 1480, | ||
|  |         "UITreeRow": -2, | ||
|  |         "EraType": "ERA_ATOMIC", | ||
|  |         "Name": "Advanced Flight", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ROCKETRY", | ||
|  |         "Cost": 1480, | ||
|  |         "UITreeRow": -1, | ||
|  |         "EraType": "ERA_ATOMIC", | ||
|  |         "Name": "Rocketry", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ADVANCED_BALLISTICS", | ||
|  |         "Cost": 1480, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_ATOMIC", | ||
|  |         "Name": "Advanced Ballistics", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_COMBINED_ARMS", | ||
|  |         "Cost": 1480, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_ATOMIC", | ||
|  |         "Name": "Combined Arms", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_PLASTICS", | ||
|  |         "Cost": 1480, | ||
|  |         "UITreeRow": 2, | ||
|  |         "EraType": "ERA_ATOMIC", | ||
|  |         "Name": "Plastics", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_COMPUTERS", | ||
|  |         "Cost": 1660, | ||
|  |         "UITreeRow": -3, | ||
|  |         "EraType": "ERA_ATOMIC", | ||
|  |         "Name": "Computers", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_NUCLEAR_FISSION", | ||
|  |         "Cost": 1660, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_ATOMIC", | ||
|  |         "Name": "Nuclear Fission", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_SYNTHETIC_MATERIALS", | ||
|  |         "Cost": 1660, | ||
|  |         "UITreeRow": 2, | ||
|  |         "EraType": "ERA_ATOMIC", | ||
|  |         "Name": "Synthetic Materials", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_TELECOMMUNICATIONS", | ||
|  |         "Cost": 1850, | ||
|  |         "UITreeRow": -3, | ||
|  |         "EraType": "ERA_INFORMATION", | ||
|  |         "Name": "Telecommunications", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_SATELLITES", | ||
|  |         "Cost": 1850, | ||
|  |         "UITreeRow": -1, | ||
|  |         "EraType": "ERA_INFORMATION", | ||
|  |         "Name": "Satellites", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_GUIDANCE_SYSTEMS", | ||
|  |         "Cost": 1850, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_INFORMATION", | ||
|  |         "Name": "Guidance Systems", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_LASERS", | ||
|  |         "Cost": 1850, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_INFORMATION", | ||
|  |         "Name": "Lasers", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_COMPOSITES", | ||
|  |         "Cost": 1850, | ||
|  |         "UITreeRow": 2, | ||
|  |         "EraType": "ERA_INFORMATION", | ||
|  |         "Name": "Composites", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_STEALTH_TECHNOLOGY", | ||
|  |         "Cost": 1850, | ||
|  |         "UITreeRow": 3, | ||
|  |         "EraType": "ERA_INFORMATION", | ||
|  |         "Name": "Stealth Technology", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ROBOTICS", | ||
|  |         "Cost": 2155, | ||
|  |         "UITreeRow": -2, | ||
|  |         "EraType": "ERA_INFORMATION", | ||
|  |         "Name": "Robotics", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_NANOTECHNOLOGY", | ||
|  |         "Cost": 2155, | ||
|  |         "UITreeRow": 2, | ||
|  |         "EraType": "ERA_INFORMATION", | ||
|  |         "Name": "Nanotechnology", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_NUCLEAR_FUSION", | ||
|  |         "Cost": 2155, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_INFORMATION", | ||
|  |         "Name": "Nuclear Fusion", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_BUTTRESS", | ||
|  |         "Cost": 300, | ||
|  |         "UITreeRow": -3, | ||
|  |         "EraType": "ERA_MEDIEVAL", | ||
|  |         "Name": "Buttress", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_REFINING", | ||
|  |         "Cost": 1250, | ||
|  |         "UITreeRow": 3, | ||
|  |         "EraType": "ERA_MODERN", | ||
|  |         "Name": "Refining", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_SEASTEADS", | ||
|  |         "Cost": 2200, | ||
|  |         "UITreeRow": -3, | ||
|  |         "EraType": "ERA_FUTURE", | ||
|  |         "Name": "Seasteads", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ADVANCED_AI", | ||
|  |         "Cost": 2200, | ||
|  |         "UITreeRow": -2, | ||
|  |         "EraType": "ERA_FUTURE", | ||
|  |         "Name": "Advanced AI", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_ADVANCED_POWER_CELLS", | ||
|  |         "Cost": 2200, | ||
|  |         "UITreeRow": -1, | ||
|  |         "EraType": "ERA_FUTURE", | ||
|  |         "Name": "Advanced Power Cells", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_CYBERNETICS", | ||
|  |         "Cost": 2200, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_FUTURE", | ||
|  |         "Name": "Cybernetics", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_SMART_MATERIALS", | ||
|  |         "Cost": 2200, | ||
|  |         "UITreeRow": 1, | ||
|  |         "EraType": "ERA_FUTURE", | ||
|  |         "Name": "Smart Materials", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_PREDICTIVE_SYSTEMS", | ||
|  |         "Cost": 2200, | ||
|  |         "UITreeRow": 2, | ||
|  |         "EraType": "ERA_FUTURE", | ||
|  |         "Name": "Predictive Systems", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_OFFWORLD_MISSION", | ||
|  |         "Cost": 2500, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_FUTURE", | ||
|  |         "Name": "Offworld Mission", | ||
|  |     }, | ||
|  |     { | ||
|  |         "Type": "TECH_FUTURE_TECH", | ||
|  |         "Cost": 2600, | ||
|  |         "UITreeRow": 0, | ||
|  |         "EraType": "ERA_FUTURE", | ||
|  |         "Name": "Future Tech", | ||
|  |     }, | ||
|  | ] |