Losa10/PreTrain-HOI4-Modding-Assistant huggingface dataset:
### Entity: National Focus
Tree: pru_focus
Component: PRU_follow_in_the_footsteps_of_tupac_amaru
Constructs: prerequisite, limit, add_ideas, completion_reward, add_timed_idea, set_variable, set_country_flag
Source: game
File: common/national_focus/peru.txt

Code:
focus = {
	id = PRU_follow_in_the_footsteps_of_tupac_amaru
	prerequisite = {
		focus = PRU_our_revolution
	}
	icon = GFX_focus_CHL_union_of_hispanic_republics
	x = -1
	y = 1
	relative_position_id = PRU_our_revolution
	cost = 5
	ai_will_do = {
		factor = 10
	}
	completion_reward = {
		custom_effect_tooltip = available_political_advisor PRU_oli_loyalty_hostile_status_text PRU_unlock_friend_que
		show_ideas_tooltip = PRU_saturnino_huillca
		add_ideas = PRU_tupac_amaru
		if = {
			limit = {
				COL = {
					r56_script_target_is_sane = yes
				}
			}
			COL = {
				add_timed_idea = {
					idea = PRU_legacy_of_tupac_amaru
					days = 560
				}
			}
		} {
			limit = {
				BOL = {
					r56_script_target_is_sane = yes
				}
			}
			BOL = {
				add_timed_idea = {
					idea = PRU_legacy_of_tupac_amaru
					days = 560
				}
			}
		} {
			limit = {
				CHL = {
					r56_script_target_is_sane = yes
				}
			}
			CHL = {
				add_timed_idea = {
					idea = PRU_legacy_of_tupac_amaru
					days = 560
				}
			}
		} {
			limit = {
				ECU = {
					r56_script_target_is_sane = yes
				}
			}
			ECU = {
				add_timed_idea = {
					idea = PRU_legacy_of_tupac_amaru
					days = 560
				}
			}
		} {
			limit = {
				ARG = {
					r56_script_target_is_sane = yes
				}
			}
			ARG = {
				add_timed_idea = {
					idea = PRU_legacy_of_tupac_amaru
					days = 560
				}
			}
		}
		set_variable = {
			PRU_oli_loyalty = -2
		}
		PRU_partidos_update_update_effect = yes
		PRU = {
			set_country_flag = PRU_oli_exclu PRU_que_be_friend
		}
	}
	search_filters = {
		FOCUS_FILTER_POLITICAL
	}
}
### Entity: Military Industrial Organization
Component: BEL_cockerill_shipyards_organization
Constructs: has_completed_focus, limit, has_war_with, has_dlc, add_trait, equipment_bonus, naval_speed
Source: game
File: common/military_industrial_organization/organizations/BEL_organization.txt

Code:
BEL_cockerill_shipyards_organization = {
	name = cockerill_shipyards
	include = generic_escort_ship_organization
	icon = GFX_idea_BEL_cockerill_shipyards_organization
	allowed = {
		OR = {
			original_tag = BEL COG
		}
		has_dlc = Gotterdammerung
	}
	available = {
		IF = {
			limit = {
				FROM = {
					NOT = {
						original_tag = BEL
					}
				}
			}
			FROM = {
				NOT = {
					has_war_with = BEL
				}
			}
		}
	}
	equipment_type = {
		screen_ship convoy_1
	}
	trait = {
		token = generic_mio_trait_submarine_hunters
		limit_to_equipment_type = {
			screen_ship
		}
	} {
		token = generic_mio_trait_high_speed_mine_hunting_equipment
		limit_to_equipment_type = {
			screen_ship
		}
	} {
		token = generic_mio_trait_advanced_hydrodynamic_design
		limit_to_equipment_type = {
			screen_ship
		}
	} {
		token = generic_mio_trait_fleet_escorts
		limit_to_equipment_type = {
			screen_ship
		}
	} {
		token = generic_mio_trait_anti_air_ships
		limit_to_equipment_type = {
			screen_ship
		}
	} {
		token = generic_mio_trait_escort_in_force
		limit_to_equipment_type = {
			screen_ship
		}
	} {
		token = generic_mio_trait_anti_air_layout
		limit_to_equipment_type = {
			screen_ship
		}
	} {
		token = generic_mio_trait_gyro_stabilized_mounts
		limit_to_equipment_type = {
			screen_ship
		}
	} {
		token = generic_mio_trait_improved_anti_air_gun_mounting
		limit_to_equipment_type = {
			screen_ship
		}
	} {
		token = generic_mio_trait_mass_production
		limit_to_equipment_type = {
			screen_ship
		}
	} {
		token = generic_mio_trait_improved_light_gun_mounting
		limit_to_equipment_type = {
			screen_ship
		}
	}
	add_trait = {
		token = BEL_mio_trait_belgium_congo_link
		name = BEL_mio_trait_belgium_congo_link
		icon = GFX_generic_mio_trait_icon_naval_range
		special_trait_background = yes
		available = {
			owner = {
				has_completed_focus = CONGO_compagnie_belge_maritime_du_congo
			}
		}
		position = {
			x = 9
			y = 0
		}
		limit_to_equipment_type = {
			screen_ship
		}
		equipment_bonus = {
			naval_range = 0.1
		}
	} {
		token = BEL_mio_trait_high_speed_transport
		name = BEL_mio_trait_high_speed_transport
		icon = GFX_generic_mio_trait_icon_maximum_speed
		special_trait_background = yes
		position = {
			x = 9
			y = 1
		}
		any_parent = {
			BEL_mio_trait_belgium_congo_link
		}
		limit_to_equipment_type = {
			convoy
		}
		equipment_bonus = {
			naval_speed = 0.1
		}
	
# ... (truncated)
### Entity: Character
Component: CUB_fidel_castro
Source: game
File: common/characters/CUB.txt

Code:
CUB_fidel_castro = {
	advisor = {
		slot = high_command
		idea_token = CUB_fidel_castro
		ledger = army
		allowed = {
			original_tag = CUB
		}
		traits = {
			army_commando_2
		}
		cost = 100
		ai_will_do = {
			factor = 1.0
		}
	}
	name = Fidél Castro
	portraits = {
		army = {
			small = GFX_idea_generic_army_south_america_3
		}
	}
}
### Entity: Event
Component: lar_congress_of_paris.4
Constructs: is_triggered_only, remove_from_faction
Source: game
File: events/LaR_France.txt

Code:
country_event = {
	id = lar_congress_of_paris.4
	title = lar_congress_of_paris.4.t
	desc = lar_congress_of_paris.4.desc
	picture = GFX_report_event_german_politician_speech
	is_triggered_only = yes
	option = {
		name = lar_congress_of_paris.4.a
		remove_from_faction = FROM
	}
}
### Entity: National Focus
Tree: nor_focus
Component: NOR_nth
Constructs: prerequisite, has_war, limit, remove_ideas, completion_reward, is_controlled_by, cancel_if_invalid, add_research_slot
Source: game
File: common/national_focus/r56_norway.txt

Code:
focus = {
	id = NOR_nth
	icon = GFX_focus_research
	prerequisite = {
		focus = NOR_statmin NOR_expanded_aluminium_production
	} {
		focus = NOR_invest_in_district_industries
	}
	x = 0
	y = 5
	relative_position_id = NOR_lumber_industries
	cost = 10
	ai_will_do = {
		base = 100
		modifier = {
			factor = 1.5
			has_war = no
		}
	}
	available = {
		143 = {
			is_controlled_by = ROOT
		}
	}
	cancel_if_invalid = no
	continue_if_invalid = yes
	available_if_capitulated = yes
	completion_reward = {
		add_research_slot = 1
		if = {
			limit = {
				has_idea = NOR_aftermath_of_the_depression_1
			}
			remove_ideas = NOR_aftermath_of_the_depression_1
		} {
			limit = {
				has_idea = NOR_aftermath_of_the_depression_2
			}
			swap_ideas = {
				remove_idea = NOR_aftermath_of_the_depression_2
				add_idea = NOR_aftermath_of_the_depression_1
			}
		} {
			limit = {
				has_idea = NOR_aftermath_of_the_depression_3
			}
			swap_ideas = {
				remove_idea = NOR_aftermath_of_the_depression_3
				add_idea = NOR_aftermath_of_the_depression_2
			}
		}
	}
	search_filters = {
		FOCUS_FILTER_INDUSTRY FOCUS_FILTER_RESEARCH
	}
}
### Entity: Character
Component: PAK_democratic_guy
Constructs: has_government
Source: game
File: common/characters/PAK.txt

Code:
PAK_democratic_guy = {
	advisor = {
		slot = political_advisor
		idea_token = PAK_democratic_guy
		allowed = {
			original_tag = PAK
		}
		traits = {
			democratic_reformer
		}
		do_effect = {
			not = {
				has_government = democratic
			}
		}
		ai_will_do = {
			factor = 0.0
		}
	}
	portraits = {
		army = {
			small = GFX_idea_generic_political_advisor_asia_1
		}
	}
}
### Entity: Technology
Component: sp_land_large_caliber_kinetic_energy_sabot_no_gd_tech
Constructs: research_cost
Source: game
File: common/technologies/artillery.txt

Code:
technology = {
	research_cost = 1
	start_year = 1936
	experience_gain_artillery_combat_factor = 0.1
	artillery_brigade = {
		ap_attack = 0.15
		fort = {
			attack = 0.15
		}
	}
	artillery = {
		ap_attack = 0.15
		fort = {
			attack = 0.15
		}
	}
	mot_artillery_brigade = {
		ap_attack = 0.15
		fort = {
			attack = 0.15
		}
	}
	category_self_propelled_artillery = {
		ap_attack = 0.15
		fort = {
			attack = 0.15
		}
	}
	field_guns = {
		ap_attack = 0.1
	}
	allow = {
		always = no
	}
}
### Entity: AI Strategy
Component: claims_on_finland
Constructs: has_completed_focus, has_government
Source: game
File: common/ai_strategy/SOV.txt

Code:
claims_on_finland = {
	allowed = {
		original_tag = SOV
	}
	enable = {
		has_completed_focus = SOV_secure_leningrad
		country_exists = FIN
		NOT = {
			controls_state = 146
		}
		date = > 1940.8.1
	}
	abort = {
		OR = {
			NOT = {
				country_exists = FIN
			}
			FIN = {
				has_government = ROOT
			}
			controls_state = 146
		}
	}
	ai_strategy = {
		type = antagonize
		id = FIN
		value = 200
	}
}
### Entity: Event
Component: AAT_nordic_cooperation.9
Constructs: is_triggered_only, ai_chance
Source: game
File: events/AAT_nordic.txt

Code:
country_event = {
	id = AAT_nordic_cooperation.9
	title = AAT_nordic_cooperation.9.t
	desc = AAT_nordic_cooperation.9.desc
	is_triggered_only = yes
	immediate = {
		hidden_effect = {

		}
	}
	option = {
		name = AAT_nordic_cooperation.9.a
		ai_chance = {
			base = 10
		}
		trigger = {

		}
	}
}
### Entity: State History
Component: 440
Constructs: add_core_of, add_to_array
Source: game
File: history/states/440-Punjab.txt

Code:
state = {
	id = 440
	name = STATE_440
	manpower = 13665000
	state_category = town
	resources = {
		oil = 1
	}
	history = {
		victory_points = {
			10887 5
		} {
			10139 1
		} {
			8022 3
		} {
			10898 1
		}
		owner = RAJ
		buildings = {
			infrastructure = 3
			industrial_complex = 2
		}
		add_core_of = PAK RAJ
		add_to_array = {
			state_victory_points = 10887
		} {
			state_victory_points = 10139
		} {
			state_victory_points = 8022
		} {
			state_victory_points = 10898
		}
	}
	provinces = {
		4979 8007 8022 8106 9084 10066 10139 10173 10772 10843 10887 10898 12005 12792 12822
	}
	local_supplies = 0.0
}
### Entity: Idea
Component: ITA_ducati_energia
Constructs: has_completed_focus, research_bonus
Source: game
File: common/ideas/italy.txt

Code:
ITA_ducati_energia = {
	picture = ITA_ducati_energia
	allowed = {
		original_tag = ITA
	}
	visible = {
		NOT = {
			AND = {
				has_completed_focus = ITA_new_industrialization_program ITA_strengthen_northern_industry
			}
		}
	}
	available = {
		controls_state = 161
		ITA_is_northern_designer = yes
	}
	research_bonus = {
		electronics = 0.15
	}
	traits = {
		electronics_concern
	}
}
### Entity: Character
Component: CAN_mackenzie_king
Source: game
File: common/characters/CAN.txt

Code:
CAN_mackenzie_king = {
	name = CAN_mackenzie_king
	portraits = {
		civilian = {
			large = GFX_portrait_CAN_mackenzie_king
		}
	}
	country_leader = {
		ideology = liberalism
		expire = 1965.1.1.1
		traits = {
			CAN_liberal_corporatist
		}
		id = -1
	}
}
### Entity: Event
Component: r56.news_event.17
Constructs: is_triggered_only, every_country, clr_country_flag
Source: game
File: events/r56_news_events.txt

Code:
news_event = {
	id = r56.news_event.17
	title = r56.news_event.17.t
	desc = r56.news_event.17.d
	picture = [GetPartisanRevoltImage]
	major = yes
	is_triggered_only = yes
	option = {
		name = r56.news_event.17.a
		every_country = {
			clr_country_flag = partisan_rebellion
		}
	}
}
### Entity: Event
Component: denmark_overlord_events.27
Constructs: is_triggered_only, add_political_power
Source: game
File: events/AAT_Denmark.txt

Code:
country_event = {
	id = denmark_overlord_events.27
	title = denmark_overlord_events.27.t
	desc = denmark_overlord_events.27.desc
	picture = GFX_report_event_DEN_danish_politics
	is_triggered_only = yes
	option = {
		name = denmark_overlord_events.27.a
		add_political_power = 25
	}
}
### Entity: Modifier Reference
Construct: base_fuel_gain
Source: vanilla_docs
File: documentation/modifiers_documentation.md

Doc:
## base_fuel_gain

* Number with 0 decimal places
* **Categories**: country
### Entity: Scripted Trigger
Component: frloc_tags_noart_sg_fem_x_de_a_08a
Constructs: has_government
Source: game
File: common/scripted_triggers/00_scripted_triggers_FR_loc.txt

Code:
frloc_tags_noart_sg_fem_x_de_a_08a = {
	OR = {
		AND = {
			has_government = democratic
			OR = {
				tag = MLT
				original_tag = MLT
			}
		} {
			has_government = neutrality
			OR = {
				tag = CYP DNZ GBA TAH TRI
				original_tag = CYP DNZ GBA TAH TRI
			}
		}
	}
}
### Entity: AI Strategy
Component: USA_ConvoyRaiding_1
Source: game
File: common/ai_navy/taskforce/USA_taskforce_templates.txt

Code:
USA_ConvoyRaiding_1 = {
	allowed = {
		original_tag = USA
	}
	ai_will_do = {
		factor = 1
	}
	keep_updated = yes
	mission = {
		convoy_raiding
	}
	min_composition = {
		submarine = {
			amount = 4
		}
	}
	optimal_composition = {
		submarine = {
			amount = 8
		}
	}
}
### Entity: Character
Component: ITA_alessandro_pirzio_biroli
Constructs: has_government
Source: game
File: common/characters/ITA.txt

Code:
ITA_alessandro_pirzio_biroli = {
	name = ITA_alessandro_pirzio_biroli
	portraits = {
		army = {
			small = GFX_portrait_ITA_alessandro_pirzio_biroli_small
			large = GFX_portrait_ITA_alessandro_pirzio_biroli
		}
	}
	corps_commander = {
		traits = {
			harsh_leader
		}
		skill = 1
		attack_skill = 1
		defense_skill = 1
		planning_skill = 1
		logistics_skill = 1
		legacy_id = 0
		visible = {
			has_government = fascism
		}
	}
}
### Entity: Character
Component: UAE_fascist_guy
Constructs: has_government
Source: game
File: common/characters/UAE.txt

Code:
UAE_fascist_guy = {
	advisor = {
		slot = political_advisor
		idea_token = UAE_fascist_guy
		allowed = {
			original_tag = UAE
		}
		traits = {
			fascist_demagogue
		}
		do_effect = {
			not = {
				has_government = fascism
			}
		}
		ai_will_do = {
			factor = 0.0
		}
	}
	portraits = {
		army = {
			small = GFX_idea_generic_political_advisor_arab_2
		}
	}
}
### Entity: National Focus
Tree: spa_focus
Component: SPA_prepare_the_carlist_insurrection
Constructs: prerequisite, limit, completion_reward, has_global_flag, every_state, has_state_flag, is_controlled_by, set_state_flag
Source: game
File: common/national_focus/spain.txt

Code:
focus = {
	id = SPA_prepare_the_carlist_insurrection
	available = {

	}
	bypass = {
		has_global_flag = scw_over
	}
	prerequisite = {
		focus = SPA_supremacy_of_the_communion
	}
	icon = GFX_goal_generic_occupy_states_ongoing_war
	x = -3
	y = 1
	relative_position_id = SPA_supremacy_of_the_communion
	cost = 5
	available_if_capitulated = yes
	search_filters = {
		FOCUS_FILTER_SPA_CARLIST_UPRISING
	}
	completion_reward = {
		custom_effect_tooltip = SPA_prepare_the_carlist_insurrection_tt
		hidden_effect = {
			if = {
				limit = {
					OR = {
						controls_state = 172 176
					}
				}
				every_state = {
					limit = {
						OR = {
							state = 172 176
						}
						NOT = {
							has_state_flag = SPA_carlist_cell_flag
						}
						is_controlled_by = ROOT
					}
					set_state_flag = SPA_carlist_cell_flag
				}
			}
		}
	}
}
### Entity: Event
Component: portugal.61
Constructs: is_triggered_only, limit, annex_country, every_state, is_core_of, set_resistance, add_compliance, has_dynamic_modifier
Source: game
File: events/r56_portugal.txt

Code:
country_event = {
	id = portugal.61
	title = portugal.61.t
	desc = portugal.61.d
	is_triggered_only = yes
	picture = GFX_report_event_generic_rally
	option = {
		name = portugal.61.a
		POR = {
			annex_country = {
				target = ROOT
				transfer_troops = yes
			}
			every_state = {
				limit = {
					is_core_of = BRA
				}
				set_resistance = 3
				add_compliance = 20
				hidden_effect = {
					if = {
						limit = {
							has_dynamic_modifier = {
								modifier = BRA_neglected_state_dynamic_modifier
							}
						}
						remove_dynamic_modifier = {
							modifier = BRA_neglected_state_dynamic_modifier
						}
					}
				}
			}
			news_event = {
				id = lar_news.26
				days = 3
				random_days = 5
			}
		}
	}
}
### Entity: State History
Component: 371
Constructs: add_core_of
Source: game
File: history/states/371-Louisiana.txt

Code:
state = {
	id = 371
	name = STATE_371
	manpower = 2101592
	state_category = city
	resources = {
		oil = 29
	}
	history = {
		owner = USA
		buildings = {
			infrastructure = 3
			industrial_complex = 2
			air_base = 5
			7552 = {
				naval_base = 5
			}
		}
		add_core_of = USA
		victory_points = {
			7552 10
		}
	}
	provinces = {
		1453 1528 1559 1643 4507 4522 4535 7524 7552 7555 7599 12313 12398 12401
	}
	local_supplies = 0.0
}
### Entity: Character
Component: NIC_gustavo_flores_mendienta
Source: game
File: common/characters/NIC.txt

Code:
NIC_gustavo_flores_mendienta = {
	advisor = {
		slot = navy_chief
		idea_token = NIC_gustavo_flores_mendienta
		allowed = {
			original_tag = NIC
		}
		traits = {
			navy_chief_naval_aviation_2
		}
		cost = 100
		ai_will_do = {
			factor = 1.0
		}
	}
	name = Gustavo Flores Mendienta
	portraits = {
		army = {
			small = GFX_idea_generic_navy_south_america_2
		}
	}
}
### Entity: AI Strategy
Component: generic_heavy_tank_artillery
Constructs: has_war, has_tech
Source: game
File: common/ai_equipment/generic_tank.txt

Code:
generic_heavy_tank_artillery = {
	category = land
	blocked_for = {
		GER SOV ENG USA FRA JAP ITA HUN
	}
	available_for = {

	}
	roles = {
		land_heavy_tank_artillery
	}
	priority = {
		factor = 500
	}
	heavy_tank_artillery_1 = {
		priority = {
			factor = 100
		}
		enable = {
			has_tech = interwar_artillery
		}
		history = yes
		target_variant = {
			match_value = 1000
			type = heavy_tank_artillery_chassis_1
			modules = {
				main_armament_slot = tank_medium_howitzer
				turret_type_slot = tank_heavy_fixed_superstructure_turret
				suspension_type_slot = tank_bogie_suspension
				armor_type_slot = tank_riveted_armor
				engine_type_slot = tank_diesel_engine
				special_type_slot_1 = empty
				special_type_slot_2 = empty
				special_type_slot_3 = empty
				special_type_slot_4 = empty
			}
			upgrades = {
				tank_nsb_engine_upgrade = 4
				tank_nsb_armor_upgrade = {
					base = 3
					modifier = {
						add = 1
						has_war = yes
					}
				}
			}
		}
		allowed_modules = {
			tank_medium_howitzer tank_heavy_fixed_superstructure_turret tank_bogie_suspension tank_riveted_armor tank_diesel_engine
		}
	}
	heavy_tank_artillery_2 = {
		priority = {
			factor = 200
		}
		enable = {
			has_tech = interwar_artillery
		}
		history = yes
		target_variant = {
			match_value = 1500
			type = heavy_tank_artillery_chassis_2
			modules = {
				main_armament_slot = tank_medium_howitzer_2
				turret_type_slot = tank_heavy_fixed_superstructure_turret
				suspension_type_slot = tank_bogie_suspension
				armor_type_slot = tank_riveted_armor
				engine_type_slot = tank_diesel_engine
				special_type_slot_1 = extra_ammo_storage
				special_type_slot_2 = empty
				special_type_slot_3 = empty
				special_type_slot_4 = empty
			}
			upgrades = {
				tank_nsb_engine_upgrade = 5
				tank_nsb_armor_upgrade = {
					base = 4
					modifier = {
						add = 1
						has_war = yes
					}
				}
			}
		}
		allowed_modules = {
			tank_medium_howitzer_2 tank_heavy_fixed_superstructure_turret tank_bogie_suspension tank_riveted_armor tank_diesel_engine extra_ammo_storage
		}
	}
	heavy_tank_artillery_3 = {
		priority = {
			factor = 200
		}
		enable = {
			has_tech = artillery5
		}
		history = yes
		target_variant = {
			match_value = 2000
			type = heavy_tank_artillery_chassis_3
			modules = {
				main_armament_slot = tank_heavy_howitzer
				turret_type_slot = tank_heavy_fixed_superstructure_tur
# ... (truncated)
### Entity: State History
Component: 832
Constructs: add_core_of
Source: game
File: history/states/832-Rezaiyeh.txt

Code:
state = {
	id = 832
	name = Rezaiyeh
	history = {
		owner = PER
		buildings = {
			infrastructure = 2
		}
		victory_points = {
			7604 1
		} {
			1822 1
		}
		add_core_of = PER KUR AZR
	}
	provinces = {
		1636 1822 7604 13120 12861
	}
	manpower = 550000
	buildings_max_level_factor = 1.0
	state_category = rural
}
### Entity: Technology
Component: improved_decryption
Constructs: allow_branch, has_dlc, research_cost
Source: game
File: common/technologies/electronic_mechanical_engineering.txt

Code:
technology = {
	decryption = 1
	allow_branch = {
		NOT = {
			has_dlc = La Resistance
		}
	}
	research_cost = 1.5
	start_year = 1940
	folder = {
		name = electronics_folder
		position = {
			x = @decryption_x
			y = 10
		}
	}
	ai_will_do = {
		factor = 1.5
		modifier = {
			num_of_military_factories = < 50
			factor = 1.5
		} {
			factor = 3
			tag = GER
		} {
			factor = 3
			tag = SOV
		}
	}
	categories = {
		electronics decryption_tech
	}
}
### Entity: Military Industrial Organization
Component: SIA_bangkok_dock_co_organization
Constructs: equipment_bonus
Source: game
File: common/military_industrial_organization/organizations/r56_SIA_organization.txt

Code:
SIA_bangkok_dock_co_organization = {
	name = Bangkok Dock Co
	include = generic_task_force_ship_organization
	icon = GFX_idea_generic_naval_manufacturer_3
	allowed = {
		original_TAG = SIA
	}
	initial_trait = {
		name = generic_mio_initial_trait_task_force_ship_builders
		organization_modifier = {
			military_industrial_organization_research_bonus = 0.05
		}
		equipment_bonus = {
			max_strength = 0.05
		}
	}
}
### Entity: Technology
Component: basic_submarine_snorkel
Constructs: has_war_with, enable_equipment_modules, research_cost
Source: game
File: common/technologies/MTG_naval.txt

Code:
technology = {
	enable_equipment_modules = {
		ship_sub_snorkel_1
	}
	path = {
		leads_to_tech = improved_submarine_snorkel
		research_cost_coeff = 1
	}
	on_research_complete = {
		custom_effect_tooltip = snorkel_advice_tt
	}
	research_cost = 1
	start_year = 1939
	folder = {
		name = mtgnavalfolder
		position = {
			x = -1
			y = 13
		}
	}
	ai_will_do = {
		factor = 1
		modifier = {
			factor = 7
			OR = {
				tag = GER HOL
			}
		} {
			not = {
				has_war_with = ENG
				has_War_with = USA
			}
			factor = 0.5
		}
	}
	categories = {
		naval_equipment ss_tech ship_modules_tech mio_cat_tech_all_submarine_and_modules
	}
	special_project_specialization = {
		specialization_naval
	}
}
### Entity: National Focus
Tree: prc_focus
Component: PRC_raid_weapon_depots
Constructs: prerequisite, has_war, completion_reward, cancel_if_invalid
Source: game
File: common/national_focus/china_communist_sea.txt

Code:
focus = {
	id = PRC_raid_weapon_depots
	icon = GFX_focus_PRC_raid_weapon_depots
	prerequisite = {
		focus = PRC_propaganda_efforts
	} {
		focus = PRC_establish_friendly_bases
	}
	x = -1
	y = 1
	relative_position_id = PRC_propaganda_efforts
	cost = 5
	ai_will_do = {
		factor = 1
	}
	available = {
		has_war = yes
	}
	bypass = {

	}
	cancel_if_invalid = yes
	continue_if_invalid = no
	available_if_capitulated = no
	search_filters = {
		FOCUS_FILTER_HISTORICAL
	}
	completion_reward = {
		custom_effect_tooltip = PRC_raid_weapon_depots_tt
	}
}
### Entity: Effect Reference
Construct: end_exile
Source: vanilla_docs
File: documentation/effects_documentation.md

Doc:
## end_exile

* Supported Scopes: COUNTRY
* Supported Targets: THIS, ROOT, PREV, FROM, OWNER, CONTROLLER, OCCUPIED, CAPITAL

```
Ends the exile of of the current scope's country
```
### Entity: AI Strategy
Component: infantry_CHI
Source: game
File: common/ai_templates/templates_CHI.txt

Code:
infantry_CHI = {
	available_for = {
		CHI PRC GXC YUN SHX XSM SIK MEN MAN GDC SND SIC NXM GSM XIC KHM KUM HBC
	}
	role = infantry
	upgrade_prio = {
		factor = 2
		modifier = {
			factor = 5
		}
	}
	infantry_default_CHI = {
		upgrade_prio = {
			factor = 2
			modifier = {
				factor = 1
			}
		}
		target_template = {
			support = {
				engineer = 1
			}
			regimental_support = {
				field_guns = 2
			}
			regiments = {
				infantry = 10
			}
		}
	}
	infantry_2_CHI = {
		upgrade_prio = {
			factor = 2
			modifier = {
				factor = 0
				num_of_factories = < 50
			}
		}
		target_template = {
			support = {
				engineer = 1
				recon = 1
			}
			regimental_support = {
				field_guns = 2
			}
			regiments = {
				infantry = 9
				artillery_brigade = 1
			}
		}
	}
}