Losa10/PreTrain-HOI4-Modding-Assistant huggingface dataset:
### Entity: Scripted Effect
Component: EAI_PC_complete_project
Constructs: limit, has_country_flag, check_variable, set_temp_variable
Source: game
File: common/scripted_effects/EAI_CONSTRUCTION_PRIORITY_effects.txt

Code:
EAI_PC_complete_project = {
	if = {
		limit = {
			has_country_flag = EAI_PC_trace_functions
		}
		log = EAI_PC_complete_project > THIS=[this.getname] PREV=[prev.getname] _project_id=[?_project_id]
	} {
		limit = {
			check_variable = {
				EAI_PC_target_state^_project_id = < 0
			}
		}
		var:EAI_PC_target_state^_project_id = {
			if = {
				limit = {
					set_temp_variable = {
						_project_building_type = PREV.EAI_PC_building_type^_project_id
					} {
						_project_build_for_ally = PREV.EAI_PC_project_build_for_ally^_project_id
					} {
						_project_province_id = PREV.EAI_PC_target_province^_project_id
					} {
						_project_connect_id = PREV.EAI_PC_connect_province^_project_id
					}
					OR = {
						check_variable = {
							PREV.EAI_PC_has_reserved_slot^_project_id = 1
						}
						EAI_PC_can_build_project = yes
					}
				}
				PREV = {
					EAI_PC_unreserve_building_slot = yes
				}
				EAI_PC_add_finished_building = yes
			}
		}
		set_temp_variable = {
			EAI_PC_end_project_source = 2
		}
		EAI_PC_end_project = yes
		if = {
			limit = {
				PREV = {
					OR = {
						has_country_flag = EAI_priority_construction_logging
						AND = {
							has_country_flag = EAI_PC_AA_logging
							check_variable = {
								EAI_PC_building_type^_project_id = global.EAI_PC_AA
							}
						} {
							has_country_flag = EAI_PC_AIRBASE_logging
							check_variable = {
								EAI_PC_building_type^_project_id = global.EAI_PC_AIR
							}
						} {
							has_country_flag = EAI_PC_FORT_logging
							check_variable = {
								_project_building_type = global.EAI_PC_BUNKER
							}
						} {
							has_country_flag = EAI_PC_FORT_logging
							check_variable = {
								_project_building_type = global.EAI_PC_CBUNKER
							}
						} {
							has_country_flag = EAI_PC_INFRA_logging
							check_variable = {
								_project_building_type = global.EAI_PC_INF
							}
						} {
							has_country_flag = EAI_PC_RAIL_logging
							check_variable = {
								_project_building_type = global.EAI_PC_RAIL
							}
						} {
							has_country_flag = EAI_PC_FACILITY_logging
							OR = {
								check_variable = {
									_project_building_type = global.EAI_PC_LFACILITY
								} {
									_project_building_type = global.EAI_PC_NFACILITY
								} {
									_project_building_type = global.EAI_PC_AFACILITY
								} {
									_project_building_type = global.EAI_PC_BFAC
# ... (truncated)
### Entity: Idea
Component: CZE_a_modern_navy_idea
Constructs: removal_cost
Source: game
File: common/ideas/czechoslovakia.txt

Code:
CZE_a_modern_navy_idea = {
	picture = generic_sea_focused_navy
	allowed = {
		always = no
	}
	allowed_civil_war = {
		always = yes
	}
	removal_cost = -1
	modifier = {
		navy_org_factor = 0.05
		positioning = 0.05
		naval_night_attack = 0.05
		production_speed_naval_supply_hub_factor = 0.05
		production_speed_naval_headquarters_factor = 0.05
	}
}
### Entity: Idea
Component: GER_air_safety_regulations
Constructs: has_government, removal_cost, equipment_bonus, build_cost_ic
Source: game
File: common/ideas/GER.txt

Code:
GER_air_safety_regulations = {
	allowed = {
		original_tag = GER
	}
	allowed_civil_war = {
		has_government = neutrality
	}
	removal_cost = -1
	picture = generic_air_bonus
	equipment_bonus = {
		small_plane_airframe = {
			instant = yes
			build_cost_ic = 0.05
		}
		cv_small_plane_airframe = {
			instant = yes
			build_cost_ic = 0.05
		}
		small_plane_cas_airframe = {
			instant = yes
			build_cost_ic = 0.05
		}
		cv_small_plane_cas_airframe = {
			instant = yes
			build_cost_ic = 0.05
		}
		small_plane_naval_bomber_airframe = {
			instant = yes
			build_cost_ic = 0.05
		}
		cv_small_plane_naval_bomber_airframe = {
			instant = yes
			build_cost_ic = 0.05
		}
		medium_plane_airframe = {
			instant = yes
			build_cost_ic = 0.05
		}
		medium_plane_fighter_airframe = {
			instant = yes
			build_cost_ic = 0.05
		}
		medium_plane_scout_plane_airframe = {
			instant = yes
			build_cost_ic = 0.05
		}
		large_plane_airframe = {
			instant = yes
			build_cost_ic = 0.05
		}
		large_plane_maritime_patrol_plane_airframe = {
			instant = yes
			build_cost_ic = 0.05
		}
		transport_plane_equipment = {
			instant = yes
			build_cost_ic = 0.05
		}
	}
}
### Entity: Idea
Component: AFG_muslim_youth
Constructs: war_support_factor, has_government, removal_cost
Source: game
File: common/ideas/r56_afghanistan.txt

Code:
AFG_muslim_youth = {
	picture = generic_fascist_workers
	allowed = {
		original_tag = AFG
	}
	allowed_civil_war = {
		always = no
	}
	cancel = {
		NOT = {
			has_government = fascism
		}
	}
	removal_cost = -1
	modifier = {
		war_support_factor = 0.05
		conscription = 0.01
		mobilization_laws_cost_factor = -0.1
	}
}
### Entity: National Focus
Tree: per_focus
Component: PER_trains_from_germany
Constructs: add_equipment_to_stockpile, prerequisite, limit, has_war_with, add_opinion_modifier, completion_reward, has_dlc, add_equipment_subsidy
Source: game
File: common/national_focus/persia.txt

Code:
focus = {
	id = PER_trains_from_germany
	icon = GFX_focus_generic_german_trade
	prerequisite = {
		focus = PER_expand_tabriz_masshad PER_expand_tehran_emam PER_expand_tehran_abbas
	}
	x = 1
	y = 1
	relative_position_id = PER_expand_tabriz_masshad
	mutually_exclusive = {
		focus = PER_trains_from_britain
	}
	cost = 5
	available = {
		GER = {
			exists = yes
			NOT = {
				has_war_with = ROOT
			}
		}
	}
	bypass = {
		GER = {
			exists = no
		}
	}
	ai_will_do = {
		factor = 25
	}
	search_filters = {
		FOCUS_FILTER_INDUSTRY
	}
	completion_reward = {
		GER = {
			add_opinion_modifier = {
				target = ROOT
				modifier = huge_increase
			}
		}
		custom_effect_tooltip = CHL_skip_one_line_tt
		IF = {
			limit = {
				has_dlc = Arms Against Tyranny
			}
			add_equipment_subsidy = {
				cic = 2000
				equipment_type = train_equipment
				seller_tags = {
					GER
				}
			}
			add_equipment_to_stockpile = {
				type = train_equipment
				amount = 15
				producer = GER
			}
		}
		ELSE = {
			add_equipment_to_stockpile = {
				type = train_equipment
				amount = 20
				producer = GER
			}
		}
	}
}
### Entity: Character
Component: GER_hans_krebs
Constructs: has_country_flag
Source: game
File: common/characters/GER.txt

Code:
GER_hans_krebs = {
	name = GER_hans_krebs
	portraits = {
		army = {
			large = GFX_portrait_GER_hans_krebs
			small = GFX_portrait_GER_hans_krebs_small
		}
	}
	corps_commander = {
		traits = {
			politically_connected winter_specialist
		}
		skill = 3
		attack_skill = 3
		defense_skill = 2
		planning_skill = 3
		logistics_skill = 2
		visible = {
			has_country_flag = GER_recalled_hans_krebs_from_russia_flag
		}
	}
}
### Entity: Unit Template
Component: equipments
Constructs: limit, has_dlc, has_idea, is_archetype, is_convertable, is_buildable, allow_mission_type, maximum_speed
Source: game
File: common/units/equipment/intercontinental_bomber.txt

Code:
equipments = {
	strat_bomber_intercontinental_equipment = {
		year = 1942
		can_be_produced = {
			if = {
				limit = {
					has_dlc = Arms Against Tyranny
				}
				NOT = {
					has_idea = BUL_army_restrictions_aat
				}
			}
			else = {
				NOT = {
					has_idea = BUL_army_restrictions
				}
			}
		}
		is_archetype = yes
		is_convertable = no
		picture = archetype_fighter_equipment
		is_buildable = no
		type = {
			strategic_bomber
		}
		allowed_types = {
			strategic_bomber
		}
		allow_mission_type = training
		group_by = archetype
		sprite = strat_bomber_intercontinental
		air_map_icon_frame = 11
		interface_category = interface_category_air
		interface_overview_category_index = 5
	}
	strat_bomber_intercontinental_equipment_1 = {
		year = 1942
		archetype = strat_bomber_intercontinental_equipment
		priority = 100
		allow_mission_type = {
			strategic_bomber
		}
		air_range = 12000
		maximum_speed = 450
		air_agility = 12
		air_attack = 60
		air_defence = 55
		air_bombing = 36
		upgrades = {
			plane_bomb_upgrade plane_range_upgrade plane_engine_upgrade plane_reliability_upgrade
		}
		lend_lease_cost = 20
		air_superiority = 0.01
		reliability = 0.75
		surface_detection = 1
		resources = {
			aluminium = 8
			rubber = 4
		}
		build_cost_ic = 140
		manpower = 100
		fuel_consumption = 1.25
	}
}
### Entity: AI Strategy
Component: BUL_befriend_ENG
Constructs: has_government, has_war_with, has_country_flag, has_dlc, has_game_rule, has_opinion, has_capitulated, is_subject
Source: game
File: common/ai_strategy/BUL.txt

Code:
BUL_befriend_ENG = {
	allowed = {
		original_tag = BUL
		has_dlc = Battle for the Bosporus
	}
	enable = {
		OR = {
			has_country_flag = BUL_AI_RANDOM_DEMOCRATIC_LIBERAL
			has_game_rule = {
				rule = BUL_ai_behavior
				option = DEMOCRATIC_LIBERAL
			}
		} {
			has_government = democratic neutrality
		}
		focus_progress = {
			focus = BUL_legislative_elections
			progress = > 0.1
		}
		country_exists = ENG
		ENG = {
			has_opinion = {
				target = ROOT
				value = < 50
			}
			has_capitulated = no
			is_subject = no
		}
	}
	abort = {
		OR = {
			NOT = {
				country_exists = ENG
			}
			has_war_with = ENG
			ENG = {
				OR = {
					has_government = fascism communism
					has_opinion = {
						target = ROOT
						value = > 80
					}
					has_capitulated = yes
					is_subject = yes
				}
			}
		}
	}
	ai_strategy = {
		type = diplo_action_desire
		id = ENG
		target = improve_relation
		value = 200
	}
}
### Entity: National Focus
Tree: jap_focus
Component: JAP_achieving_joubukkokudo
Constructs: prerequisite, has_government, completion_reward, is_subject, has_country_leader, has_war_support, has_stability, cancel_if_invalid
Source: game
File: common/national_focus/japan.txt

Code:
focus = {
	id = JAP_achieving_joubukkokudo
	icon = GFX_focus_smiling_buddha
	x = 0
	y = 2
	relative_position_id = JAP_the_spirit_of_the_ikko_ikki
	prerequisite = {
		focus = JAP_the_spirit_of_the_ikko_ikki
	}
	cost = 10
	ai_will_do = {
		factor = 1
	}
	available = {
		is_subject = no
		has_government = communism
		has_country_leader = {
			ruling_only = yes
			character = JAP_giro_senoo
		}
		surrender_progress = < 0.01
		has_war_support = > 0.8
		has_stability = > 0.8
		282 = {
			is_controlled_by_ROOT_or_ally = yes
		}
		525 = {
			is_controlled_by_ROOT_or_ally = yes
		}
		608 = {
			is_controlled_by_ROOT_or_ally = yes
		}
		671 = {
			is_controlled_by_ROOT_or_ally = yes
		}
	}
	bypass = {

	}
	cancel_if_invalid = yes
	continue_if_invalid = no
	available_if_capitulated = no
	search_filters = {
		FOCUS_FILTER_POLITICAL FOCUS_FILTER_STABILITY FOCUS_FILTER_WAR_SUPPORT FOCUS_FILTER_MANPOWER
	}
	completion_reward = {
		set_cosmetic_tag = JAP_pure_buddhist_land_tag
		custom_effect_tooltip = generic_skip_one_line_tt
		swap_ideas = {
			remove_idea = JAP_buddhist_socialism_idea
			add_idea = JAP_buddhist_socialism_idea_2
		}
	}
}
### Entity: National Focus
Tree: chl_focus
Component: CHL_support_the_democracies
Constructs: prerequisite, has_war, add_ideas, has_government, completion_reward, set_rule
Source: game
File: common/national_focus/chile.txt

Code:
focus = {
	id = CHL_support_the_democracies
	icon = GFX_focus_generic_league_of_nations
	relative_position_id = CHL_kickstart_the_arsenal_of_democracy
	x = -1
	y = 1
	cost = 10
	prerequisite = {
		focus = CHL_kickstart_the_arsenal_of_democracy
	}
	mutually_exclusive = {
		focus = CHL_an_attempt_to_maintain_our_neutrality
	}
	ai_will_do = {
		base = 2
		modifier = {
			factor = 0
			NOT = {
				has_government = democratic
			}
		}
	}
	available = {
		has_government = democratic
		any_country = {
			has_government = democratic
			has_war = yes
			NOT = {
				TAG = ROOT
			}
		}
	}
	search_filters = {
		FOCUS_FILTER_POLITICAL FOCUS_FILTER_ANNEXATION FOCUS_FILTER_ARMY_XP FOCUS_FILTER_AIR_XP
	}
	completion_reward = {
		add_ideas = CHL_democratic_volunteer_corps
		set_rule = {
			can_send_volunteers = yes
		}
	}
}
### Entity: Character
Component: ETH_fitawrari_yeebio_woldai
Source: game
File: common/characters/ETH.txt

Code:
ETH_fitawrari_yeebio_woldai = {
	name = ETH_fitawrari_yeebio_woldai
	portraits = {
		civilian = {
			large = GFX_portrait_ETH_fitawrari_yeebio_woldai
		}
	}
	country_leader = {
		ideology = socialism
		expire = 1965.1.1.1
		id = -1
	}
}
### Entity: AI Strategy
Component: EAI_MILITARY_AREA_capital_defense_42
Constructs: has_war_with
Source: game
File: common/ai_strategy/EAI_MILITARY_strategies.txt

Code:
EAI_MILITARY_AREA_capital_defense_42 = {
	enable = {
		CAPITAL_SCOPE = {
			state = 42
		}
		any_of_scopes = {
			array = global.EAI_MAP_capital_defense_42
			CONTROLLER = {
				has_war_with = ROOT
			}
		}
	}
	abort_when_not_enabled = yes
	ai_strategy = {
		type = put_unit_buffers
		ratio = 0.01
		order_id = 9
		states = {
			42
		}
		subtract_invasions_from_need = no
		subtract_fronts_from_need = no
	}
}
### Entity: National Focus
Tree: prc_focus
Component: PRC_bolshevik_world_revolution
Constructs: prerequisite, add_ideas, completion_reward, cancel_if_invalid
Source: game
File: common/national_focus/china_communist_sea.txt

Code:
focus = {
	id = PRC_bolshevik_world_revolution
	icon = GFX_focus_ger_great_red_menace
	prerequisite = {
		focus = PRC_soviet_technological_cooperation
	}
	x = -3
	y = 1
	relative_position_id = PRC_soviet_technological_cooperation
	cost = 10
	ai_will_do = {
		factor = 1
	}
	available = {

	}
	bypass = {

	}
	cancel_if_invalid = yes
	continue_if_invalid = no
	available_if_capitulated = no
	completion_reward = {
		add_ideas = PRC_spread_world_revolution
	}
}
### Entity: National Focus
Tree: yug_focus
Component: YUG_invite_romania
Constructs: has_completed_focus, prerequisite, limit, has_government, has_war_with, has_country_flag, completion_reward, is_puppet
Source: game
File: common/national_focus/yugoslavia.txt

Code:
focus = {
	id = YUG_invite_romania
	icon = GFX_focus_invite_romania
	prerequisite = {
		focus = YUG_pan_balkan_workers_congress
	}
	x = -2
	y = 1
	relative_position_id = YUG_pan_balkan_workers_congress
	cost = 5
	ai_will_do = {
		factor = 100
	}
	available = {
		ROM = {
			NOT = {
				has_war_with = ROOT
			}
			exists = yes
			is_puppet = no
			is_in_faction = no
			has_government = communism
		}
		is_faction_leader = yes
		is_subject = no
	}
	bypass = {
		ROM = {
			OR = {
				exists = no
				is_puppet_of = ROOT
				is_in_faction = yes
				has_country_flag = banned_communism_flag
				AND = {
					NOT = {
						has_government = communism
					}
					hidden_trigger = {
						has_country_flag = had_yugo_civil_war_flag
					}
					has_civil_war = no
				}
			}
		}
	}
	cancel_if_invalid = yes
	continue_if_invalid = no
	available_if_capitulated = no
	search_filters = {
		FOCUS_FILTER_POLITICAL
	}
	complete_tooltip = {

	}
	completion_reward = {
		ROM = {
			country_event = generic.5
		}
		if = {
			limit = {
				has_completed_focus = YUG_invite_greece YUG_invite_hungary
			}
			unlock_decision_tooltip = YUG_instigate_in_turkey
		}
	}
}
### Entity: Effect Reference
Construct: set_air_oob
Source: vanilla_docs
File: documentation/effects_documentation.md

Doc:
## set_air_oob

* Supported Scopes: COUNTRY
* Supported Targets: none

```
Registers an Order of Battle (OOB) file to be loaded for a country at game start, replacing any previously registered OOB (with key "air") on that country.
Only intended to be used within history files.

Example:
set_air_oob = "ENG_1936_Air"
```
### Entity: Operation
Component: FRA_coup_in_syria
Constructs: limit, has_country_flag, operation_cost, every_state, has_equipment
Source: game
File: common/operations/LaR_FRA_operations.txt

Code:
FRA_coup_in_syria = {
	icon = GFX_operations_coup_government
	map_icon = GFX_operations_coup_government_map
	name = FRA_coup_in_syria
	desc = FRA_coup_in_syria_desc
	days = 90
	allowed = {
		original_tag = FRA
	}
	selection_target = {
		targets = {
			FROM
		}
	}
	selection_target_state = {
		OR = {
			state = 677 680 554 553
		}
	}
	outcome_modifiers = {
		operation_outcome
	}
	cost_modifiers = {
		operation_cost
	}
	risk_modifiers = {
		operation_risk
	}
	visible = {
		has_country_flag = FRA_coup_in_syria_flag
		FROM = {
			controls_state = 677 680 554 553
		}
	}
	operatives = 1
	network_strength = 50
	equipment = {
		infantry_equipment = 5000
		support_equipment = 500
	}
	on_start = {

	}
	outcome_potential = {
		every_state = {
			limit = {
				OR = {
					state = 677 680 554 553
				}
				CONTROLLER = {
					not = {
						tag = ROOT
					}
				}
			}
			ROOT = {
				transfer_state = PREV
			}
		}
	}
	risk_chance = 0.25
	outcome_execute = {
		VIC = {
			country_event = LaR_france_vichy_notification_events.7
		}
		every_state = {
			limit = {
				OR = {
					state = 677 680 554 553
				}
				CONTROLLER = {
					not = {
						tag = ROOT
					}
				}
			}
			ROOT = {
				transfer_state = PREV
			}
		}
	}
	phases = {
		infiltration_submarine = {
			base = 33
		}
		infiltration_paradrop = {
			base = 33
			modifier = {
				ROOT = {
					has_equipment = {
						transport_plane_equipment = < 1
					}
				}
				factor = 0.1
			}
		}
		infiltration_border = {
			base = 33
		}
	} {
		lar_fra_coup_pre_position_units = {
			base = 25
		}
	} {
		lar_fra_launch_coup = {
			base = 25
		}
	}
}
### Entity: State History
Component: 980
Constructs: add_core_of, add_to_array
Source: game
File: history/states/980-Bandar Abbas.txt

Code:
state = {
	id = 980
	name = STATE_980
	history = {
		owner = PER
		victory_points = {
			7982 5
		}
		buildings = {
			infrastructure = 1
			7982 = {
				naval_base = 3
			}
		}
		add_core_of = PER
		add_to_array = {
			state_victory_points = 7982
		}
	}
	provinces = {
		1889 4959 7982 12863 13480
	}
	manpower = 575241
	buildings_max_level_factor = 1.0
	state_category = rural
	local_supplies = 0.0
}
### Entity: Character
Component: vfb_trait_rademaker
Source: game
File: common/country_leader/r56_traits.txt

Code:
vfb_trait_rademaker = {
	random = no
	navy_capital_ship_defence_factor = 0.075
	naval_coordination = 0.075
}
### Entity: Character
Component: anti_colonial_humanist
Constructs: autonomy_gain
Source: game
File: common/country_leader/goe_traits.txt

Code:
anti_colonial_humanist = {
	sprite = 13
	autonomy_gain = 0.13
	political_power_factor = 0.08
	ai_will_do = {
		factor = 2
	}
}
### Entity: National Focus
Tree: rut_focus
Component: RUT_industry_in_lviv
Constructs: prerequisite, completion_reward, add_extra_state_shared_building_slots, add_building_construction
Source: game
File: common/national_focus/ruthenia.txt

Code:
focus = {
	id = RUT_industry_in_lviv
	icon = GFX_goal_generic_construct_civ_factory
	relative_position_id = RUT_contact_galician_ukrainians
	x = 3
	y = 1
	prerequisite = {
		focus = RUT_contact_galician_ukrainians
	}
	available = {
		RUT = {
			controls_state = 91
		}
	}
	cost = 10
	ai_will_do = {
		factor = 5
	}
	available_if_capitulated = yes
	completion_reward = {
		91 = {
			add_extra_state_shared_building_slots = 2
			add_building_construction = {
				type = industrial_complex
				level = 2
				instant_build = yes
			}
		}
	}
	search_filters = {
		FOCUS_FILTER_INDUSTRY
	}
}
### Entity: National Focus
Tree: lie_focus
Component: LIE_brothers_in_arms
Constructs: prerequisite, has_government, has_war_with, completion_reward, is_subject, is_in_faction, is_faction_leader, has_capitulated
Source: game
File: common/national_focus/liechtenstein.txt

Code:
focus = {
	id = LIE_brothers_in_arms
	icon = GFX_focus_chi_mission_to_germany
	prerequisite = {
		focus = LIE_german_equipment
	}
	mutually_exclusive = {
		focus = LIE_our_own_path
	}
	x = 0
	y = 1
	relative_position_id = LIE_german_equipment
	cost = 10
	ai_will_do = {
		factor = 1
	}
	available = {
		has_government = fascism
		is_subject = no
		is_in_faction = no
		GER = {
			has_government = fascism
			is_faction_leader = yes
			NOT = {
				has_war_with = ROOT
			}
			has_capitulated = no
		}
	}
	search_filters = {
		FOCUS_FILTER_ALLIANCE
	}
	completion_reward = {
		GER = {
			country_event = {
				id = generic.2
			}
		}
	}
}
### Entity: Event
Component: belgium.135
Constructs: has_completed_focus, has_war, has_government, add_popularity
Source: game
File: events/BEL_additional_events.txt

Code:
country_event = {
	id = belgium.135
	title = belgium.135.t
	desc = belgium.135.desc
	picture = GFX_report_event_generic_rally
	trigger = {
		tag = BEL
		OR = {
			has_completed_focus = BEL_deterrence BEL_democratic_influence
		}
		has_government = democratic
		has_war = no
		date = > 1938.06.01 < 1944.01.01
	}
	mean_time_to_happen = {
		days = 270
	}
	option = {
		name = belgium.135.a
		add_popularity = {
			ideology = democratic
			popularity = 0.02
		}
	}
}
### Entity: National Focus
Tree: prc_focus
Component: PRC_the_long_march_towards_progress
Constructs: prerequisite, completion_reward, cancel_if_invalid, add_research_slot
Source: game
File: common/national_focus/china_communist_sea.txt

Code:
focus = {
	id = PRC_the_long_march_towards_progress
	icon = GFX_focus_research
	prerequisite = {
		focus = PRC_lessons_of_the_west
	}
	x = 0
	y = 1
	relative_position_id = PRC_lessons_of_the_west
	cost = 10
	ai_will_do = {
		factor = 1
	}
	available = {

	}
	bypass = {

	}
	cancel_if_invalid = yes
	continue_if_invalid = no
	available_if_capitulated = no
	search_filters = {
		FOCUS_FILTER_RESEARCH
	}
	completion_reward = {
		add_research_slot = 1
	}
}
### Entity: National Focus
Tree: ger_focus
Component: GER_factories_for_resources
Constructs: prerequisite, has_government, has_war_with, completion_reward, is_subject, is_subject_of, is_fully_controlled_by
Source: game
File: common/national_focus/germany.txt

Code:
focus = {
	id = GER_factories_for_resources
	icon = GFX_focus_GER_factories_for_resources
	prerequisite = {
		focus = GER_tech_sharing
	} {
		focus = GER_resource_trade
	}
	x = 1
	y = 1
	relative_position_id = GER_tech_sharing
	cost = 5
	available = {
		NOT = {
			has_war_with = SOV
		}
		SOV = {
			OR = {
				is_subject = no
				is_subject_of = ROOT
			} {
				has_government = communism democratic
			} {
				229 = {
					is_fully_controlled_by = PREV
				}
				234 = {
					is_fully_controlled_by = PREV
				}
				564 = {
					is_fully_controlled_by = PREV
				}
				401 = {
					is_fully_controlled_by = PREV
				}
				402 = {
					is_fully_controlled_by = PREV
				}
				573 = {
					is_fully_controlled_by = PREV
				}
			}
		}
	}
	search_filters = {

	}
	completion_reward = {
		custom_effect_tooltip = GER_factories_for_resources_tt
	}
}
### Entity: National Focus
Tree: fin_focus
Component: FIN_suomen_maavoimat
Constructs: prerequisite, limit, add_ideas, completion_reward, add_tech_bonus, add_doctrine_cost_reduction, random_core_state, is_fully_controlled_by
Source: game
File: common/national_focus/finland.txt

Code:
focus = {
	id = FIN_suomen_maavoimat
	icon = GFX_focus_FIN_suomen_maavoimat
	prerequisite = {
		focus = FIN_increase_military_budget
	}
	x = -6
	y = 1
	relative_position_id = FIN_increase_military_budget
	cost = 10
	available = {

	}
	search_filters = {
		FOCUS_FILTER_HISTORICAL FOCUS_FILTER_ARMY_XP FOCUS_FILTER_RESEARCH FOCUS_FILTER_INDUSTRY
	}
	completion_reward = {
		army_experience = 25
		add_tech_bonus = {
			name = FIN_suomen_maavoimat
			bonus = 1
			uses = 1
			category = infantry_weapons support_tech artillery motorized_equipment
		}
		add_doctrine_cost_reduction = {
			name = FIN_suomen_maavoimat
			cost_reduction = 0.75
			uses = 1
			category = land_doctrine
		}
		random_core_state = {
			prioritize = {
				149
			}
			limit = {
				is_fully_controlled_by = ROOT
				free_building_slots = {
					building = arms_factory
					size = > 0
					include_locked = yes
				}
			}
			add_extra_state_shared_building_slots = 1
			add_building_construction = {
				type = arms_factory
				level = 1
				instant_build = yes
			}
		}
		effect_tooltip = {
			add_ideas = FIN_finnish_army_fake
		}
		hidden_effect = {
			add_dynamic_modifier = {
				modifier = FIN_finnish_army
			}
		}
	}
}