# Each file contains a whole tech-group (theoretical research type),
# with all of its levels and applications.

technology = {
	id = [Y]
	category = [industry/armor/artillery/infantry/heavy_aircraft/light_aircraft/nuclear/naval/rocket/submarine/electronics/land_doctrine/naval_doctrine/air_doctrine]
	name = TECH_NAME #Localized name
	desc = TECH_DESC #Localized description
	
	level = {
		id = [Y]
		name = LEVEL_NAME #Localized name
		desc = LEVEL_DESC #Localized description
		
		cost = [IC]								# Optional
		time = [nominal time]					# Optional
		neg_offset = [negative random offset]	# Optional
		pos_offset = [positive random offset]	# Optional
		
		application = {
			id = [Y]
			name = APP_NAME #Localized name
			desc = APP_DESC #Localized description
			required = { [List of pre-requisite application ids] }
			
			chance = [X] # Chance of this application appearing when the tech level is reached. Usually 1 (100%).
			
			cost = [IC]
			time = [nominal time]
			neg_offset = [negative random offset]
			pos_offset = [positive random offset]
			
			effects = { # These commands should also be available as event commands
				
				#
				# UNIT VALUES
				#
				# These bonuses are applied "now" or "on_upgrade".
				#
				# * "Now" usually represents doctrinal changes and improved munitions. 
				# These bonuses are applied immediately and without cost to all existing 
				# units of the type as well as added to the "upgrade template".
				#
				# * "On_upgrade" is used for bonuses resulting from physical modifications
				# and additions to existing hardware. E.g. a longer gun barrel on a 
				# tank, or a targeting computer on a ship. These bonuses are added to 
				# the "upgrade template", but not to units in the field - 
				# they need to be upgraded, which costs money and industrial capacity.
				
				
				# Land unit bonuses
				command = { type = [soft_attack/hard_attack/ground_defense/air_attack/air_defense/build_cost/build_time/manpower/speed/max_organization/transport_weight/supply_consumption/fuel_consumption/speed_cap_art/speed_cap_eng/speed_cap_at/speed_cap_aa] 
							which = [armor/infantry/cavalry/motorized_infantry/mechanized_infantry/paratrooper/marine/bergsjaeger/artillery/anti_tank/anti_air/engineer]
							when = [now/on_upgrade]
							value = [relative values (modifiers) as applicable]
				} 
				# Air unit bonuses
				command = { type = [air_attack/strategic_attack/tactical_attack/naval_attack/air_defense/build_cost/build_time/manpower/speed/surface_detection/air detection/transport_capacity/supply_consumption/fuel_consumption/range] 
							which = [fighter/strategic_bomber/tactical_bomber/torpedo_plane/transport_plane/night_fighter]
							when = [now/on_upgrade]
							value = [relative values (modifiers) as applicable]
				}
				# Naval unit bonuses
				command = { type = [naval_attack/air_attack/shore_attack/naval_defense/air_defense/build_cost/build_time/manpower/speed/surface_detection/air detection/visibility/transport_capacity/supply_consumption/fuel_consumption/range] 
							which = [battleship/cruiser/destroyer/carrier/submarine/transports]
							when = [now/on_upgrade]
							value = [relative values (modifiers) as applicable]
				}
				
				#
				# NEW UNIT MODELS
				#
				# New models updates the current "division" template for a unit type. 
				# Model names are country-specific (and historical as far as possible).
				# Old air and land units can be equipped with new models, but not naval
				# units (they have to be scrapped and rebuilt.)
				
				command = { type = [new_model] 
							which = [armor/infantry/cavalry/motorized/mechanized/paratrooper/marine/bergsjaeger/fighter/strategic_bomber/tactical_bomber/torpedo_plane/transport_plane/battleship/cruiser/destroyer/carrier/submarine/transports]
							value = [The model number]
				}
				
				#
				# ACTIVATE UNIT TYPE
				#
				# Some unit types (e.g. marines) cannot be built until they have been 
				# researched.
				
				command = { type = activate_unit_type
							which = [marine/paratrooper/flying_bomb/flying_rocket/ballistic_missile/ICBM/artillery/anti_tank/anti_air/motorized/mechanized]
				}
				
				#
				# ACTIVATE NUCLEAR CAPABILITY OF MISSILES
				#
				
				command = { type = nuclear_carrier
							which = [flying_bomb/flying_rocket]
				}
				
				#
				# ACTIVATE MISSILE CAPABILITY OF SUBMARINES
				#
				
				command = { type = missile_carrier
							which = [submarine]
				}
				
				#
				# UNIT COMBAT MODIFIERS
				#
				
				# Terrain combat modifiers
				command = { type = [desert_attack/desert_defense/mountain_attack/mountain_defense/hill_attack/hill_defense/forest_attack/forest_defense/swamp_attack/swamp_defense/urban_attack/urban_defense/river_attack/shore_attack/paradrop_attack]
							which = [armor/infantry/cavalry/motorized/mechanized/paratrooper/marine/bergsjaeger/artillery/anti_tank/anti_air/engineer]
							value = [X] # Modifier in percent (+10 = 10%)
				}
				# Terrain movement modifiers
				command = { type = [desert_move/mountain_move/hill_move/forest_move/swamp_move/urban_move/river_crossing]
							which = [armor/infantry/cavalry/motorized_infantry/mechanized_infantry/paratroopers/marines/mountaineers/artillery/anti-tank/anti-air/engineers]
							value = [X] # Modifier in percent (+10 = 10%)
				}
				# Weather land-combat modifiers
				command = { type = [frozen_attack/frozen_defense/snow_attack/snow_defense/blizzard_attack/blizzard_defense/rain_attack/rain_defense/storm_attack/storm_defense/muddy_attack/muddy_defense]
							which = [armor/infantry/cavalry/motorized/mechanized/paratrooper/marine/bergsjaeger/artillery/anti_tank/anti_air/engineer]
							value = [X] # Modifier in percent (+10 = 10%)
				}
				# Weather land-movement modifiers
				command = { type = [frozen_move/snow_move/blizzard_move/rain_move/storm_move/muddy_move]
							which = [armor/infantry/cavalry/motorized/mechanized/paratrooper/marine/bergsjaeger/artillery/anti_tank/anti_air/engineer]
							value = [X] # Modifier in percent (+10 = 10%)
				}
				# Weather air-combat modifiers
				command = { type = [snow_attack/rain_attack]
							which = [fighter/strategic_bomber/tactical_bomber/torpedo_plane/night_fighter]
							value = [X] # Modifier in percent (+10 = 10%)
				}
				# Weather air-movement modifiers
				command = { type = [snow_move/blizzard_move/rain_move/storm_move]
							which = [fighter/strategic_bomber/tactical_bomber/torpedo_plane/transport_plane/night_fighter]
							value = [X] # Modifier in percent (+10 = 10%)
				}
				# Weather naval-combat modifiers
				command = { type = [snow_attack/rain_attack]
							which = [battleship/cruiser/destroyer/carrier/submarine/transports]
							value = [X] # Modifier in percent (+10 = 10%)
				}
				# Weather naval-movement modifiers
				command = { type = [snow_move/blizzard_move/rain_move/storm_move]
							which = [battleship/cruiser/destroyer/carrier/submarine/transports]
							value = [X] # Modifier in percent (+10 = 10%)
				}
				# Night modifiers
				command = { type = night_move/night_attack/night_defense
							which = [armor/infantry/cavalry/motorized/mechanized/paratrooper/marine/bergsjaeger/artillery/anti_tank/anti_air/engineer/battleship/cruiser/destroyer/carrier/submarine/transport/fighter/strategic_bomber/tactical_bomber/torpedo_plane/transport_plane/night_fighter]
							value = [X] # Modifier in percent (+10 = 10%)
				}
				
				#
				# SPECIAL UNIT BONUSES
				#
				
				# Minisubs (BBs and CVs attack ships in harbors with this bonus added to their sea attack value)
				command = { type = minisub_bonus
							value = [X] # NOT INCREMENTAL. This is the new value.
				}
				
				#
				# GLOBAL MODIFIERS
				#
				
				# Surprise modifiers
				command = { type = surprise
							which = [naval/land/air]
							value = [X] # Modifier in percents
				}
				# Intelligence Operation modifiers
				command = { type = intelligence
							which = [us/them]
							value = [X] # Modifier in percents
				}
				# Army Detection modifiers
				command = { type = army_detection
							which = [us/them]
							value = [X] # Modifier in percents
				}
				# Provincial AA batteries
				command = { type = AA_batteries
							value = [X] # Modifier in percents
				}
				
				#
				# RESEARCH MODIFIERS
				#
				
				# Research modifiers
				command = { type = [research_cost/research_time]
							which = [application/theoretical] # Possibly all individual TR groups too?
							value = [X] # Modifier in percents
				}
				
				#
				# INDUSTRIAL MODIFIERS
				#
				
				# Industrial multipliers
				# E.g. coal_to_oil 4 means four coal are needed to produce one oil. 0.5 means 1 coal produces 2 oil.
				command = { type = industrial_multiplier
							which = [coal_to_oil/oil_to_rubber]
							value = [X]
				}
				# Industrial modifiers (additive)
				# 'total' is the conversion factor from every built industry point into Industrial Capacity.
				# 'supplies' is a modifier for the amount of supplies produced by every reserved IC unit.
				command = { type = industrial_modifer
							which = [total/supplies]
							value = [X] # Percents
				}
			}
		}
		
		application = {
			...
		}
	}
	
	level = {
		...
	}
}