Losa10/PreTrain-HOI4-Modding-Assistant huggingface dataset:
### Entity: National Focus
Tree: efr_focus
Component: EFR_gazogenes_and_michelin_tires
Constructs: prerequisite, completion_reward, is_owned_by, has_tech, add_extra_state_shared_building_slots, add_building_construction
Source: game
File: common/national_focus/r56_vichy_france.txt

Code:
focus = {
	id = EFR_gazogenes_and_michelin_tires
	icon = GFX_goal_generic_oil_refinery
	relative_position_id = EFR_recycling
	x = 0
	y = 1
	prerequisite = {
		focus = EFR_recycling
	}
	available = {
		controls_state = 26
		26 = {
			is_owned_by = VIC
		}
		has_tech = synth_oil_experiments
	}
	cost = 10
	ai_will_do = {
		factor = 5
	}
	completion_reward = {
		26 = {
			add_extra_state_shared_building_slots = 1
			add_building_construction = {
				type = synthetic_refinery
				level = 1
				instant_build = yes
			}
		}
	}
	search_filters = {
		FOCUS_FILTER_INDUSTRY FOCUS_FILTER_OIL
	}
}
### Entity: Shared Focus
Tree: chi_focus
Component: CHI_sea_invite_soviet_advisers
Constructs: shared_focus, prerequisite, limit, add_ideas, completion_reward, has_id, cancel_if_invalid, create_corps_commander
Source: game
File: common/national_focus/china_shared_TSR.txt

Code:
shared_focus = {
	id = CHI_sea_invite_soviet_advisers
	icon = GFX_focus_generic_soviet_politics
	prerequisite = {
		focus = CHI_sea_mission_to_the_soviet_union
	}
	x = 1
	y = 1
	relative_position_id = CHI_sea_mission_to_the_soviet_union
	cost = 5
	ai_will_do = {
		factor = 1
		modifier = {
			factor = 4
			tag = PRC
		} {
			factor = 4
			tag = CHI
		}
	}
	available = {
		SOV_will_support = yes
	}
	bypass = {
		custom_trigger_tooltip = {
			tooltip = soviet_advisers_tt
			any_other_country = {
				any_army_leader = {
					has_id = 600
				}
			}
		}
	}
	cancel_if_invalid = no
	continue_if_invalid = yes
	available_if_capitulated = no
	completion_reward = {
		create_corps_commander = {
			name = Aleksandr Cherepanov
			gfx = GFX_portrait_sov_aleksandr_cherepanov
			skill = 3
			attack_skill = 3
			defense_skill = 3
			planning_skill = 2
			logistics_skill = 2
			id = 600
		}
		IF = {
			limit = {
				NOT = {
					has_idea = CHI_soviet_military_cooperation_idea
				}
			}
			custom_effect_tooltip = generic_skip_one_line_tt
			add_ideas = CHI_soviet_military_cooperation_idea
		}
	}
}
### Entity: Event
Component: AUS_political_events.25
Constructs: is_triggered_only, ai_chance, add_equipment_to_stockpile, limit, add_opinion_modifier, fire_only_once, has_dlc, add_equipment_subsidy
Source: game
File: events/WUW_Austria.txt

Code:
country_event = {
	id = AUS_political_events.25
	title = AUS_political_events.25.t
	desc = AUS_political_events.25.desc
	picture = GFX_report_event_generic_handshake
	fire_only_once = yes
	is_triggered_only = yes
	option = {
		name = AUS_political_events.25.a
		ai_chance = {
			base = 10
		}
		IF = {
			limit = {
				has_dlc = Arms Against Tyranny
			}
			FROM = {
				add_equipment_subsidy = {
					cic = 1000
					equipment_type = infantry_equipment
					seller_tags = {
						ITA
					}
				}
			}
		}
		ELSE = {
			FROM = {
				add_equipment_to_stockpile = {
					type = infantry_equipment
					amount = 500
					producer = ITA
				}
			}
		}
		effect_tooltip = {
			give_guarantee = FROM
		}
		FROM = {
			add_opinion_modifier = {
				target = ITA
				modifier = took_stand_for_us
			}
			country_event = {
				id = AUS_political_events.21
				days = 1
			}
		}
	}
}
### Entity: Event
Component: DOD_romania.3
Constructs: is_triggered_only, add_opinion_modifier
Source: game
File: events/DOD_Romania.txt

Code:
country_event = {
	id = DOD_romania.3
	title = DOD_romania.3.t
	desc = DOD_romania.3.desc
	picture = GFX_report_event_poland_rejects
	is_triggered_only = yes
	option = {
		name = DOD_romania.3.a
		add_opinion_modifier = {
			target = FROM
			modifier = refused_alliance
		}
	}
}
### Entity: Special Project
Component: sp_nuclear_bomb
Constructs: has_war, limit, has_country_flag, fire_only_once, set_technology, resource_cost, add_nuclear_bombs, has_variable
Source: game
File: common/special_projects/projects/nuclear_projects.txt

Code:
sp_nuclear_bomb = {
	specialization = specialization_nuclear
	icon = GFX_sp_nuclear_bomb
	project_tags = sp_tag_nuclear_warfare
	prototype_time = sp_time.prototype.long
	complexity = sp_complexity.large
	resource_cost = {
		resources = {
			steel = 2
			tungsten = 8
			chromium = 2
		}
	}
	special_project_parent = {
		sp_nuclear_reactor
	}
	allowed = {

	}
	available = {

	}
	project_output = {
		country_effects = {
			add_nuclear_bombs = 1
			custom_effect_tooltip = sp_nuclear_bomb_tt
			hidden_effect = {
				set_technology = {
					nukes = 1
					popup = no
				}
				if = {
					limit = {
						not = {
							has_variable = global.first_country_sp_nuclear_bomb
						}
					}
					set_variable = {
						global.first_country_sp_nuclear_bomb = ROOT
					}
				}
			}
		}
		scientist_effects = {
			set_character_flag = USA_oppenheimer_made_the_nuke_flag
		}
	}
	empty_reward_weight = {
		base = 0.5
	}
	generic_prototype_rewards = {
		sp_nuclear_scientist_xp_generic_reward sp_nuclear_minor_progress_generic_reward sp_nuclear_generic_electronics_tech_reward sp_nuclear_war_support_generic_reward sp_nuclear_generic_industry_tech_reward sp_nuclear_major_political_interference_generic_reward sp_nuclear_bomb_theoretical_breakthrough_generic_reward sp_nuclear_bomb_critical_mass_generic_reward sp_nuclear_bomb_accident_generic_reward
	}
	unique_prototype_rewards = {
		sp_nuclear_bomb_test_prototype_reward = {
			fire_only_once = yes
			threshold = {
				min = 70
				max = 84
			}
			weight = {
				base = 100
			}
			option = {
				token = sp_nuclear_bomb_test_prototype_reward_test_bomb
				iteration_output = {
					country_effects = {
						FROM = {
							add_project_progress_ratio = constant:sp_progress.gain.medium
						}
					}
				}
			} {
				token = sp_nuclear_bomb_test_prototype_reward_keep_bomb
				iteration_output = {
					country_effects = {
						add_nuclear_bombs = 1
					}
				}
			}
		}
		sp_nuclear_bomb_espionage_threats_reward = {
			fire_only_once = yes
			threshold = {
				min = 0
				max = 80
			}
			weight = {
				base = 1
				modifier = {
					factor = 10
					FROM = {
						has_war = yes
					}
				}
			}
			option = {
				token = sp_nuclear_bomb_espionage_threats_reward_no
				iteration_output = {
					country_effects = {
						set_country_flag = nuclear_bomb_low_security_flag
					}
					scientist_effects = {
						add_scientist_xp = {
							exper
# ... (truncated)
### Entity: Unit Leader
Component: cruiser_captain
Source: game
File: common/unit_leader/00_traits.txt

Code:
cruiser_captain = {
	type = navy
	modifier = {

	}
	sub_unit_modifiers = {
		light_cruiser = {
			naval_damage_factor = 0.1
			naval_speed_factor = 0.1
		}
		heavy_cruiser = {
			naval_damage_factor = 0.1
			naval_speed_factor = 0.1
		}
	}
	ai_will_do = {
		factor = 0
	}
	trait_type = assignable_trait
	any_parent = {
		fleet_protector superior_tactician
	}
	gui_row = 6
	gui_column = 1
}
### Entity: Order of Battle
Component: air_wing_301
Source: game
File: history/units/PAR_1939_air_bba.txt

Code:
air_wings = {
	301 = {
		small_plane_airframe_0 = {
			owner = PAR
			amount = 18
			creator = ITA
			version_name = CR.32
		}
	}
}
### Entity: Character
Component: INS_gerardus_johannes_berenschot
Constructs: has_completed_focus, limit, has_cosmetic_tag, is_subject_of
Source: game
File: common/characters/INS.txt

Code:
INS_gerardus_johannes_berenschot = {
	name = INS_gerardus_johannes_berenschot
	portraits = {
		army = {
			large = GFX_portrait_INS_geradus_berenschot
			small = GFX_portrait_INS_geradus_berenschot_small
		}
	}
	corps_commander = {
		traits = {
			brilliant_strategist career_officer politically_connected INS_loyalty_to_netherlands
		}
		skill = 3
		attack_skill = 2
		defense_skill = 2
		planning_skill = 4
		logistics_skill = 2
		legacy_id = -1
		visible = {
			has_completed_focus = INSHOL_recall_gerardus_johannes_berenschot
		}
	}
	advisor = {
		slot = army_chief
		cost = 100
		idea_token = INS_gerardus_johannes_berenschot
		allowed = {
			OR = {
				original_tag = INS HOL
			}
		}
		visible = {
			OR = {
				original_tag = INS
				AND = {
					original_tag = HOL
					has_cosmetic_tag = INS_UNION
				}
			}
			has_completed_focus = INSHOL_recall_gerardus_johannes_berenschot
		}
		available = {
			if = {
				limit = {
					original_tag = INS
				}
				OR = {
					is_subject_of = HOL
					has_completed_focus = INSHOL_volksraad_compromises
				}
			}
		}
		traits = {
			army_chief_organizational_2
		}
	}
}
### Entity: National Focus
Tree: kal_focus
Component: KAL_finance_military_infrastructure
Constructs: prerequisite, limit, add_ideas, completion_reward, random_core_state, is_owned_and_controlled_by, add_extra_state_shared_building_slots, add_building_construction
Source: game
File: common/national_focus/kalmykia.txt

Code:
focus = {
	id = KAL_finance_military_infrastructure
	icon = GFX_goal_generic_construct_mil_factory
	prerequisite = {
		focus = KAL_the_court_of_joinville_le_pont
	}
	x = 1
	y = 1
	relative_position_id = KAL_the_court_of_joinville_le_pont
	cost = 10
	available = {

	}
	completion_reward = {
		random_core_state = {
			limit = {
				is_owned_and_controlled_by = ROOT
				free_building_slots = {
					building = arms_factory
					size = > 0
					include_locked = yes
				}
			}
			prioritize = {
				237
			}
			add_extra_state_shared_building_slots = 1
			add_building_construction = {
				type = arms_factory
				level = 1
				instant_build = yes
			}
		}
		add_ideas = GEN_Military_Build_I
	}
}
### Entity: Decision
Component: GER_wilhelm_ii_bop_category
Constructs: has_completed_focus, stability_factor, remove_ideas, add_war_support, has_country_flag, add_stability, fire_only_once, complete_effect
Source: game
File: common/decisions/r56_GER_decisions.txt

Code:
GER_wilhelm_ii_bop_category = {
	GER_bribe_the_aristocracy = {
		priority = 119
		icon = GFX_decision_hol_attract_foreign_investors
		allowed = {
			original_tag = GER
		}
		visible = {

		}
		available = {

		}
		complete_effect = {

		}
		cost = 50
		days_remove = 100
		days_re_enable = 100
		modifier = {
			consumer_goods_expected_value = 0.075
			political_power_cost = 0.1
		}
		remove_effect = {
			add_power_balance_value = {
				id = GER_wilhelm_ii_bop
				value = -0.1
				tooltip_side = GER_wilhelm_ii_side_new
			}
		}
		ai_will_do = {
			base = 20
		}
	}
	GER_wilhelm_ii_canaris_deal = {
		priority = 119
		icon = GFX_decision_generic_intelligence_operation
		allowed = {
			original_tag = GER
		}
		visible = {
			GER_wilhelm_canaris = {
				is_hired_as_advisor = yes
			}
		}
		available = {
			GER_wilhelm_canaris = {
				is_hired_as_advisor = yes
			}
		}
		complete_effect = {
			custom_effect_tooltip = GER_canaris_stays_tt
			set_country_flag = GER_canaris_stays
		}
		cost = 35
		days_remove = 100
		days_re_enable = 100
		modifier = {
			political_power_cost = 0.1
			political_advisor_cost_factor = 0.25
		}
		remove_effect = {
			add_power_balance_value = {
				id = GER_wilhelm_ii_bop
				value = -0.1
				tooltip_side = GER_wilhelm_ii_side_new
			}
		}
		fire_only_once = yes
		ai_will_do = {
			base = 20
		}
	}
	GER_grant_power_to_dnvp_aristocracy = {
		priority = 119
		icon = GFX_decision_generic_consumer_goods
		allowed = {
			original_tag = GER
		}
		visible = {

		}
		available = {

		}
		complete_effect = {
			GER_modify_industrial_modifier = yes
			add_to_variable = {
				GER_industrial_consumer_goods_expected_value = 0.025
				tooltip = GER_grant_power_to_dnvp_aristocracy_tt
			}
		}
		cost = 20
		days_remove = 55
		days_re_enable = 50
		modifier = {
			political_power_cost = 0.1
			political_advisor_cost_factor = -0.25
			power_balance_weekly = -0.01
		}
		remove_effect = {

		}
		ai_will_do = {
			base = 20
		}
	}
	GER_hold_a_speech = {
		priority = 119
		icon = GFX_decision_eng_blackshirt_speech
		allowed = {
			original_tag = GER
		}
		visible = {

		}
		available = {

		}
		complete_effect = {
			hidden_effect = {
				add_command_power = -25
			}
		}
		days_remove = 21
		days_re_enable = 100
		modifier = {
			war_support_weekly = 0.001
			army_core_defence_factor = 0.05
			political_power_cost = 0.2
		}
		custom_cost_trigger = {
			command
# ... (truncated)
### Entity: Idea
Component: CHL_isi
Constructs: removal_cost
Source: game
File: common/ideas/r56_chile.txt

Code:
CHL_isi = {
	allowed = {
		always = no
	}
	allowed_civil_war = {
		always = yes
	}
	removal_cost = -1
	modifier = {
		local_resources_factor = 0.1
	}
	picture = generic_exploit_mines
}
### Entity: National Focus
Tree: phi_focus
Component: PHI_develop_naval_infrastructure
Constructs: prerequisite, limit, completion_reward, add_to_variable, random_owned_controlled_state, is_core_of, is_fully_controlled_by, is_coastal
Source: game
File: common/national_focus/philippines.txt

Code:
focus = {
	id = PHI_develop_naval_infrastructure
	icon = GFX_goal_generic_construct_naval_dockyard
	prerequisite = {
		focus = PHI_war_for_the_oceans
	}
	mutually_exclusive = {
		focus = PHI_assume_the_naval_burden
	}
	relative_position_id = PHI_war_for_the_oceans
	x = 1
	y = 1
	cost = 10
	available = {

	}
	bypass = {

	}
	available_if_capitulated = no
	completion_reward = {
		custom_effect_tooltip = PHI_island_nation_dynamic_modifier_tt generic_skip_one_line_tt
		add_to_variable = {
			PHI_island_nation_industrial_capacity_dockyard = 0.1
			tooltip = industrial_capacity_dockyard_tt
		}
		random_owned_controlled_state = {
			limit = {
				is_core_of = PHI
				is_fully_controlled_by = PHI
				is_coastal = yes
				free_building_slots = {
					building = dockyard
					size = > 1
					include_locked = yes
				}
			}
			add_extra_state_shared_building_slots = 2
			add_building_construction = {
				type = dockyard
				level = 2
				instant_build = yes
			}
		}
	}
	search_filters = {
		FOCUS_FILTER_INDUSTRY
	}
}
### Entity: National Focus
Tree: vnz_focus
Component: VNZ_naval_infantry
Constructs: prerequisite, completion_reward, add_tech_bonus, add_doctrine_cost_reduction
Source: game
File: common/national_focus/venice.txt

Code:
focus = {
	id = VNZ_naval_infantry
	icon = GFX_goal_generic_amphibious_assault
	prerequisite = {
		focus = VNZ_reorganize_the_arsenals
	} {
		focus = VNZ_equipment_effort
	}
	relative_position_id = VNZ_naval_effort
	x = 5
	y = 3
	cost = 10
	available_if_capitulated = yes
	completion_reward = {
		add_tech_bonus = {
			name = infantry_weapons_bonus
			bonus = 1
			uses = 2
			category = r56_marines_infantry_tech
		}
		add_doctrine_cost_reduction = {
			name = special_forces_bonus
			cost_reduction = 0.25
			uses = 2
			category = marine_tech
		}
	}
	search_filters = {
		FOCUS_FILTER_RESEARCH
	}
}
### Entity: Event
Component: wtt_news.61
Constructs: is_triggered_only, has_war_with
Source: game
File: events/WTT_NewsEvents.txt

Code:
news_event = {
	id = wtt_news.61
	title = wtt_news.61.t
	desc = wtt_news.61.desc
	picture = GFX_news_event_generic_parliament
	is_triggered_only = yes
	major = yes
	option = {
		name = wtt_news.61.a
		trigger = {
			original_tag = TUR
			NOT = {
				has_war_with = FROM
			}
		}
	} {
		name = wtt_news.61.b
		trigger = {
			NOT = {
				original_tag = TUR
			} {
				has_war_with = FROM
			}
		}
	} {
		name = wtt_news.53.c
		trigger = {
			has_war_with = FROM
		}
	}
}
### Entity: Trigger Reference
Construct: unlock_faction_commander
Constructs: is_major, unlock_faction_commander, has_dlc
Source: vanilla_docs
File: common/factions/_documentation.md

Doc:
unlock_faction_commander
```

Intel Advisors work a bit differently, and use custom AI strategy types, e.g:
```
default_become_spymaster_minor = {
	allowed = {
		has_dlc = "La Resistance"
	}
	enable = {
		is_major = no
	}
	abort_when_not_enabled = yes
	ai_strategy = {
		type = become_spymaster
		value = 2
	}
}
```
Valid types are:
```
### Entity: National Focus
Tree: bel_focus
Component: BEL_urbanize_wallonie
Constructs: prerequisite, limit, remove_ideas, completion_reward, is_owned_by, add_tech_bonus, industrial_bonus, add_extra_state_shared_building_slots
Source: game
File: common/national_focus/r56_belgium.txt

Code:
focus = {
	id = BEL_urbanize_wallonie
	icon = GFX_goal_generic_production
	relative_position_id = BEL_urban_projects_capital
	x = 1
	y = 1
	prerequisite = {
		focus = BEL_urban_projects_capital
	}
	available = {
		BEL = {
			controls_state = 34
		}
		34 = {
			is_owned_by = BEL
		}
	}
	cost = 10
	ai_will_do = {
		base = 8
	}
	completion_reward = {
		add_tech_bonus = {
			name = industrial_bonus
			bonus = 1
			uses = 1
			category = industry
		}
		34 = {
			add_extra_state_shared_building_slots = 1
			add_building_construction = {
				type = industrial_complex
				level = 1
				instant_build = yes
			}
		} {
			add_building_construction = {
				type = infrastructure
				level = 1
				instant_build = yes
			}
		}
		if = {
			limit = {
				has_idea = BEL_recovery_from_the_great_depression1
			}
			swap_ideas = {
				remove_idea = BEL_recovery_from_the_great_depression1
				add_idea = BEL_recovery_from_the_great_depression2
			}
			else = {
				if = {
					limit = {
						has_idea = BEL_recovery_from_the_great_depression2
					}
					swap_ideas = {
						remove_idea = BEL_recovery_from_the_great_depression2
						add_idea = BEL_recovery_from_the_great_depression3
					}
					else = {
						if = {
							limit = {
								has_idea = BEL_recovery_from_the_great_depression3
							}
							swap_ideas = {
								remove_idea = BEL_recovery_from_the_great_depression3
								add_idea = BEL_recovery_from_the_great_depression4
							}
							else = {
								if = {
									limit = {
										has_idea = BEL_recovery_from_the_great_depression4
									}
									swap_ideas = {
										remove_idea = BEL_recovery_from_the_great_depression4
										add_idea = BEL_recovery_from_the_great_depression5
									}
									else = {
										if = {
											limit = {
												has_idea = BEL_recovery_from_the_great_depression5
											}
											remove_ideas = BEL_recovery_from_the_great_depression5
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	search_filters = {
		FOCUS_FILTER_RESEARCH FOCUS_FILTER_INDUSTRY FOCUS_FILTER_HISTORICAL
	}
}
### Entity: National Focus
Component: indian_focus_goe
Constructs: has_completed_focus, division_template, every_owned_state, add_equipment_to_stockpile, prerequisite, has_war, limit, add_ideas
Source: game
File: common/national_focus/india_goe.txt

Code:
focus_tree = {
	id = indian_focus_goe
	country = {
		factor = 0
		modifier = {
			add = 10
			tag = RAJ
			has_dlc = Graveyard of Empires
		}
	}
	default = no
	continuous_focus_position = {
		x = 200
		y = 3800
	}
	shortcut = {
		name = RAJ_mughal_shortcut
		target = RAJ_look_to_the_past
		trigger = {
			has_dlc = Graveyard of Empires
		}
	} {
		name = RAJ_eic_shortcut
		target = RAJ_look_to_the_future
		trigger = {
			has_dlc = Graveyard of Empires
		}
	} {
		name = RAJ_road_to_independence_shortcut
		target = RAJ_provincial_autonomy
		trigger = {
			has_dlc = Graveyard of Empires
		}
	} {
		name = RAJ_majestys_government_shortcut
		target = RAJ_his_majestys_loyal_government
		trigger = {
			has_dlc = Graveyard of Empires
		}
	} {
		name = RAJ_railways_shortcut
		target = RAJ_great_indian_peninsula_railway_dlc
		trigger = {
			has_dlc = Graveyard of Empires
		}
	} {
		name = RAJ_army_shortcut
		target = RAJ_indianize_the_army
		trigger = {
			has_dlc = Graveyard of Empires
		}
	} {
		name = RAJ_ammunition_factories_shortcut
		target = RAJ_ammunition_factory_khadki
		trigger = {
			has_dlc = Graveyard of Empires
		}
	} {
		name = RAJ_recruitment_shortcut
		target = RAJ_local_recruitment_offices
		trigger = {
			has_dlc = Graveyard of Empires
		}
	} {
		name = RAJ_navy_shortcut
		target = RAJ_royal_indian_navy_dlc
		trigger = {
			has_dlc = Graveyard of Empires
		}
	} {
		name = RAJ_airforce_shortcut
		target = RAJ_indian_air_force
		trigger = {
			has_dlc = Graveyard of Empires
		}
	}
	focus = {
		id = RAJ_indianize_the_army
		icon = GFX_focus_RAJ_indianisation_of_army
		x = 0
		y = 0
		mutually_exclusive = {
			focus = RAJ_keep_british_generals
		}
		cost = 5
		offset = {
			x = -40
			y = 0
			trigger = {
				has_game_rule = {
					rule = obsolete_focus_branches_visibility
					option = HIDE
				}
				has_completed_focus = RAJ_great_depression_price_controls
			}
		}
		ai_will_do = {
			factor = 1
		}
		available = {

		}
		bypass = {

		}
		cancel_if_invalid = yes
		continue_if_invalid = no
		available_if_capitulated = no
		search_filters = {
			FOCUS_FILTER_MILITARY_CHARACTER
		}
		completion_reward = {
			IF = {
				limit = {
					NOT = {
						has_completed_focus = RAJ_look_to_the_past
					}
				}
				every_army_leader = {
					limit = {
						has_trait = loyalty_to_india
					}
					add_skill_level = 1
					random_list = {
						seed = random
						2
# ... (truncated)
### Entity: Order of Battle
Component: 3. Iowa Volunteers
Constructs: division_template
Source: game
File: history/units/USB_defense_force.txt

Code:
division = {
	name = 3. Iowa Volunteers
	location = 1770
	division_template = Local Defense Volunteers
}
### Entity: Order of Battle
Component: instant_effect
Constructs: add_equipment_production
Source: game
File: history/units/XSM_1939.txt

Code:
instant_effect = {
	add_equipment_production = {
		equipment = {
			type = infantry_equipment_0
			creator = XSM
		}
		requested_factories = 1
		progress = 0.47
		efficiency = 100
	}
}
### Entity: National Focus
Tree: afg_focus
Component: AFG_mountain_training
Constructs: prerequisite, limit, completion_reward, set_technology, has_tech, has_dlc, add_doctrine_cost_reduction, has_dynamic_modifier
Source: game
File: common/national_focus/afghanistan.txt

Code:
focus = {
	id = AFG_mountain_training
	icon = GFX_focus_AFG_mountain_training
	prerequisite = {
		focus = AFG_khyber_pass_riflining AFG_expand_academy
	}
	x = 2
	y = 1
	relative_position_id = AFG_khyber_pass_riflining
	cost = 10
	ai_will_do = {
		factor = 10
	}
	available = {

	}
	search_filters = {
		FOCUS_FILTER_RESEARCH
	}
	completion_reward = {
		IF = {
			limit = {
				NOT = {
					has_tech = mountain_gun
				}
			}
			custom_effect_tooltip = mountain_guns_tt generic_skip_one_line_tt
			hidden_effect = {
				set_technology = {
					mountain_gun = 1
				}
			}
		} {
			limit = {
				NOT = {
					has_tech = tech_mountaineers
				}
			}
			set_technology = {
				tech_mountaineers = 1
			}
			custom_effect_tooltip = generic_skip_one_line_tt
		} {
			limit = {
				has_dlc = Arms Against Tyranny
			}
			add_doctrine_cost_reduction = {
				name = AFG_mountain_training
				cost_reduction = 0.25
				uses = 1
				category = special_forces_doctrine
			}
			custom_effect_tooltip = generic_skip_one_line_tt
		} {
			limit = {
				has_dynamic_modifier = {
					modifier = AFG_quami_modifier
				}
			}
			custom_effect_tooltip = AFG_quami_intro_tt
			add_to_variable = {
				AFG_modifier_army_sub_unit_irregular_infantry_defence_factor = 0.2
				tooltip = modifier_army_sub_unit_irregular_infantry_defence_factor_tt
			} {
				AFG_modifier_army_sub_unit_irregular_infantry_attack_factor = 0.2
				tooltip = modifier_army_sub_unit_irregular_infantry_attack_factor_tt
			}
		}
		ELSE_IF = {
			limit = {
				NOT = {
					has_tech = tech_mountaineers2
				}
			}
			set_technology = {
				tech_mountaineers2 = 1
			}
			custom_effect_tooltip = generic_skip_one_line_tt
		} {
			limit = {
				NOT = {
					has_tech = tech_mountaineers3
				}
			}
			set_technology = {
				tech_mountaineers3 = 1
			}
			custom_effect_tooltip = generic_skip_one_line_tt
		}
	}
}