2025-11-25 04:04:29

This commit is contained in:
actions[bot]
2025-11-25 04:04:29 +00:00
parent cae4bc2ca7
commit a519b263f0
110 changed files with 5920 additions and 4846 deletions

View File

@@ -0,0 +1,83 @@
# Goal-based Naval AI
## Introduction
This system replaces how the AI executes missions. The previous system relied on pre-defined priorities between missions, and rather obtuse logic for how task forces would be gathered and assigned to the missions. This new system aims to make the AI decision-making process more flexible, understandable and scriptable.
## Key concepts:
### Goals
A goal is a high-level operation that the AI could utilize its navy for.
Some examples:
* Supporting naval invasions
* Protecting trade routes
* Establishing naval dominance
A goal encompasses the action and the purpose, but a goal in itself does not have a specific target. That is where **Objectives** come in.
### Objectives
An objective is the application of a goal to a specific target.
Some examples:
* Supporting the naval invasion **on Iwo Jima** (i.e. a specific invasion)
* Protecting our trade route **with France** (i.e. a specific trade route)
* Establishing naval dominance **in the Mediterranean** (i.e. a specific region)
## Goal/Objective Scoring
All active objectives for a country are collected and scored. Objectives are then executed in a prioritized order according to the score - the AI will try to execute as many objectives as possible, starting with the highest scoring one.
Objectives are scored based on two factors:
* The **goal priority**: Each goal has a priority range, which signifies the importance of that goal to the country. This range determines the scoring range for objectives within that goal.
* The **objective importance**: This is a normalized value between **0-1**, which determines where in the goal's priority range the objective will be scored.
### An example:
* The **naval invasion support** goal has a priority range of **5-10**
* There is an objective targeting **Iwo Jima** with an importance of **0.8**
* There is an objective targeting **Okinawa** with an importance of **0.4**
* The **convoy protection** goal has a priority range of **3-8**
* There is an objective targeting a trade route with **France** with an importance of **0.9**
* There is an objective targeting a trade route with **Spain** with an importance of **0.4**
The AI will score the objectives as follows:
* Naval invasion support on Iwo Jima: **9.0** ( 5 + (10-5) * 0.8 )
* Convoy protection with France: **7.5** ( 3 + (8-3) * 0.9 )
* Naval invasion support on Okinawa: **7.0** ( 5 + (10-5) * 0.4 )
* Convoy protection with Spain: **5.0** ( 3 + (8-3) * 0.4 )
As illustrated, this results in a priority order where objectives from different goals are mixed. The idea is that the **goal priority** makes sure that the most relevant goals are always more favored, while the **objective importance** prioritizes objectives within goals. This system also allows high-value objectives from lower-prio goals to still have a chance to be prioritized over low-value objectives from higher-prio goals, as can be seen from the example above.
## Scripting
```
goal_name = {
objective_type = [type] # See *Objective Types* below
available_for = {
ENG # If present, the goal will be disabled for all countries by default, and only available for the countries within this block
}
blocked_for = {
GER # If present, the goal will be disabled for the countries within this block
}
min_priority = 5 # The minimum priority for this goal, see *Goal/Objective Scoring* above
max_priority = 10 # The maximum priority for this goal, see *Goal/Objective Scoring* above
}
```
### Objective Types
These objective types are supported:
* naval_invasion_support
* naval_invasion_defense
* mines_sweeping
* coast_defense
* convoy_protection
* convoy_raiding
## Debugging
Use the command "*imgui show ai_navy*" to enable debugging of naval goals.

View File

@@ -0,0 +1,30 @@
generic_dominance_fleet_1 = {
required_taskforces = {
StrikeForce_1 = 1
PatrolDominanceForce_1 = 2
PatrolReconForce_1 = 2
}
optional_taskforces = {
StrikeForce_1 = 1
PatrolReconForce_1 = 1
PatrolDominanceForce_1 = 1
}
}
generic_raiding_fleet_2 = {
required_taskforces = {
ConvoyRaiding_1 = 2
}
optional_taskforces = {
ConvoyRaiding_1 = 2
}
}
generic_escort_fleet_3 = {
required_taskforces = {
ConvoyEscort_1 = 2
}
optional_taskforces = {
ConvoyEscort_1 = 1
}
}

View File

@@ -0,0 +1,69 @@
generic_naval_invasion_support = {
objective_type = naval_invasion_support
min_priority = 4
max_priority = 14
}
generic_mine_sweeping = {
objective_type = mines_sweeping
min_priority = 1
max_priority = 2
}
generic_invasion_defense = {
objective_type = naval_invasion_defense
min_priority = 5
max_priority = 15
}
generic_coast_defense = {
objective_type = coast_defense
min_priority = 1
max_priority = 8
}
generic_convoy_protection = {
objective_type = convoy_protection
min_priority = 1
max_priority = 5
}
generic_convoy_raiding = {
objective_type = convoy_raiding
min_priority = 3
max_priority = 7
}
generic_naval_dominance = {
objective_type = naval_dominance
min_priority = 8
max_priority = 20
}
generic_mine_laying = {
objective_type = mines_planting
min_priority = 0
max_priority = 0
}
generic_training = {
objective_type = training
min_priority = 10
max_priority = 20
}
generic_naval_blockade = {
objective_type = naval_blockade
min_priority = 10
max_priority = 20
}

View File

@@ -0,0 +1,39 @@
# Taskforce composition
## Introduction
Script the amount of ships for a specific taskforce and its possible available missions (Currently only limited to 1)
## Scripting
```
generic_taskforce_1 = {
allowed = {
original_tag = ENG
}
ai_will_do = {
# AI weight modifier for this template
# If <= 0, the AI will not use this template
#
# SCOPE = COUNTRY
factor = 1
}
mission = { naval_patrol } # A list of applicable missions this taskforce can perform
min_composition = { # The minimum composition needed (Need more clarification here. Is the minimum before the goal system can use the taskforce?)
carrier = 1 # Ship types and the amount needed
battleship = 1
heavy_cruiser = 1
light_cruiser = 1
destroyer = 1
}
optimal_composition = { # The maximum composition this taskforce will have
carrier = 2
battleship = 2
heavy_cruiser = 5
light_cruiser = 3
destroyer = 6
submarine = 2
}
}
```

View File

@@ -0,0 +1,174 @@
StrikeForce_1 = {
allowed = {
}
ai_will_do = {
factor = 100
}
mission = { naval_strike }
min_composition = {
heavy_cruiser = {
amount = 4
}
destroyer = {
amount = 20
}
}
optimal_composition = {
carrier = {
amount = 6
}
battleship = {
amount = 8
}
heavy_cruiser = {
amount = 4
}
medium_cruiser = {
amount = 4
}
light_cruiser = {
amount = 15
}
destroyer = {
amount = 25
}
}
}
PatrolReconForce_1 = {
allowed = {
}
ai_will_do = {
factor = 5
}
mission = { naval_patrol }
min_composition = {
destroyer = {
amount = 1
}
}
optimal_composition = {
destroyer = {
amount = 5
}
}
}
PatrolDominanceForce_1 = {
allowed = {
}
ai_will_do = {
factor = 5
}
mission = { naval_patrol }
min_composition = {
light_cruiser = {
amount = 4
}
destroyer = {
amount = 10
}
}
optimal_composition = {
battleship = {
amount = 4
}
light_cruiser = {
amount = 10
}
destroyer = {
amount = 20
}
}
}
PatrolDominanceForce_2 = {
allowed = {
}
ai_will_do = {
factor = 1
}
mission = { naval_patrol }
min_composition = {
light_cruiser = {
amount = 4
}
destroyer = {
amount = 10
}
}
optimal_composition = {
battle_cruiser = {
amount = 4
}
light_cruiser = {
amount = 10
}
destroyer = {
amount = 20
}
}
}
ConvoyRaiding_1 = {
allowed = {
NOT = {
original_tag = JAP
original_tag = ENG
original_tag = SOV
original_tag = USA
original_tag = ITA
original_tag = GER
original_tag = FRA
}
}
ai_will_do = {
factor = 1
}
mission = { convoy_raiding }
min_composition = {
submarine = {
amount = 4
}
}
optimal_composition = {
submarine = {
amount = 12
}
}
}
ConvoyEscort_1 = {
allowed = {
NOT = {
original_tag = JAP
original_tag = ENG
original_tag = SOV
original_tag = USA
original_tag = ITA
original_tag = GER
original_tag = FRA
}
}
ai_will_do = {
factor = 5
}
mission = { convoy_escort }
min_composition = {
destroyer = {
amount = 5
}
}
optimal_composition = {
destroyer = {
amount = 10
}
}
}

View File

@@ -371,7 +371,13 @@ naval_unit_role_ratios_GER_prewar_early = {
ai_strategy = {
type = role_ratio
id = vnr_naval_submarine
value = 200
value = 500
}
ai_strategy = {
type = building_target
id = dockyard
value = 25
}
}
@@ -408,7 +414,7 @@ naval_unit_role_ratios_GER_prewar_late = {
ai_strategy = {
type = role_ratio
id = vnr_naval_capital_bb
value = 12
value = 30
}
ai_strategy = {
@@ -418,8 +424,9 @@ naval_unit_role_ratios_GER_prewar_late = {
}
ai_strategy = {
type = dockyard_to_military_factory_ratio
value = 50
type = building_target
id = dockyard
value = 35
}
}
@@ -437,7 +444,7 @@ naval_unit_role_ratios_GER_atwar = {
ai_strategy = {
type = role_ratio
id = vnr_naval_submarine
value = 1800
value = 3000
}
ai_strategy = {
@@ -459,8 +466,9 @@ naval_unit_role_ratios_GER_atwar = {
}
ai_strategy = {
type = dockyard_to_military_factory_ratio
value = 50
type = building_target
id = dockyard
value = 40
}
}
@@ -763,7 +771,7 @@ naval_unit_role_ratios_ENG_prewar_late = {
ai_strategy = {
type = role_ratio
id = vnr_naval_screen
value = 350
value = 250
}
ai_strategy = {
@@ -775,7 +783,7 @@ naval_unit_role_ratios_ENG_prewar_late = {
ai_strategy = {
type = role_ratio
id = vnr_naval_cruiser_medium
value = -30
value = 50
}
ai_strategy = {
@@ -809,7 +817,7 @@ naval_unit_role_ratios_ENG_atwar = {
ai_strategy = {
type = role_ratio
id = vnr_naval_screen
value = 450
value = 300
}
ai_strategy = {
@@ -818,6 +826,12 @@ naval_unit_role_ratios_ENG_atwar = {
value = 150
}
ai_strategy = {
type = role_ratio
id = vnr_naval_cruiser_medium
value = 20
}
ai_strategy = {
type = role_ratio
id = vnr_naval_submarine
@@ -1292,7 +1306,7 @@ naval_unit_role_ratios_JAP_prewar_enough_carrier = {
ai_strategy = {
type = role_ratio
id = vnr_naval_submarine
value = 250
value = 350
}
ai_strategy = {
type = role_ratio
@@ -1302,11 +1316,11 @@ naval_unit_role_ratios_JAP_prewar_enough_carrier = {
ai_strategy = {
type = role_ratio
id = vnr_naval_cruiser_light
value = 50
value = 80
}
ai_strategy = {
type = role_ratio
id = vnr_naval_cruiser_heavy
id = vnr_naval_cruiser_medium
value = 30
}
ai_strategy = {
@@ -1317,7 +1331,7 @@ naval_unit_role_ratios_JAP_prewar_enough_carrier = {
ai_strategy = {
type = role_ratio
id = vnr_naval_carrier
value = 100
value = 150
}
ai_strategy = {
type = dockyard_to_military_factory_ratio
@@ -1357,7 +1371,7 @@ naval_unit_role_ratios_JAP_atwar = {
ai_strategy = {
type = role_ratio
id = vnr_naval_cruiser_light
value = 60
value = 90
}
ai_strategy = {
type = role_ratio
@@ -1367,7 +1381,7 @@ naval_unit_role_ratios_JAP_atwar = {
ai_strategy = {
type = role_ratio
id = vnr_naval_carrier
value = 100
value = 150
}
ai_strategy = {
type = dockyard_to_military_factory_ratio
@@ -1671,12 +1685,12 @@ naval_unit_role_ratios_ITA_prewar_enough_battleships = {
ai_strategy = {
type = role_ratio
id = vnr_naval_cruiser_light
value = 40
value = 80
}
ai_strategy = {
type = role_ratio
id = vnr_naval_cruiser_medium
value = 10
value = 30
}
ai_strategy = {
@@ -2452,21 +2466,6 @@ build_more_missile_cruisers = {
}
}
restrict_early_landing = {
allowed = {
always = yes
}
enable = {
enemies_naval_strength_ratio > 1.5
}
abort_when_not_enabled = yes
ai_strategy = {
type = naval_invasion_focus
value = -1000
}
}
upgrade_cv_plane_strategy_0 = {
allowed = {
always = yes

View File

@@ -1,7 +1,6 @@
### ENG ###
ENG_protect_home_waters = {
allowed = {
has_dlc = "Man the Guns"
original_tag = ENG
}
enable = {
@@ -13,25 +12,34 @@ ENG_protect_home_waters = {
}
abort_when_not_enabled = yes
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 18
value = 9999
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 16
value = 9999
value = 100
}
ai_strategy = {
type = naval_avoid_region
id = 18
value = -1000
}
ai_strategy = {
type = naval_avoid_region
id = 173
value = 100
}
ai_strategy = {
type = naval_avoid_region
id = 207
value = 500
}
}
ENG_secure_mediterranean = {
allowed = {
has_dlc = "Man the Guns"
original_tag = ENG
}
enable = {
@@ -46,19 +54,19 @@ ENG_secure_mediterranean = {
}
abort_when_not_enabled = yes
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 29
value = 150
}
ai_strategy = {
type = strike_force_home_base
id = 68
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 68
value = 60
}
ai_strategy = {
type = naval_dominance
id = 69
value = 200
value = 100
}
ai_strategy = {
type = naval_avoid_region
@@ -69,7 +77,6 @@ ENG_secure_mediterranean = {
ENG_avoid_mediterranean = {
allowed = {
has_dlc = "Man the Guns"
original_tag = ENG
}
enable = {
@@ -104,7 +111,6 @@ ENG_avoid_mediterranean = {
ENG_avoid_pacific = {
allowed = {
has_dlc = "Man the Guns"
original_tag = ENG
}
enable = {
@@ -140,7 +146,6 @@ ENG_avoid_pacific = {
ENG_reinforce_pacific = {
allowed = {
has_dlc = "Man the Guns"
original_tag = ENG
}
enable = {
@@ -166,41 +171,40 @@ ENG_reinforce_pacific = {
}
abort_when_not_enabled = yes
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 72
value = 1000
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 91
value = 10
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 92
value = 10
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 93
value = 10
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 84
value = 300
value = 50
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 83
value = 300
value = 50
}
}
### JAP ###
JAP_destroy_china_navy_quick = {
allowed = {
has_dlc = "Man the Guns"
original_tag = JAP
}
enable = {
@@ -210,41 +214,30 @@ JAP_destroy_china_navy_quick = {
}
abort_when_not_enabled = yes
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 75
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 76
value = 200
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 77
value = 200
value = 100
}
ai_strategy = {
type = naval_convoy_raid_region
id = 75
type = convoy_raiding_target
id = CHI
value = 100
}
ai_strategy = {
type = naval_convoy_raid_region
id = 76
value = 200
}
ai_strategy = {
type = naval_convoy_raid_region
id = 77
value = 200
}
}
JAP_pacific_war_naval_stage_one = {
allowed = {
has_dlc = "Man the Guns"
original_tag = JAP
}
enable = {
@@ -257,30 +250,29 @@ JAP_pacific_war_naval_stage_one = {
}
abort_when_not_enabled = yes
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 75
value = 200
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 78
value = 200
value = 80
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 94
value = 50
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 84
value = 130
value = 100
}
}
JAP_pacific_war_naval_stage_two = {
allowed = {
has_dlc = "Man the Guns"
original_tag = JAP
}
enable = {
@@ -299,51 +291,50 @@ JAP_pacific_war_naval_stage_two = {
}
abort_when_not_enabled = yes
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 75
value = 50
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 78
value = 50
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 94
value = 50
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 84
value = 50
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 95
value = 200
}
ai_strategy = {
type = strike_force_home_base
id = 97
value = 200
}
ai_strategy = {
type = strike_force_home_base
id = 180
value = 100
}
ai_strategy = {
type = naval_dominance
id = 97
value = 100
}
ai_strategy = {
type = naval_dominance
id = 180
value = 75
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 83
value = 130
value = 85
}
}
### USA ###
USA_pacific_war_naval_avoid_first = {
allowed = {
has_dlc = "Man the Guns"
original_tag = USA
}
enable = {
@@ -421,30 +412,29 @@ USA_pacific_war_naval_avoid_first = {
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 95
value = 500
value = 60
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 97
value = 500
value = 60
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 105
value = 9999
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 180
value = 500
value = 100
}
}
USA_do_not_waste_fleet_in_north_pacific = {
allowed = {
has_dlc = "Man the Guns"
original_tag = USA
}
enable = {
@@ -453,40 +443,39 @@ USA_do_not_waste_fleet_in_north_pacific = {
}
abort_when_not_enabled = yes
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 87
value = -1000
value = 0
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 88
value = -1000
value = 0
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 96
value = -1000
value = 0
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 176
value = -1000
value = 0
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 114
value = -1000
value = 0
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 171
value = -1000
value = 0
}
}
USA_pacific_war_naval_counterattack_1 = {
allowed = {
has_dlc = "Man the Guns"
original_tag = USA
}
enable = {
@@ -562,29 +551,29 @@ USA_pacific_war_naval_counterattack_1 = {
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 84
value = 500
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 95
value = 500
value = 80
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 97
value = 500
value = 80
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 105
value = 9999
value = 80
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 180
value = 500
value = 100
}
ai_strategy = {
type = invade
@@ -597,19 +586,9 @@ USA_pacific_war_naval_counterattack_1 = {
}
ai_strategy = {
type = naval_convoy_raid_region
id = 94
value = 300
}
ai_strategy = {
type = naval_convoy_raid_region
id = 97
value = 300
}
ai_strategy = {
type = naval_convoy_raid_region
id = 84
value = 300
type = convoy_raiding_target
id = JAP
value = 100
}
ai_strategy = {
@@ -633,7 +612,6 @@ USA_pacific_war_naval_counterattack_1 = {
USA_pacific_war_naval_counterattack_2 = {
allowed = {
has_dlc = "Man the Guns"
original_tag = USA
}
enable = {
@@ -690,29 +668,29 @@ USA_pacific_war_naval_counterattack_2 = {
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 84
value = 500
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 95
value = 500
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 97
value = 500
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 94
value = 500
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 78
value = 1000
value = 100
}
ai_strategy = {
type = invade
@@ -725,29 +703,9 @@ USA_pacific_war_naval_counterattack_2 = {
}
ai_strategy = {
type = naval_convoy_raid_region
id = 94
value = 300
}
ai_strategy = {
type = naval_convoy_raid_region
id = 97
value = 300
}
ai_strategy = {
type = naval_convoy_raid_region
id = 84
value = 300
}
ai_strategy = {
type = naval_convoy_raid_region
id = 78
value = 300
}
ai_strategy = {
type = naval_convoy_raid_region
id = 76
value = 300
type = convoy_raiding_target
id = JAP
value = 100
}
ai_strategy = {
@@ -765,15 +723,14 @@ USA_pacific_war_naval_counterattack_2 = {
ai_strategy = {
type = front_control
area = pacific
ordertype = home_islands
area = home_islands
ordertype = invasion
execute_order = yes
}
}
USA_pacific_war_naval_counterattack_3 = {
allowed = {
has_dlc = "Man the Guns"
original_tag = USA
}
enable = {
@@ -803,29 +760,29 @@ USA_pacific_war_naval_counterattack_3 = {
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 75
value = 500
value = 80
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 80
value = 500
value = 80
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 76
value = 1000
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 94
value = 500
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 78
value = 500
value = 100
}
ai_strategy = {
type = invade
@@ -838,19 +795,9 @@ USA_pacific_war_naval_counterattack_3 = {
}
ai_strategy = {
type = naval_convoy_raid_region
id = 78
value = 300
}
ai_strategy = {
type = naval_convoy_raid_region
id = 76
value = 300
}
ai_strategy = {
type = naval_convoy_raid_region
id = 90
value = 300
type = convoy_raiding_target
id = JAP
value = 100
}
ai_strategy = {
@@ -868,8 +815,8 @@ USA_pacific_war_naval_counterattack_3 = {
ai_strategy = {
type = front_control
area = pacific
ordertype = home_islands
area = home_islands
ordertype = invasion
execute_order = yes
}
}
@@ -877,7 +824,6 @@ USA_pacific_war_naval_counterattack_3 = {
### ITA ###
ITA_avoid_mediterranean = {
allowed = {
has_dlc = "Man the Guns"
original_tag = ITA
}
enable = {
@@ -890,58 +836,59 @@ ITA_avoid_mediterranean = {
}
abort_when_not_enabled = yes
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 29
value = -1000
value = 50
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 68
value = -1000
value = 0
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 69
value = -1000
value = 0
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 168
value = 500
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 169
value = 500
value = 100
}
ai_strategy = {
type = naval_convoy_raid_region
type = naval_blockade
target_country = ENG
id = 68
value = 100
}
ai_strategy = {
type = naval_convoy_raid_region
type = naval_blockade
target_country = ENG
id = 69
value = 100
}
ai_strategy = {
type = naval_convoy_raid_region
type = naval_blockade
target_country = ENG
id = 29
value = 100
value = 60
}
ai_strategy = {
type = naval_avoid_region
id = 29
value = 800
type = convoy_raiding_target
id = ENG
value = 50
}
}
### GER ###
GER_forget_sealion = {
allowed = {
has_dlc = "Man the Guns"
original_tag = GER
}
enable = {
@@ -954,20 +901,24 @@ GER_forget_sealion = {
}
abort_when_not_enabled = yes
ai_strategy = {
type = naval_avoid_region
type = naval_dominance
id = 18
value = 800
value = 0
}
ai_strategy = {
type = naval_avoid_region
type = naval_dominance
id = 16
value = 200
value = 10
}
ai_strategy = {
type = invade
tag = ENG
value = -500
}
}
GER_unrestricted_submarine_warfare = {
allowed = {
has_dlc = "Man the Guns"
original_tag = GER
}
enable = {
@@ -976,50 +927,65 @@ GER_unrestricted_submarine_warfare = {
tag = ENG
ratio < 0.7
}
FRA = { has_capitulated = yes }
enable_vnr_naval_ai = yes
}
abort_when_not_enabled = yes
ai_strategy = {
type = naval_convoy_raid_region
type = naval_blockade
target_country = ENG
id = 47
value = 200
value = 70
}
ai_strategy = {
type = naval_convoy_raid_region
type = naval_blockade
target_country = ENG
id = 49
value = 500
value = 70
}
ai_strategy = {
type = naval_convoy_raid_region
type = naval_blockade
target_country = ENG
id = 44
value = 150
value = 70
}
ai_strategy = {
type = naval_convoy_raid_region
type = naval_blockade
target_country = ENG
id = 50
value = 30
value = 70
}
ai_strategy = {
type = naval_blockade
target_country = ENG
id = 42
value = 70
}
ai_strategy = {
type = convoy_raiding_target
id = ENG
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 173
value = 500
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 207
value = 500
value = 100
}
ai_strategy = {
type = strike_force_home_base
type = naval_dominance
id = 9
value = 500
value = 50
}
}
GER_avoid_mediterranean = {
allowed = {
has_dlc = "Man the Guns"
original_tag = GER
}
enable = {
@@ -1030,35 +996,34 @@ GER_avoid_mediterranean = {
abort_when_not_enabled = yes
ai_strategy = {
type = naval_avoid_region
type = naval_dominance
id = 29
value = 1000
value = 0
}
ai_strategy = {
type = naval_avoid_region
type = naval_dominance
id = 68
value = 1000
value = 0
}
ai_strategy = {
type = naval_avoid_region
type = naval_dominance
id = 69
value = 1000
value = 0
}
ai_strategy = {
type = naval_avoid_region
type = naval_dominance
id = 168
value = 1000
value = 0
}
ai_strategy = {
type = naval_avoid_region
type = naval_dominance
id = 169
value = 1000
value = 0
}
}
GER_invade_norway = {
allowed = {
has_dlc = "Man the Guns"
original_tag = GER
}
enable = {
@@ -1074,4 +1039,19 @@ GER_invade_norway = {
id = NOR
value = 1000
}
ai_strategy = {
type = invasion_unit_request
tag = NOR
value = 50
}
ai_strategy = {
type = naval_dominance
id = 173
value = 50
}
ai_strategy = {
type = naval_dominance
id = 207
value = 100
}
}

View File

@@ -1,4 +1,3 @@
NDefines.NAI.ENEMY_NAVY_STRENGTH_DONT_BOTHER = 1.5;
NDefines.NAI.SHIPS_PRODUCTION_BASE_COST = 25000;
NDefines.NAI.NAVY_PREFERED_MAX_SIZE = 65;
NDefines.NAI.NAVAL_DOCKYARDS_SHIP_FACTOR = 2.5;
@@ -13,14 +12,13 @@ NDefines.NAI.REPAIR_TASKFORCE_SIZE = 5;
NDefines.NAI.WANTED_CARRIER_PLANES_PER_CARRIER_CAPACITY_FACTOR = 2;
NDefines.NAI.WANTED_CARRIER_PLANES_PER_CARRIER_CAPACITY_IN_PRODUCTION_FACTOR = 1.5;
NDefines.NAI.AI_WANTED_CARRIER_BASED_PLANES_FACTOR = 1.5;
NDefines.NAI.MAX_ALLOWED_NAVAL_DANGER = 100;
NDefines.NAI.CONVOY_ESCORT_SCORE_FROM_CONVOYS = 25;
NDefines.NAI.MAIN_SHIP_RATIO_TO_SPLIT = 1.6;
NDefines.NAI.MIN_MAIN_SHIP_RATIO = 0.6;
NDefines.NAI.DESIRE_USE_XP_TO_UNLOCK_NAVAL_DOCTRINE = 0.75;
NDefines.NAI.DESIRE_USE_XP_TO_UNLOCK_NAVAL_DOCTRINE = 1.25;
NDefines.NAI.DESIRE_USE_XP_TO_UPGRADE_NAVAL_EQUIPMENT = 1;
NDefines.NAI.DEFAULT_MODULE_VARIANT_CREATION_XP_CUTOFF_NAVY = 40;
NDefines.NAI.VARIANT_CREATION_XP_RESERVE_NAVY = 40;
NDefines.NAI.DEFAULT_MODULE_VARIANT_CREATION_XP_CUTOFF_NAVY = 30;
NDefines.NAI.VARIANT_CREATION_XP_RESERVE_NAVY = 30;
NDefines.NAI.DEFAULT_MODULE_VARIANT_CREATION_XP_CUTOFF_AIR = 15;
NDefines.NAI.VARIANT_CREATION_XP_RESERVE_AIR = 30;
NDefines.NAI.MAX_SCREEN_TASKFORCES_FOR_CONVOY_DEFENSE_MIN = 0.00;
@@ -32,6 +30,8 @@ NDefines.NAI.MAX_SCREEN_FORCES_FOR_INVASION_SUPPORT = 0.1;
NDefines.NAI.NAVAL_BASE_RATIO_ALLOCATED_FOR_REPAIRS = 0.1;
NDefines.NAI.NAVAL_BASE_RATIO_ALLOCATED_FOR_REPAIRS_IN_WAR_TIME = 0.5;
NDefines.NAI.SHIP_STR_RATIO_PUT_ON_REPAIRS = 0.6;
NDefines.NAI.MAX_ALLOWED_NAVAL_DANGER = 500;
NDefines.NAI.REGION_CONVOY_DANGER_DAILY_DECAY = 10;
NDefines.NNavy.HIT_PROFILE_SPEED_FACTOR = 0.3;
NDefines.NNavy.COMBAT_BASE_HIT_CHANCE = 0.08;
@@ -54,8 +54,7 @@ NDefines.NNavy.NAVY_PIERCING_THRESHOLDS = { 2.0, 1.0, 0.85, 0.75, 0.7, 0.65, 0.6
NDefines.NNavy.NAVY_PIERCING_THRESHOLD_CRITICAL_VALUES = { 3.0, 1.25, 1.0, 0.65, 0.55, 0.3, 0.15, 0.1, 0.05, 0.01, 0.0 }
NDefines.NNavy.NAVY_PIERCING_THRESHOLD_DAMAGE_VALUES = { 2.0, 1.0, 0.7, 0.6, 0.45, 0.35, 0.2, 0.1, 0.05, 0.02, 0.01 }
NDefines.NNavy.CONVOY_DEFENSE_MAX_REGION_TO_TASKFORCE_RATIO = 2;
NDefines.NNavy.COMBAT_TORPEDO_CRITICAL_CHANCE = 0.6;
NDefines.NNavy.CARRIER_STACK_PENALTY = 6;
NDefines.NNavy.COMBAT_TORPEDO_CRITICAL_CHANCE = 0.4;
NDefines.NNavy.COMBAT_MIN_DURATION = 20;
NDefines.NNavy.CAPITAL_ONLY_COMBAT_ACTIVATE_TIME = 22;
NDefines.NNavy.ALL_SHIPS_ACTIVATE_TIME = 30;
@@ -96,12 +95,20 @@ NDefines.NNavy.NAVAL_TRANSFER_BASE_SPEED = 4;
NDefines.NNavy.AMPHIBIOUS_INVADE_SPEED_BASE = 0.25;
NDefines.NNavy.SUPREMACY_PER_SHIP_PER_MANPOWER = 0.001;
NDefines.NNavy.SUPREMACY_PER_SHIP_PER_IC = 0.05;
NDefines.NNavy.NAVAL_COMBAT_AIR_CARRIER_TARGET_SCORE = 1000;
NDefines.NNavy.NAVAL_COMBAT_AIR_CAPITAL_TARGET_SCORE = 50;
NDefines.NNavy.NAVAL_COMBAT_AIR_CARRIER_TARGET_SCALE = 1000;
NDefines.NNavy.UNIT_EXPERIENCE_PER_COMBAT_HOUR = 3;
NDefines.NNavy.UNIT_EXPERIENCE_SCALE = 0.8;
NDefines.NNavy.BASE_CARRIER_SORTIE_EFFICIENCY = 0.4;
NDefines.NNavy.CHANCE_TO_DAMAGE_PART_ON_CRITICAL_HIT_FROM_AIR = 0.35
NDefines.NNavy.CARRIER_OFFENSIVE_STANCE_SORTIE_RATIO = {0.25, 0.37, 0.50, 0.62, 0.75}
NDefines.NNavy.SHIP_SUPPORT_NEED_FACTOR = 0.25;
NDefines.NNavy.NAVAL_DOMINANCE_STRIKE_FORCE_MULTIREGION_DECAY = 0.1;
NDefines.NNavy.NAVAL_DOMINANCE_MINES_PLANTING_BONUS = 0.1;
NDefines.NNavy.NAVAL_DOMINANCE_MINES_SWEEPING_BONUS = 0.1;
NDefines.NNavy.NAVAL_DOMINANCE_SHIP_RECOVERY_CHANCE = 0.05;
NDefines.NNavy.NAVAL_COMBAT_PLANE_MIN_STACKING_PENALTY = 150;
NDefines.NNavy.NAVAL_COMBAT_PLANE_STACKING_PENALTY_EFFECT = 0.01;
NDefines.NNavy.NAVAL_COMBAT_PLANE_STACKING_PENALTY_EFFECT = 0.005
NDefines.NNavy.SHIP_SILHOUETTE_VALUE_PLANES_CARRIER = 500;
NDefines.NNavy.COMBAT_DAMAGE_RANDOMNESS = 0.3;
NDefines.NNavy.NAVY_VISIBILITY_BONUS_ON_RETURN_FOR_REPAIR = 0.6;
NDefines.NNavy.SCREEN_RATIO_FOR_FULL_SCREENING_FOR_CONVOYS = 0.25;
@@ -118,7 +125,7 @@ NDefines.NNavy.GUN_HIT_PROFILES = { -- hit profiles for guns, if target ih profi
105.0, -- torpedoes
55.0, -- small guns
};
NDefines.NNavy.MISSION_SUPREMACY_RATIOS = {
NDefines.NNavy.MISSION_DOMINANCE_RATIOS = {
0.0, -- HOLD
0.6, -- PATROL
1.0, -- STRIKE FORCE
@@ -138,7 +145,7 @@ NDefines.NAI.MIN_NAVAL_MISSION_PRIO_TO_ASSIGN = {
100, -- CONVOY ESCORT
100, -- MINES PLANTING
100, -- MINES SWEEPING
300, -- TRAIN
0, -- TRAIN
0, -- RESERVE_FLEET
100, -- NAVAL INVASION SUPPORT
};
@@ -174,7 +181,7 @@ NDefines.NAir.CARRIER_HOURS_DELAY_AFTER_EACH_COMBAT = 3;
NDefines.NAir.DISRUPTION_FACTOR_CARRIER = 25.0;
NDefines.NAir.NAVAL_STRIKE_DAMAGE_TO_ORG = 0.25;
NDefines.NAir.AIR_AGILITY_TO_NAVAL_STRIKE_AGILITY = 0.06;
NDefines.NAir.CAPACITY_PENALTY = 3;
--NDefines.NAir.CAPACITY_PENALTY = 3;
NDefines.NProduction.EQUIPMENT_MODULE_ADD_XP_COST = 2;
NDefines.NProduction.EQUIPMENT_MODULE_REPLACE_XP_COST = 3;

View File

@@ -0,0 +1,57 @@
# Doctrines
## Important concepts:
* **Folder** - the category of doctrines, e.g. *land*, *air* or *naval*
* **Grand Doctrine** - mutually exclusive root of the doctrine folder, unlocked with XP
* **Track** - a slot for a subdoctrine and its rewards
* **Milestone** - an additional reward for completing a track
* **Subdoctrine** - can be slotted as the root of a specific track, unlocked with XP
* **Mastery** - the progress made within a track
* **Reward** - a reward for making gaining mastery within a track, belongs to a subdoctrine
## Doctrine Effects
* set_grand_doctrine
* set_sub_doctrine
* add_mastery
* add_daily_mastery
* add_mastery_bonus
## Doctrine Triggers
* has_completed_subdoctrine
* has_doctrine
* has_completed_track
* has_subdoctrine_in_track
* has_mastery
* has_mastery_level
## Doctrine Modifiers
### Doctrine Cost modifiers
* *[folder_name]*_doctrine_cost_factor
```
# Example:
land_doctrine_cost_factor = -0.15 # 15% cost reduction to grand doctrines and subdoctrines in the land folder
```
### Mastery Gain modifiers
Note: for these mastery gain modifiers, localization is automatically mapped, meaning you do not have to define unique localization keys for each generated modifier.
* *[grand_doctrine_name]*_mastery_gain_factor
```
# Example:
new_mobile_warfare_mastery_gain_factor = 0.15 # +15% mastery gain for all tracks which have Mobile Warfare as the grand doctrine
```
* *[subdoctrine_name]*_mastery_gain_factor
```
# Example:
guerilla_war_mastery_gain_factor = 0.15 # +15% mastery gain for all tracks which have Guerilla Warfare as the subdoctrine
```
* *[track_name]*_track_mastery_gain_factor
```
# Example:
infantry_track_mastery_gain_factor = 0.15 # +15% mastery gain for infantry tracks
```

View File

@@ -0,0 +1,103 @@
# Grand Doctrines
**Grand doctrines** are at the root of each doctrine *Folder*. The player can choose any available grand doctrine for that folder and activate it by paying an XP cost. Activating a grand doctrine gives immediate effects, like unit stat bonuses or unlocking tactics. Also, activating a grand doctrine makes available its corresponding *Subdoctrine Tracks*. For each track, the grand doctrine has a **Milestone** which is additional reward for completing that track.
## Script Examples
```
mobile_warfare = {
folder = land # Refers to the script name of a folder
name = GRAND_DOCTRINE_MOBILE_WARFARE # Loc key
description = GRAND_DOCTRINE_MOBILE_WARFARE_DESC # Bindable loc
icon = GFX_mobile_warfare_medium # Refers to the script name of an icon
available = yes # Trigger that determines whether the doctrine can be selected
visible = yes # Trigger that determines whether the doctrine is shown in the list at all
xp_cost = 100
xp_type = army # army, navy or air
ai_will_do = { }
tracks = { # Refer to script names of tracks
infantry
artillery_support
armor
operations
}
# ACTIVATION EFFECTS - SEE BELOW
milestones = { # NOTE: milestones are in the same order as the tracks
{
# ACTIVATION EFFECTS - SEE BELOW
}
{
# ACTIVATION EFFECTS - SEE BELOW
}
{
# ACTIVATION EFFECTS - SEE BELOW
}
{
# ACTIVATION EFFECTS - SEE BELOW
}
}
}
```
## Scripting Activation Effects
Grand Doctrines, Milestones, Subdoctrines and Rewards all support scripting the following things as "activation effects":
### Country-level modifiers:
```
planning_speed = 0.4
army_speed_factor = 0.10
```
If you prefer, the Modifiers can also be scripted in an explicit block, like so:
```
modifiers = {
planning_speed = 0.4
army_speed_factor = 0.10
}
```
### Enabling tactics:
```
enable_tactic = tactic_unexpected_thrust # Or any other tactic
enable_tactic = tactic_elastic_defense
```
### Add unit stat bonuses:
```
category_tanks = {
max_organisation = 1
}
armored_car = {
max_organisation = 2
}
```
### Add equipment bonuses:
(Note: use this instead of the add_equipment_bonus effect, since the effect will not remove the bonus if the doctrine is changed)
```
equipment_bonus = {
capital_ship = {
naval_range = 0.10
instant = yes
}
}
```
### Any scripted effects:
```
effect = {
add_tech_bonus = {
bonus = 0.5
uses = 1
category = cat_light_armor
name = [GRAND_DOCTRINE_NAME_LOC_KEY]
}
}
```

View File

@@ -0,0 +1,334 @@
new_fleet_in_being = {
folder = naval
name = GRAND_DOCTRINE_FLEET_IN_BEING
description = GRAND_DOCTRINE_FLEET_IN_BEING_DESC
icon = GFX_doctrine_fleet_in_being_medium
available = {
always = yes
}
xp_cost = 100
xp_type = navy
ai_will_do = {
base = 1
}
tracks = {
submarines
screens
carriers
capital_ships
}
# EFFECTS
SH_battleship = {
max_organisation = 5
}
battleship = {
max_organisation = 5
}
battle_cruiser = {
max_organisation = 5
}
positioning = 0.1
milestones = {
{
#Submarines
naval_torpedo_reveal_chance_factor = -0.05
convoy_raiding_efficiency_factor = 0.1
effect = {
if = {
limit = {
NOT = {
has_variable = submarines_milestone_var
}
}
set_variable = { submarines_milestone_var = 1 }
}
else = {
add_to_variable = { submarines_milestone_var = 1 }
}
}
}
{
#Screens
navy_anti_air_attack_factor = 0.10
screening_efficiency = 0.05
effect = {
if = {
limit = {
NOT = {
has_variable = screens_milestone_var
}
}
set_variable = { screens_milestone_var = 1 }
}
else = {
add_to_variable = { screens_milestone_var = 1 }
}
}
}
{
#Carriers
sortie_efficiency = 0.1
navy_anti_air_attack_factor = 0.1
effect = {
if = {
limit = {
NOT = {
has_variable = carriers_milestone_var
}
}
set_variable = { carriers_milestone_var = 1 }
}
else = {
add_to_variable = { carriers_milestone_var = 1 }
}
}
}
{
#Capital Ships
positioning = 0.1
strike_force_movement_org_loss = -0.1
effect = {
if = {
limit = {
NOT = {
has_variable = capital_ships_milestone_var
}
}
set_variable = { capital_ships_milestone_var = 1 }
}
else = {
add_to_variable = { capital_ships_milestone_var = 1 }
}
}
}
}
}
new_convoy_raiding = {
folder = naval
name = GRAND_DOCTRINE_CONVOY_RAIDING
description = GRAND_DOCTRINE_CONVOY_RAIDING_DESC
icon = GFX_doctrine_trade_interdiction_medium
available = {
always = yes
}
xp_cost = 100
xp_type = navy
ai_will_do = {
base = 1
modifier = {
factor = 10
is_major = no
}
}
tracks = {
submarines
screens
carriers
capital_ships
}
# EFFECTS
submarine = {
max_organisation = 10
surface_detection = 0.10
}
convoy_raiding_efficiency_factor = 0.05
milestones = {
{
#Submarines
naval_torpedo_reveal_chance_factor = -0.1
convoy_raiding_efficiency_factor = 0.1
navy_submarine_attack_factor = 0.1
effect = {
if = {
limit = {
NOT = {
has_variable = submarines_milestone_var
}
}
set_variable = { submarines_milestone_var = 1 }
}
else = {
add_to_variable = { submarines_milestone_var = 1 }
}
}
}
{
#Screens
screening_efficiency = 0.05
convoy_escort_efficiency = 0.1
effect = {
if = {
limit = {
NOT = {
has_variable = screens_milestone_var
}
}
set_variable = { screens_milestone_var = 1 }
}
else = {
add_to_variable = { screens_milestone_var = 1 }
}
}
}
{
#Carriers
sortie_efficiency = 0.1
effect = {
if = {
limit = {
NOT = {
has_variable = carriers_milestone_var
}
}
set_variable = { carriers_milestone_var = 1 }
}
else = {
add_to_variable = { carriers_milestone_var = 1 }
}
}
}
{
#Capital Ships
navy_max_range_factor = 0.1
naval_enemy_fleet_size_ratio_penalty_factor = 0.1
effect = {
if = {
limit = {
NOT = {
has_variable = capital_ships_milestone_var
}
}
set_variable = { capital_ships_milestone_var = 1 }
}
else = {
add_to_variable = { capital_ships_milestone_var = 1 }
}
}
}
}
}
new_base_strike = {
folder = naval
name = GRAND_DOCTRINE_BASE_STRIKE
description = GRAND_DOCTRINE_BASE_STRIKE_DESC
icon = GFX_doctrine_base_strike_medium
available = {
always = yes
}
xp_cost = 100
xp_type = navy
ai_will_do = {
base = 1
}
tracks = {
submarines
screens
carriers
capital_ships
}
# EFFECTS
carrier = {
max_organisation = 10
}
port_strike = 0.4
milestones = {
{
#Submarines
naval_torpedo_reveal_chance_factor = -0.05
convoy_raiding_efficiency_factor = 0.1
effect = {
if = {
limit = {
NOT = {
has_variable = submarines_milestone_var
}
}
set_variable = { submarines_milestone_var = 1 }
}
else = {
add_to_variable = { submarines_milestone_var = 1 }
}
}
}
{
#Screens
convoy_escort_efficiency = 0.1
screening_efficiency = 0.05
naval_retreat_speed = 0.05
effect = {
if = {
limit = {
NOT = {
has_variable = screens_milestone_var
}
}
set_variable = { screens_milestone_var = 1 }
}
else = {
add_to_variable = { screens_milestone_var = 1 }
}
}
}
{
#Carriers
carrier_capacity_penalty_reduction = -0.1
sortie_efficiency = 0.1
effect = {
if = {
limit = {
NOT = {
has_variable = carriers_milestone_var
}
}
set_variable = { carriers_milestone_var = 1 }
}
else = {
add_to_variable = { carriers_milestone_var = 1 }
}
}
}
{
#Capital Ships
navy_anti_air_attack_factor = 0.15
positioning = 0.05
effect = {
if = {
limit = {
NOT = {
has_variable = capital_ships_milestone_var
}
}
set_variable = { capital_ships_milestone_var = 1 }
}
else = {
add_to_variable = { capital_ships_milestone_var = 1 }
}
}
}
}
}

View File

@@ -0,0 +1,54 @@
# Subdoctrines
**Subdoctrines** are at the root of each doctrine *Track*. The player can choose any available subdoctrine for that track and activate it by paying an XP cost. Activating a subdoctrine gives immediate effects, like unit stat bonuses or unlocking tactics. Also, activating a subdoctrine starts the automatic activation of a sequence of *Rewards*.
### TODO - how unlocking of rewards works
###reward keys are sub_doctrine_key_reward_key(_desc) - this is because they're not really database objects and this will help us avoid collisions.
## Script Examples
```
bicycle_heroes = {
track = infantry # Refers to the script name of a track
name = SUBDOCTRINE_BICYCLE_HEROES # Loc key
description = SUBDOCTRINE_BICYCLE_HEROES_DESC # Bindable loc
icon = GFX_subdoctrine_bicycle_heroes # Refers to the script name of an icon
available = yes # Trigger that determines whether the doctrine can be selected
visible = yes # Trigger that determines whether the doctrine is shown in the list at all
reward_gfx = [GFX_NAME] # Optional - if set, will override the default reward icon strip. Frame 1 to X correspond to reward 1 to X, and X+1 to 2X should be the same but grayed out
xp_cost = 100
xp_type = army # army, navy or air
ai_will_do = { }
# ACTIVATION EFFECTS - SEE GRAND DOCTRINES DOCUMENTATION
rewards = {
{
mastery = 150 # Optional - if set, will overide NDefines::NDoctrines::DEFAULT_REWARD_MASTERY
# ACTIVATION EFFECTS - SEE GRAND DOCTRINES DOCUMENTATION
}
{
# ACTIVATION EFFECTS - SEE GRAND DOCTRINES DOCUMENTATION
}
{
# ACTIVATION EFFECTS - SEE GRAND DOCTRINES DOCUMENTATION
}
{
# ACTIVATION EFFECTS - SEE GRAND DOCTRINES DOCUMENTATION
}
}
mastery = { # This will override the default mastery conditions for the track
multiplier = 5.0 # Multiplies manpower contribution to mastery gain (in this case, 5 times less manpower is needed to gain the same amount of mastery)
sub_units = { # Which subunits contribute to mastery gain?
bicycle_battalion
}
categories = { # Which subunit categories constribute to mastery gain?
}
equipment = { # Subunits with this equipment category will contribute to mastery gain
}
}
}
```

View File

@@ -0,0 +1,523 @@
fast_battleship_primacy = {
track = capital_ships
name = SUBDOCTRINE_FAST_BATTLESHIP_PRIMACY
description = SUBDOCTRINE_FAST_BATTLESHIP_PRIMACY_DESC
icon = GFX_doctrine_fast_battleship_primacy_medium
xp_cost = 100
xp_type = navy
available = {
always = yes
}
ai_will_do = {
base = 1
modifier = {
factor = 75
OR = {
original_tag = ENG
original_tag = USA
original_tag = JAP
original_tag = ITA
original_tag = SOV
}
}
}
# EFFECTS
strike_force_movement_org_loss = -0.1
rewards = {
fast_squad = {
battleship = {
max_organisation = 5
naval_speed = 0.05
}
SH_battleship = {
max_organisation = 5
naval_speed = 0.05
}
heavy_cruiser = {
max_organisation = 5
naval_speed = 0.05
}
medium_cruiser = {
max_organisation = 5
naval_speed = 0.05
}
}
formation_training = {
modifier = {
positioning = 0.1
strike_force_movement_org_loss = -0.1
}
}
blue_water_logistics = { #TODO see if these make sense
battleship = {
max_organisation = 10
supply_consumption = -0.1
}
SH_battleship = {
max_organisation = 10
supply_consumption = -0.1
}
heavy_cruiser = {
max_organisation = 10
supply_consumption = -0.1
}
medium_cruiser = {
max_organisation = 10
supply_consumption = -0.1
}
}
grand_fleet = {
modifier = {
naval_coordination = 0.1
navy_capital_ship_defence_factor = 0.1
ships_at_battle_start = 0.1
}
}
decisive_battle = {
battleship = {
max_organisation = 10
surface_detection = 0.1
}
SH_battleship = {
max_organisation = 10
surface_detection = 0.1
}
heavy_cruiser = {
max_organisation = 10
surface_detection = 0.1
}
medium_cruiser = {
max_organisation = 10
surface_detection = 0.1
}
modifier = {
positioning = 0.1
}
}
}
}
battlecruiser_supremacy = {
track = capital_ships
name = SUBDOCTRINE_BATTLECRUISER_SUPREMACY
description = SUBDOCTRINE_BATTLECRUISER_SUPREMACY_DESC
icon = GFX_doctrine_battlecruiser_supremacy_medium
xp_cost = 100
xp_type = navy
available = {
always = yes
}
ai_will_do = {
base = 1
modifier = {
factor = 75
original_tag = FRA
}
}
# EFFECTS
navy_max_range_factor = 0.1
strike_force_movement_org_loss = -0.05
rewards = {
scouting_fleet = {
battleship = {
max_organisation = 10
}
battle_cruiser= {
max_organisation = 10
}
heavy_cruiser = {
max_organisation = 10
}
medium_cruiser = {
max_organisation = 10
}
}
coordinated_communication = {
battleship = {
naval_heavy_gun_hit_chance_factor = 0.05
}
battle_cruiser = {
surface_detection = 0.1
}
heavy_cruiser = {
surface_detection = 0.1
}
medium_cruiser = {
surface_detection = 0.1
}
}
assualt_operation = {
modifier = {
ships_at_battle_start = 0.1
naval_retreat_chance = 0.15
naval_retreat_speed = 0.1
}
}
ocean_raiding = {
battle_cruiser = {
convoy_raiding_coordination = 0.1
}
heavy_cruiser = {
convoy_raiding_coordination = 0.1
}
medium_cruiser = {
convoy_raiding_coordination = 0.1
}
modifier = {
night_spotting_chance = 0.05
strike_force_movement_org_loss = -0.05
}
}
decoy_tactics = {
battleship = {
max_organisation = 10
}
battle_cruiser = {
max_organisation = 5
surface_visibility = -0.05
}
heavy_cruiser = {
max_organisation = 5
surface_visibility = -0.05
}
medium_cruiser = {
max_organisation = 5
surface_visibility = -0.05
}
modifier = {
positioning = 0.1
}
}
}
}
armored_raiders = {
track = capital_ships
name = SUBDOCTRINE_ARMORED_RAIDERS
description = SUBDOCTRINE_ARMORED_RAIDERS_DESC
icon = GFX_doctrine_capital_ship_raiders_medium
xp_cost = 100
xp_type = navy
available = {
always = yes
}
ai_will_do = {
base = 1
modifier = {
factor = 50
original_tag = GER
}
}
# EFFECTS
screening_without_screens = 0.10
navy_max_range_factor = 0.05
rewards = {
expert_reconnaissance = {
battle_cruiser = {
surface_detection = 0.05
}
battleship = {
surface_detection = 0.05
}
heavy_cruiser = {
surface_detection = 0.05
}
medium_cruiser = {
surface_detection = 0.05
}
}
speed_trials = {
equipment_bonus = {
capital_ship = {
naval_range = 0.10
instant = yes
}
}
}
modernized_officer_education = {
battle_cruiser= {
max_organisation = 5
}
battleship = {
max_organisation = 5
}
heavy_cruiser = {
max_organisation = 5
}
medium_cruiser = {
max_organisation = 5
}
}
capital_raiders = {
battleship = {
max_organisation = 5
convoy_raiding_coordination = 0.15
surface_detection = 0.1
}
battle_cruiser = {
max_organisation = 5
convoy_raiding_coordination = 0.15
surface_detection = 0.1
}
heavy_cruiser = {
max_organisation = 5
convoy_raiding_coordination = 0.15
surface_detection = 0.1
}
medium_cruiser = {
max_organisation = 5
convoy_raiding_coordination = 0.15
surface_detection = 0.1
}
}
crisis_management = {
battleship = {
reliability = 0.1
}
battle_cruiser = {
reliability = 0.1
}
heavy_cruiser = {
reliability = 0.1
}
medium_cruiser = {
reliability = 0.1
}
modifier = {
navy_casualty_on_hit = -0.1
navy_casualty_on_sink = -0.1
}
}
}
}
coastal_defence_fleet = {
track = capital_ships
name = SUBDOCTRINE_COASTAL_DEFENCE
description = SUBDOCTRINE_COASTAL_DEFENCE_DESC
icon = GFX_doctrine_floating_fortress_medium
xp_cost = 50
xp_type = navy
ai_will_do = { }
naval_supply_consumption_factor = -0.15
navy_max_range_factor = -0.25
rewards = {
mixed_squad = {
modifier = {
positioning = 0.05
}
}
casemate_upgrades = {
equipment_bonus = {
vnr_ship_hull_cruiser_coastal_defense_ship = {
anti_air_attack = 0.1
lg_attack = 0.05
instant = yes
}
}
}
escort_duties = {
heavy_cruiser = {
max_organisation = 10
}
medium_cruiser = {
max_organisation = 10
}
modifier = {
convoy_escort_efficiency = 0.1
}
}
green_water_navy = {
heavy_cruiser = {
surface_visibility = -0.05
}
medium_cruiser = {
surface_visibility = -0.05
}
modifier = {
mines_planting_by_fleets_factor = 0.1
screening_without_screens = 0.05
}
}
spare_part_logistics = {
modifier = {
refit_ic_cost = -0.15
}
}
}
}
naval_gunfire_support = {
track = capital_ships
name = SUBDOCTRINE_NAVAL_GUNFIRE_SUPPORT
description = SUBDOCTRINE_NAVAL_GUNFIRE_SUPPORT_DESC
icon = GFX_doctrine_naval_gunfire_support_medium
xp_cost = 100
xp_type = navy
available = {
always = yes
}
ai_will_do = { }
shore_bombardment_bonus = 0.25
navy_capital_ship_attack_factor = -0.1
rewards = {
landing_lane_clearance = {
modifier = {
naval_mine_hit_chance = -0.10
mines_sweeping_by_fleets_factor = 0.10
}
}
inshore_aa_screen = {
modifier = {
navy_anti_air_attack_factor = 0.1
}
}
joint_operations = {
modifier = {
naval_invasion_planning_bonus_speed = 0.20
naval_general_support_value_factor = 0.10
}
}
floating_base = {
battleship = {
max_organisation = 5
}
battle_cruiser = {
max_organisation = 5
}
heavy_cruiser = {
max_organisation = 5
}
medium_cruiser = {
max_organisation = 5
}
modifier = {
convoy_escort_efficiency = 0.1
}
}
green_water_operations = {
battleship = {
surface_visibility = -0.10
}
battle_cruiser = {
surface_visibility = -0.10
}
heavy_cruiser = {
surface_visibility = -0.10
}
navy_capital_ship_defence_factor = -0.15
}
}
}
battleship_antiair_screen = {
track = capital_ships
name = SUBDOCTRINE_BATTLESHIP_ANTIAIR_SCREEN
description = SUBDOCTRINE_BATTLESHIP_ANTIAIR_SCREEN_DESC
icon = GFX_doctrine_battleship_antiair_screen_medium
xp_cost = 100
xp_type = navy
available = {
always = yes
}
visible = {
has_dlc = "No Compromise, No Surrender"
}
navy_anti_air_attack_factor = 0.1
rewards = {
guardian_squad = {
battleship = {
max_organisation = 5
anti_air_attack = 0.05
}
heavy_cruiser = {
max_organisation = 5
anti_air_attack = 0.05
}
medium_cruiser = {
max_organisation = 5
anti_air_attack = 0.05
}
}
flexible_dispatch = {
modifier = {
ships_at_battle_start = 0.05
strike_force_movement_org_loss = -0.1
positioning = 0.1
}
}
broad_air_cover = {
battleship = {
max_organisation = 5
surface_detection = 0.05
}
battle_cruiser = {
max_organisation = 5
surface_detection = 0.05
}
modifier = {
navy_capital_ship_defence_factor = 0.1
}
}
task_force_protector = {
modifier = {
positioning = 0.1
naval_torpedo_enemy_critical_chance_factor = -0.15
}
}
circle_formation = {
battleship = {
max_organisation = 10
anti_air_attack = 0.1
}
heavy_cruiser = {
max_organisation = 10
anti_air_attack = 0.1
}
medium_cruiser = {
max_organisation = 10
anti_air_attack = 0.1
}
}
}
}

View File

@@ -0,0 +1,300 @@
carrier_battlegroups = {
track = carriers
name = SUBDOCTRINE_CARRIER_BATTLEGROUPS
description = SUBDOCTRINE_CARRIER_BATTLEGROUPS_DESC
icon = GFX_doctrine_carrier_battlegroups_medium
xp_cost = 100
xp_type = navy
ai_will_do = {
base = 1
modifier = {
factor = 50
original_tag = USA
}
}
available = {
has_tech = aviation_dawn
}
ai_will_do = { }
# EFFECTS
port_strike = 0.20
strike_force_movement_org_loss = -0.1
rewards = {
long_distance_logistics = {
carrier = {
max_organisation = 10
}
modifier = {
navy_max_range_factor = 0.1
navy_fuel_consumption_factor = -0.05
}
}
bomber_scouting = {
carrier = {
carrier_surface_detection = 0.15
}
modifier = {
navy_carrier_air_agility_factor = 0.1
}
}
professional_deck_management = {
carrier = {
max_organisation = 15
}
modifier = {
sortie_efficiency = 0.1
}
}
fleet_antiair = {
carrier = {
max_organisation = 15
anti_air_attack = 0.15
}
modifier = {
sortie_efficiency = 0.1
}
}
alpha_strike = {
modifier = {
sortie_efficiency = 0.1
navy_carrier_air_targetting_factor = 0.1
carrier_capacity_penalty_reduction = -0.1
}
}
}
}
floating_airfields = {
track = carriers
name = SUBDOCTRINE_CARRIER_AIRFIELDS
description = SUBDOCTRINE_CARRIER_AIRFIELDS_DESC
icon = GFX_doctrine_floating_airfield_medium
xp_cost = 100
xp_type = navy
available = {
has_tech = aviation_dawn
}
ai_will_do = {
base = 1
modifier = {
factor = 25
OR = {
original_tag = ENG
original_tag = FRA
}
}
modifier = {
factor = 2
is_major = yes
}
modifier = {
factor = 0
is_major = no
}
}
# EFFECTS
navy_anti_air_attack_factor = 0.10
rewards = {
enclosed_hangar = {
carrier = {
max_organisation = 10
reliability = 0.1
}
}
fleet_antiair = {
carrier = {
max_organisation = 15
anti_air_attack = 0.15
}
}
reserved_fighters = {
fighter_sortie_efficiency = 0.15
}
dogfight_training = {
navy_carrier_air_agility_factor = 0.1
sortie_efficiency = 0.05
carrier = {
anti_air_attack = 0.05
}
}
rough_weather_procedures = {
sortie_efficiency = 0.1
equipment_bonus = {
carrier = {
naval_weather_penalty_factor = -0.15
}
}
}
}
}
subsidiary_carrier_support = {
track = carriers
name = SUBDOCTRINE_SUBSIDIARY_CARRIER_SUPPORT
description = SUBDOCTRINE_SUBSIDIARY_CARRIER_SUPPORT_DESC
icon = GFX_doctrine_escort_carriers_medium
xp_cost = 100
xp_type = navy
available = {
has_tech = early_ship_hull_carrier
}
convoy_escort_efficiency = 0.2
rewards = {
evasive_convoy_maneuvers = {
convoy_retreat_speed = 0.2
}
anti_submarine_escorts = {
carrier = {
carrier_sub_detection = 0.2
}
}
fleet_antiair = {
carrier = {
max_organisation = 15
anti_air_attack = 0.15
}
}
integrated_convoy_escorts = {
modifier = {
navy_carrier_air_targetting_factor = 0.05
convoy_escort_efficiency = 0.1
}
}
carrier_support_groups = {
modifier = {
fighter_sortie_efficiency = 0.15
}
}
}
}
carrier_concentration = {
track = carriers
name = SUBDOCTRINE_CARRIER_CONCENTRATION
description = SUBDOCTRINE_CARRIER_CONCENTRATION_DESC
icon = GFX_doctrine_carrier_primacy_medium
xp_cost = 100
xp_type = navy
ai_will_do = {
base = 1
modifier = {
factor = 50
original_tag = JAP
}
}
available = {
has_tech = aviation_dawn
}
sortie_efficiency = 0.1
strike_force_movement_org_loss = -0.05
rewards = {
deep_operative_support = {
carrier = {
reliability = 0.05
naval_range = 0.2
}
}
mobile_force = {
carrier = {
max_organisation = 15
}
modifier = {
navy_carrier_air_targetting_factor = 0.1
}
}
improved_mission_oriented = {
carrier = {
max_organisation = 10
anti_air_attack = 0.15
}
fighter_sortie_efficiency = 0.05
}
efficient_rearming = {
carrier = {
max_organisation = 5
supply_consumption = -0.15
fuel_consumption = -0.1
}
}
massed_air_raid = {
modifier = {
sortie_efficiency = 0.1
carrier_capacity_penalty_reduction = -0.1
navy_carrier_air_attack_factor = 0.1
}
}
}
}
naval_airfoce = {
track = carriers
name = SUBDOCTRINE_NAVAL_AIRFOCE
description = SUBDOCTRINE_NAVAL_AIRFOCE_DESC
icon = GFX_doctrine_naval_airforce_medium
xp_cost = 100
xp_type = navy
ai_will_do = {
base = 1
}
available = {
has_tech = early_ship_hull_carrier
}
naval_retreat_speed_after_initial_combat = 0.1
naval_strike_attack_factor = 0.05
rewards = {
direct_fire_avoidance = {
carrier = {
surface_visibility = -0.1
}
}
land_based_support = {
category_nav_bomber = {
air_range = 0.2
}
}
air_raiders = {
carrier = {
max_organisation = 10
}
modifier = {
sortie_efficiency = 0.05
navy_carrier_air_targetting_factor = 0.05
}
}
evasive_engagements_focus = {
carrier = {
max_organisation = 10
}
naval_enemy_fleet_size_ratio_penalty_factor = 0.1
}
airpower = {
naval_strike_attack_factor = 0.1
naval_strike_agility_factor = 0.1
}
}
}

View File

@@ -0,0 +1,320 @@
convoy_escort = {
track = screens
name = SUBDOCTRINE_SCREEN_CONVOY_ESCORT
description = SUBDOCTRINE_SCREEN_CONVOY_ESCORT_DESC
icon = GFX_doctrine_convoy_sailing_medium
xp_cost = 100
xp_type = navy
available = {
always = yes
}
ai_will_do = {
base = 1
modifier = {
factor = 95
original_tag = ENG
}
}
# EFFECTS
convoy_escort_efficiency = 0.10
convoy_retreat_speed = 0.10
rewards = {
anti_submarine_sweep_training = {
destroyer = {
sub_detection = 0.10
}
light_cruiser = {
sub_detection = 0.10
}
}
escort_reclassification = {
destroyer = {
max_organisation = 10
}
light_cruiser = {
max_organisation = 5
}
convoy_escort_efficiency = 0.05
}
sweeping_duty = {
mines_sweeping_by_fleets_factor = 0.15
}
creeping_attack = {
destroyer = {
sub_detection = 0.10
lg_attack = 0.05
}
light_cruiser = {
surface_detection = 0.1
}
}
as_below_so_above = {
destroyer = {
anti_air_attack = 0.15
}
light_cruiser = {
anti_air_attack = 0.15
}
convoy_escort_efficiency = 0.05
}
}
}
support_integrated_operations = {
track = screens
name = SUBDOCTRINE_SCREEN_INTEGRATED_OPERATIONS
description = SUBDOCTRINE_SCREEN_INTEGRATED_OPERATIONS_DESC
icon = GFX_doctrine_escort_patrols_medium
xp_cost = 100
xp_type = navy
available = {
always = yes
}
ai_will_do = {
base = 1
modifier = {
factor = 95
original_tag = USA
}
modifier = {
factor = 95
original_tag = ITA
}
}
# EFFECTS
screening_efficiency = 0.05
rewards = {
first_line_of_defense = {
destroyer = {
max_organisation = 5
anti_air_attack = 0.1
}
modifier = {
convoy_retreat_speed = 0.1
}
}
first_line_of_attack = {
light_cruiser = {
max_organisation = 10
surface_detection = 0.05
}
}
rescue_mission = {
modifier = {
navy_casualty_on_hit = -0.2
navy_casualty_on_sink = -0.35
}
}
fleet_coordination = {
light_cruiser = {
max_organisation = 5
sub_detection = 0.1
}
destroyer = {
max_organisation = 5
sub_detection = 0.1
}
screening_efficiency = 0.10
}
early_warning = {
destroyer = {
max_organisation = 5
anti_air_attack = 0.1
surface_detection = 0.10
}
light_cruiser = {
max_organisation = 5
anti_air_attack = 0.1
surface_detection = 0.10
}
}
}
}
hunter_killers = {
track = screens
name = SUBDOCTRINE_SCREEN_HUNTER_KILLERS
description = SUBDOCTRINE_SCREEN_HUNTER_KILLERS_DESC
icon = GFX_doctrine_hunter_killer_groups_medium
xp_cost = 100
xp_type = navy
available = {
}
ai_will_do = {
base = 1
modifier = {
factor = 95
OR = {
original_tag = FRA
original_tag = SOV
}
}
}
# EFFECTS
naval_coordination = 0.10
rewards = {
search_and_destroy = {
destroyer = {
sub_detection = 0.1
}
}
flotilla_leader = {
light_cruiser = {
sub_detection = 0.1
}
}
group_operations = {
destroyer = {
max_organisation = 5
sub_attack = 0.10
}
light_cruiser = {
max_organisation = 5
sub_attack = 0.1
}
}
convoy_escort = {
modifier = {
convoy_escort_efficiency = 0.1
convoy_retreat_speed = 0.1
}
}
light_force = {
light_cruiser = {
max_organisation = 5
sub_detection = 0.05
}
destroyer = {
max_organisation = 5
sub_detection = 0.05
}
modifier = {
naval_enemy_fleet_size_ratio_penalty_factor = 0.1
}
}
}
}
torpedo_primacy = {
track = screens
name = SUBDOCTRINE_SCREEN_TORPEDO_PRIMACY
description = SUBDOCTRINE_SCREEN_TORPEDO_PRIMACY_DESC
icon = GFX_doctrine_torpedo_groups_medium
xp_cost = 100
xp_type = navy
ai_will_do = {
base = 0
modifier = {
factor = 95
original_tag = JAP
}
}
available = {
always = yes
}
naval_torpedo_hit_chance_factor = 0.1
convoy_raiding_efficiency_factor = 0.05
rewards = {
modern_broadsides = {
destroyer = {
torpedo_attack = 0.2
}
}
coordinated_fire_patterns = {
destroyer = {
max_organisation = 10
}
}
dedicated_torpedo_task_forces = {
light_cruiser = {
max_organisation = 10
torpedo_attack = 0.2
}
}
torpedo_rearming = {
modifier = {
naval_torpedo_cooldown_factor = -0.25
}
}
night_combat_training = {
naval_night_attack = 0.1
night_spotting_chance = 0.1
heavy_cruiser = {
torpedo_attack = 0.1
}
}
}
}
jeune_ecole = {
track = screens
name = SUBDOCTRINE_SCREEN_JEUNE_ECOLE
description = SUBDOCTRINE_SCREEN_JEUNE_ECOLE_DESC
icon = GFX_doctrine_battlefleet_concentration_medium
xp_cost = 100
xp_type = navy
available = {
#TODO: special project
always = yes
}
convoy_raiding_efficiency_factor = 0.1
destroyer = {
torpedo_attack = 0.1
}
light_cruiser = {
torpedo_attack = 0.1
}
rewards = {
commerce_raiding_priority = {
light_cruiser = {
convoy_raiding_coordination = 0.05
max_organisation = 10
}
}
long_range_torpedo = {
modifier = {
naval_torpedo_screen_penetration_factor = 0.1
}
}
total_economic_warfare = {
destroyer = {
convoy_raiding_coordination = 0.05
max_organisation = 10
}
}
convoy_escort = {
modifier = {
convoy_escort_efficiency = 0.1
}
}
coastal_patrol = {
modifier = {
mines_planting_by_fleets_factor = 0.2
}
}
}
}

View File

@@ -0,0 +1,245 @@
wolfpacks = {
track = submarines
name = SUBDOCTRINE_SUBMARINE_WOLFPACKS
description = SUBDOCTRINE_SUBMARINE_WOLFPACKS_DESC
icon = GFX_doctrine_wolfpacks_medium
xp_cost = 100
xp_type = navy
available = {
always = yes
}
ai_will_do = {
base = 1
modifier = {
factor = 75
original_tag = GER
}
}
# EFFECTS
submarine = {
max_organisation = 10
torpedo_attack = 0.05
}
rewards = {
predictive_expertise = {
submarine = {
torpedo_attack = 0.05
naval_torpedo_hit_chance_factor = 0.05
}
modifier = {
naval_torpedo_reveal_chance_factor = -0.05
}
}
pack_search_patterns = {
submarine = {
surface_detection = 0.1
convoy_raiding_coordination = 0.1
}
}
improvisation = {
submarine = {
reliability = 0.1
max_organisation = 10
}
sub_retreat_speed = 0.1
}
rough_weather_procedure = {
equipment_bonus = {
ship_hull_submarine = {
naval_weather_penalty_factor = -0.15
}
}
}
wolfpack_coordination = {
submarine = {
max_organisation = 5
surface_detection = 0.1
convoy_raiding_coordination = 0.15
}
}
}
mastery = {
multiplier = 2
}
}
submarine_fleet_operations = {
track = submarines
name = SUBDOCTRINE_SUBMARINE_FLEET_OPERATIONS
description = SUBDOCTRINE_SUBMARINE_FLEET_OPERATIONS_DESC
icon = GFX_doctrine_submarine_operations_medium
xp_cost = 100
xp_type = navy
available = {
always = yes
}
ai_will_do = {
base = 1
modifier = {
factor = 25
original_tag = USA
}
modifier = {
factor = 25
original_tag = FRA
}
modifier = {
factor = 25
original_tag = ITA
}
modifier = {
factor = 25
original_tag = SOV
}
}
# EFFECTS
navy_submarine_attack_factor = 0.05
naval_torpedo_screen_penetration_factor = 0.05
rewards = {
long_range_patrol_schedule = {
submarine = {
naval_range = 0.1 #TODO: does this work?
}
}
sustained_operations = {
submarine = {
max_organisation = 10
convoy_raiding_coordination = 0.1
}
}
ambush_tactics = {
navy_submarine_attack_factor = 0.10
}
submarine_picket = {
submarine = {
surface_detection = 0.15
}
}
trade_interdiction = {
submarine = {
max_organisation = 5
convoy_raiding_coordination = 0.10
surface_detection = 0.1
}
}
}
mastery = {
multiplier = 2
}
}
capital_hunters = {
track = submarines
name = SUBDOCTRINE_SUBMARINE_CAPITAL_HUNTERS
description = SUBDOCTRINE_SUBMARINE_CAPITAL_HUNTERS_DESC
icon = GFX_doctrine_unrestricted_submarine_warfare_medium
xp_cost = 100
xp_type = navy
ai_will_do = {
base = 1
modifier = {
factor = 25
original_tag = JAP
}
}
available = {
always = yes
}
naval_torpedo_reveal_chance_factor = -0.1
rewards = {
fire_protocol_drills = {
submarine = {
naval_torpedo_hit_chance_factor = 0.1
}
}
battle_line_priority = {
naval_torpedo_screen_penetration_factor = 0.05
}
quick_reload_procedures = {
naval_torpedo_cooldown_factor = -0.125
}
battleship_chase = {
submarine = {
fuel_consumption = -0.1
naval_range = 0.1
}
}
escape_when_empty = {
modifier = {
sub_retreat_speed = 0.15
}
}
}
mastery = {
multiplier = 2
}
}
submarine_coastal_defense = {
track = submarines
name = SUBDOCTRINE_SUBMARINE_COASTAL_DEFENSE
description = SUBDOCTRINE_SUBMARINE_COASTAL_DEFENSE_DESC
icon = GFX_doctrine_undersea_blockade_medium
xp_cost = 100
xp_type = navy
available = {
has_tech = midget_submarines
}
submarine = {
supply_consumption = -0.02
}
rewards = {
optimized_compartments = {
equipment_bonus = {
vnr_ship_hull_midget_submarine = {
reliability = 0.1
instant = yes
}
}
}
patrol_vigilance = {
submarine = {
max_organisation = 5
surface_detection = 0.1
}
}
maneuever_fire = {
modifier = {
naval_torpedo_cooldown_factor = -0.125
}
}
locals_knowledge = {
submarine = {
max_organisation = 5
convoy_raiding_coordination = 0.05
}
}
high_explosive_torpedo = {
submarine = {
torpedo_attack = 0.1
}
}
}
mastery = {
multiplier = 2
}
}

View File

@@ -0,0 +1,36 @@
# Doctrine Tracks
Doctrine tracks are made available to the player after they have selected a *Grand Doctrine*. Each track represents the player with further customization of their doctrines, in the form of:
* A **Subdoctrine** at the root
* A series of **Rewards** derived from the subdoctrine that will gradually unlock automatically as you gain **Mastery**
* A **Milestone** derived from the grand doctrine activate once all of the rewards are unlocked
The track script itself is very small; it is the subdoctrine that defines which track it can be assigned to,
and the grand doctrine that defines which tracks it contains.
## Script Example
```
infantry = {
name = DOCTRINE_TRACK_INFANTRY # Bindable loc
background = GFX_NAME # Background image for the track
background_offset = 10 # Horizontal offset applied to the background image
frame = GFX_NAME # Frame image around the track
icon = GFX_NAME # Milestone icon for the track
icon_frame = GFX_NAME # Frame around the milestone icon
mastery = {
multiplier = 2.0 # Multiplies manpower contribution to mastery gain (in this case, 2 times less manpower is needed to gain the same amount of mastery)
sub_units = { # Which subunits contribute to mastery gain?
# Any specific subunits could go here, but probably best left for subdoctrine overrides
}
categories = { # Which subunit categories constribute to mastery gain?
category_all_infantry
category_cavalry
}
equipment = { # Subunits with this equipment category will contribute to mastery gain
screen
capital
}
}
}
```

View File

@@ -0,0 +1,51 @@
capital_ships = {
name = DOCTRINE_TRACK_CAPITAL_SHIPS
background = "GFX_fleet_in_being_bg"
icon = "GFX_doctrine_milestone_ships_naval"
icon_frame = "GFX_doctrine_decor_naval"
mastery = {
multiplier = 2.0 # TODO - balance this number
equipment = {
capital_ship
}
}
}
carriers = {
name = DOCTRINE_TRACK_CARRIERS
background = "GFX_base_strike_bg"
icon = "GFX_doctrine_milestone_carriers_naval"
icon_frame = "GFX_doctrine_decor_naval"
mastery = {
multiplier = 5.0 # TODO - balance this number
equipment = {
carrier
}
}
}
screens = {
name = DOCTRINE_TRACK_SCREENS
background = "GFX_screens_bg"
icon = "GFX_doctrine_milestone_screens_naval"
icon_frame = "GFX_doctrine_decor_naval"
mastery = {
multiplier = 1.0 # TODO - balance this number
equipment = {
screen_ship
}
}
}
submarines = {
name = DOCTRINE_TRACK_SUBMARINES
background = "GFX_trade_interdiction_bg"
icon = "GFX_doctrine_milestone_submarine_naval"
icon_frame = "GFX_doctrine_decor_naval"
mastery = {
multiplier = 3.0 # TODO - balance this number
equipment = {
submarine
}
}
}

843
src/common/ideas/navy_spirits.txt Executable file
View File

@@ -0,0 +1,843 @@
ideas = {
naval_academy_spirit = {
instilled_aggression_spirit = {
ledger = navy
available = { has_naval_academy = yes }
modifier = {
custom_modifier_tooltip = instilled_aggression_spirit_tt
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
calculated_restraint_spirit = {
ledger = navy
available = { has_naval_academy = yes }
modifier = {
custom_modifier_tooltip = calculated_restraint_spirit_tt
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
signals_training_spirit = {
ledger = navy
available = { has_naval_academy = yes }
modifier = {
custom_modifier_tooltip = signals_training_spirit_tt
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
fleet_in_being_academy_spirit = {
ledger = navy
available = {
AND = {
has_naval_academy = yes
has_doctrine = new_fleet_in_being
}
}
modifier = {
custom_modifier_tooltip = fleet_in_being_academy_spirit_tt
trait_ironside_xp_gain_factor = 0.2
trait_superior_tactician_xp_gain_factor = 0.2
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
modifier = {
factor = 2
has_doctrine = new_fleet_in_being
}
}
}
trade_interdiction_academy_spirit = {
ledger = navy
available = {
AND = {
has_naval_academy = yes
has_doctrine = new_convoy_raiding
}
}
modifier = {
custom_modifier_tooltip = trade_interdiction_academy_spirit_tt
trait_seawolf_xp_gain_factor = 0.2
trait_blockade_runner_xp_gain_factor = 0.2
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
modifier = {
factor = 2
has_doctrine = new_convoy_raiding
}
}
}
base_strike_academy_spirit = {
ledger = navy
available = {
AND = {
has_naval_academy = yes
has_doctrine = new_base_strike
}
}
modifier = {
custom_modifier_tooltip = base_strike_academy_spirit_tt
trait_air_controller_xp_gain_factor = 0.2
trait_fleet_protector_xp_gain_factor = 0.2
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
modifier = {
factor = 2
has_doctrine = new_base_strike
}
}
}
best_of_the_best_naval_academy_spirit = {
ledger = navy
available = { has_naval_academy = yes }
modifier = {
navy_leader_start_level = 2
navy_intel_to_others = -5.0
custom_modifier_tooltip = best_of_the_best_naval_academy_spirit_tt
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
ship_to_shore_navy_spirit = {
ledger = navy
visible = { has_dlc = "No Compromise, No Surrender" }
available = {
has_doctrine = naval_gunfire_support
}
modifier = {
trait_ironside_xp_gain_factor = 0.35
shore_bombardment_collateral_damage_factor = 0.50
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Compromise, No Surrender" }
}
modifier = {
factor = 2
has_doctrine = naval_gunfire_support
}
}
}
stay_at_your_posts_navy_spirit = {
ledger = navy
visible = { has_dlc = "No Compromise, No Surrender" }
available = {
}
modifier = {
trait_blockade_runner_xp_gain_factor = 0.35
naval_accidents_chance = -0.15
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Compromise, No Surrender" }
}
modifier = {
factor = 2
has_doctrine = screen_support_focus
}
}
}
etajima_naval_academy = {
ledger = navy
visible = { original_tag = JAP }
modifier = {
navy_leader_start_level = 1
trait_air_controller_xp_gain_factor = 0.15
trait_superior_tactician_xp_gain_factor = 0.15
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
annapolis_naval_academy = {
ledger = navy
visible = { original_tag = USA }
modifier = {
trait_blue_water_expert_xp_gain_factor = 0.15
trait_air_controller_xp_gain_factor = 0.25
trait_fleet_protector_xp_gain_factor = 0.25
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
dartmouth_naval_academy = {
ledger = navy
visible = { original_tag = ENG }
modifier = {
navy_leader_start_level = 2
trait_air_controller_xp_gain_factor = 0.1
trait_ironside_xp_gain_factor = 0.1
trait_superior_tactician_xp_gain_factor = 0.3
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
murwik_naval_academy = {
ledger = navy
visible = { original_tag = GER }
modifier = {
navy_leader_start_level = 1
trait_ironside_xp_gain_factor = 0.15
trait_seawolf_xp_gain_factor = 0.15
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
voroshilov_naval_academy = {
ledger = navy
visible = {
OR = {
original_tag = SOV
original_tag = RUS
}
has_global_flag = vnr_enabled
has_government = communism
}
cancel = {
NOT = { has_government = communism }
}
modifier = {
trait_arctic_water_expert_xp_gain_factor = 0.25
modifier_army_sub_unit_marine_attack_factor = 0.05
modifier_army_sub_unit_marine_defence_factor = 0.05
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
nakhimov_naval_academy = {
ledger = navy
visible = {
OR = {
original_tag = SOV
original_tag = RUS
}
OR = {
NOT = { has_global_flag = vnr_enabled }
NOT = { has_government = communism }
}
}
modifier = {
trait_arctic_water_expert_xp_gain_factor = 0.25
modifier_army_sub_unit_marine_attack_factor = 0.05
modifier_army_sub_unit_marine_defence_factor = 0.05
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
usn_fighter_weapons_school = {
ledger = navy
visible = {
original_tag = USA
has_tech = super_carriers
}
modifier = {
fighter_sortie_efficiency = 0.15
navy_anti_air_attack_factor = 0.15
air_ace_generation_chance_factor = 0.25
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
}
navy_spirit = {
jeune_ecole_spirit = {
ledger = navy
available = {
has_doctrine = jeune_ecole
}
research_bonus = {
dd_tech = 0.20
}
modifier = {
ship_hull_light_design_cost_factor = -0.4
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
modifier = {
factor = 2
OR = {
has_doctrine = jeune_ecole
has_doctrine = patrol_boats
}
}
}
}
flexible_contracts_spirit = {
ledger = navy
modifier = {
naval_manufacturer_cost_factor = -0.4
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
modifier = {
factor = 2
OR = {
has_doctrine = coastal_defence_fleet
has_doctrine = screen_support_focus
}
}
}
}
integrated_designers_spirit = {
ledger = navy
available = { has_doctrine = new_convoy_raiding }
visible = { has_dlc = "Man the Guns" }
research_bonus = {
ship_modules_tech = 0.20
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
modifier = {
factor = 2
OR = {
has_doctrine = anti_aircraft_cruisers
has_doctrine = battlecruiser_supremacy
has_doctrine = escort_carrier_support
}
}
}
}
naval_reform_spirit = {
ledger = navy
available = { has_doctrine = new_base_strike }
modifier = {
experience_gain_navy_factor = 0.15
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
modifier = {
factor = 2
OR = {
has_doctrine = submarine_fleet_operations
has_doctrine = massed_carrier_fleet
has_doctrine = hunter_killers
}
}
}
}
naval_refit_yards_spirit = {
ledger = navy
modifier = {
refit_speed = 0.15
repair_speed_factor = 0.15
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
modifier = {
factor = 2
OR = {
has_doctrine = naval_gunfire_support
has_doctrine = broad_naval_support
has_doctrine = screen_support_focus
}
}
}
}
panama_standard = {
ledger = navy
visible = { original_tag = USA }
research_bonus = {
bb_tech = 0.05
bc_tech = 0.05
}
modifier = {
ship_hull_heavy_design_cost_factor = 0.5
}
ai_will_do = {
factor = 0
}
}
kiel_standard = {
ledger = navy
visible = { original_tag = GER }
equipment_bonus = {
ship_hull_heavy = {
instant = yes
build_cost_ic = 0.1
}
ship_hull_cruiser = {
instant = yes
build_cost_ic = 0.1
}
}
modifier = {
ship_hull_heavy_design_cost_factor = 0.4
navy_capital_ship_defence_factor = 0.05
}
ai_will_do = {
factor = 0
}
}
professional_damage_control = {
ledger = navy
modifier = {
critical_receive_chance = -0.1
naval_critical_effect_factor = -0.15
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
advancing_base = {
ledger = navy
modifier = {
production_speed_naval_base_factor = 0.2
navy_fuel_consumption_factor = -0.1
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
advanced_supply_fleet = {
ledger = navy
available = {
has_navy_size = {
archetype = ship_hull_civilian
size > 30
}
}
modifier = {
navy_fuel_consumption_factor = -0.15
navy_max_range_factor = 0.1
floating_harbor_supply = 0.4
floating_harbor_range = 0.4
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
disciplined_crewmen = {
ledger = navy
modifier = {
navy_org_factor = 0.05
naval_morale_factor = 0.1
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
lack_maintenance_facilities = {
ledger = navy
available = {
custom_trigger_tooltip = {
tooltip = recovering_from_naval_race_tt
NOT = { has_global_flag = vnr_enabled }
}
}
modifier = {
repair_speed_factor = -0.25
naval_morale_factor = -0.25
}
ai_will_do = {
factor = 0
}
}
}
naval_command_spirit = {
close_combat_navy_spirit = {
ledger = navy
modifier = {
critical_receive_chance = 0.05
naval_torpedo_screen_penetration_factor = 0.1
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
night_fighting_spirit = {
ledger = navy
available = {
has_doctrine = torpedo_primacy
}
modifier = {
night_spotting_chance = 0.1
naval_night_attack = 0.1
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
modifier = {
factor = 2
OR = {
has_doctrine = wolfpacks
has_doctrine = torpedo_primacy
has_doctrine = floating_airfields
}
}
}
}
surprise_attacks_spirit = {
ledger = navy
available = {
}
modifier = {
naval_retreat_speed_after_initial_combat = 0.1
naval_retreat_chance_after_initial_combat = 0.1
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
modifier = {
factor = 2
OR = {
has_doctrine = wolfpacks
has_doctrine = battlecruiser_supremacy
has_doctrine = massed_carrier_fleet
}
}
}
}
efficient_communications_spirit = {
ledger = navy
available = {
}
modifier = {
naval_coordination = 0.1
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
surface_raiders_spirit = {
ledger = navy
available = {
has_doctrine = armored_raiders
}
modifier = {
screening_without_screens = 0.1
convoy_raiding_efficiency_factor = 0.05
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
decisive_battle_spirit = {
ledger = navy
available = { has_doctrine = new_fleet_in_being }
modifier = {
naval_retreat_chance = -0.1
naval_retreat_speed = -0.1
naval_torpedo_hit_chance_factor = 0.1
naval_hit_chance = 0.1
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
inclimate_weather_experience_spirit = {
ledger = navy
modifier = {
navy_weather_penalty = -0.15
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
brave_commanders_spirit = {
ledger = navy
available = {
}
modifier = {
naval_critical_score_chance_factor = 0.05
critical_receive_chance = 0.05
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
modifier = {
factor = 2
OR = {
has_doctrine = line_of_battle
has_doctrine = capital_hunters
has_doctrine = convoy_escort
}
}
}
}
bureau_of_ordnance_spirit = {
ledger = navy
visible = { tag = USA }
modifier = {
naval_torpedo_hit_chance_factor = -0.1
}
ai_will_do = {
factor = 0
}
}
naval_tripwire_navy_spirit = {
ledger = navy
visible = { has_dlc = "No Compromise, No Surrender" }
available = {
OR = {
has_doctrine = new_convoy_raiding
has_doctrine = coastal_defence_fleet
}
}
modifier = {
naval_enemy_fleet_size_ratio_penalty_factor = 0.10
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Compromise, No Surrender" }
}
modifier = {
factor = 2
has_doctrine = coastal_defence_fleet
}
}
}
underwater_death = {
ledger = navy
modifier = {
navy_submarine_attack_factor = 0.1
navy_submarine_defence_factor = 0.05
sub_retreat_speed = 0.05
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
efficient_escort = {
ledger = navy
modifier = {
screening_efficiency = 0.1
convoy_escort_efficiency = 0.1
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
merchant_fleet = {
ledger = navy
available = {
has_equipment = { convoy > 199 }
}
modifier = {
convoy_retreat_speed = 0.3
trade_opinion_factor = 0.3
local_resources_factor = 0.05
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
inflexible_headquarter = {
ledger = navy
modifier = {
political_power_factor = 0.05
navy_advisor_cost_factor = 0.25
navy_leader_cost_factor = 0.25
navy_intel_to_others = 20
experience_gain_navy_factor = -0.15
}
ai_will_do = {
factor = 0
}
}
win_or_die = {
ledger = navy
available = {
has_war = yes
enemies_naval_strength_ratio > 2
}
modifier = {
naval_damage_factor = 0.25
naval_defense_factor = -0.25
critical_receive_chance = 0.33
}
ai_will_do = {
factor = 0
}
}
recovering_from_naval_race = { # saved for KR/KX
ledger = navy
available = {
custom_trigger_tooltip = {
tooltip = recovering_from_naval_race_tt
NOT = {
has_global_flag = vnr_enabled
has_country_flag = recovered_from_naval_race
}
}
}
allowed_to_remove = {
always = no
}
modifier = {
ship_hull_carrier_design_cost_factor = 0.2
ship_hull_heavy_design_cost_factor = 0.2
production_speed_dockyard_factor = -0.25
}
}
}
}

View File

@@ -1,355 +0,0 @@
ideas = {
naval_academy_spirit = {
etajima_naval_academy = {
ledger = navy
visible = { original_tag = JAP }
modifier = {
navy_leader_start_level = 1
trait_air_controller_xp_gain_factor = 0.15
trait_superior_tactician_xp_gain_factor = 0.15
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
annapolis_naval_academy = {
ledger = navy
visible = { original_tag = USA }
modifier = {
trait_blue_water_expert_xp_gain_factor = 0.15
trait_air_controller_xp_gain_factor = 0.25
trait_fleet_protector_xp_gain_factor = 0.25
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
dartmouth_naval_academy = {
ledger = navy
visible = { original_tag = ENG }
modifier = {
navy_leader_start_level = 2
trait_air_controller_xp_gain_factor = 0.1
trait_ironside_xp_gain_factor = 0.1
trait_superior_tactician_xp_gain_factor = 0.3
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
murwik_naval_academy = {
ledger = navy
visible = { original_tag = GER }
modifier = {
navy_leader_start_level = 1
trait_ironside_xp_gain_factor = 0.15
trait_seawolf_xp_gain_factor = 0.15
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
voroshilov_naval_academy = {
ledger = navy
visible = {
OR = {
original_tag = SOV
original_tag = RUS
}
has_global_flag = vnr_enabled
has_government = communism
}
cancel = {
NOT = { has_government = communism }
}
modifier = {
trait_arctic_water_expert_xp_gain_factor = 0.25
modifier_army_sub_unit_marine_attack_factor = 0.05
modifier_army_sub_unit_marine_defence_factor = 0.05
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
nakhimov_naval_academy = {
ledger = navy
visible = {
OR = {
original_tag = SOV
original_tag = RUS
}
OR = {
NOT = { has_global_flag = vnr_enabled }
NOT = { has_government = communism }
}
}
modifier = {
trait_arctic_water_expert_xp_gain_factor = 0.25
modifier_army_sub_unit_marine_attack_factor = 0.05
modifier_army_sub_unit_marine_defence_factor = 0.05
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
usn_fighter_weapons_school = {
ledger = navy
visible = {
original_tag = USA
has_tech = super_carriers
}
modifier = {
fighter_sortie_efficiency = 0.15
navy_anti_air_attack_factor = 0.15
air_ace_generation_chance_factor = 0.25
}
ai_will_do = {
factor = 1.5
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
}
navy_spirit = {
panama_standard = {
ledger = navy
visible = { original_tag = USA }
research_bonus = {
bb_tech = 0.05
bc_tech = 0.05
}
modifier = {
ship_hull_heavy_design_cost_factor = 0.5
}
ai_will_do = {
factor = 0
}
}
kiel_standard = {
ledger = navy
visible = { original_tag = GER }
equipment_bonus = {
ship_hull_heavy = {
instant = yes
build_cost_ic = 0.1
}
ship_hull_cruiser = {
instant = yes
build_cost_ic = 0.1
}
}
modifier = {
ship_hull_heavy_design_cost_factor = 0.4
navy_capital_ship_defence_factor = 0.05
}
ai_will_do = {
factor = 0
}
}
professional_damage_control = {
ledger = navy
modifier = {
critical_receive_chance = -0.1
naval_critical_effect_factor = -0.15
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
advancing_base = {
ledger = navy
modifier = {
production_speed_naval_base_factor = 0.2
navy_fuel_consumption_factor = -0.1
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
advanced_supply_fleet = {
ledger = navy
available = {
has_navy_size = {
archetype = ship_hull_civilian
size > 30
}
}
modifier = {
navy_fuel_consumption_factor = -0.15
navy_max_range_factor = 0.1
floating_harbor_supply = 0.4
floating_harbor_range = 0.4
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
disciplined_crewmen = {
ledger = navy
modifier = {
navy_org_factor = 0.05
naval_morale_factor = 0.1
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
lack_maintenance_facilities = {
ledger = navy
available = {
custom_trigger_tooltip = {
tooltip = recovering_from_naval_race_tt
NOT = { has_global_flag = vnr_enabled }
}
}
modifier = {
repair_speed_factor = -0.25
naval_morale_factor = -0.25
}
ai_will_do = {
factor = 0
}
}
}
naval_command_spirit = {
underwater_death = {
ledger = navy
modifier = {
navy_submarine_attack_factor = 0.1
navy_submarine_defence_factor = 0.05
sub_retreat_speed = 0.05
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
efficient_escort = {
ledger = navy
modifier = {
screening_efficiency = 0.1
convoy_escort_efficiency = 0.1
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
merchant_fleet = {
ledger = navy
available = {
has_equipment = { convoy > 199 }
}
modifier = {
convoy_retreat_speed = 0.3
trade_opinion_factor = 0.3
local_resources_factor = 0.05
}
ai_will_do = {
factor = 1
modifier = {
factor = 0
NOT = { has_dlc = "No Step Back" }
}
}
}
inflexible_headquarter = {
ledger = navy
modifier = {
political_power_factor = 0.05
navy_advisor_cost_factor = 0.25
navy_leader_cost_factor = 0.25
navy_intel_to_others = 20
experience_gain_navy_factor = -0.15
}
ai_will_do = {
factor = 0
}
}
win_or_die = {
ledger = navy
available = {
has_war = yes
enemies_naval_strength_ratio > 2
}
modifier = {
naval_damage_factor = 0.25
naval_defense_factor = -0.25
critical_receive_chance = 0.33
}
ai_will_do = {
factor = 0
}
}
recovering_from_naval_race = { # saved for KR/KX
ledger = navy
available = {
custom_trigger_tooltip = {
tooltip = recovering_from_naval_race_tt
NOT = {
has_global_flag = vnr_enabled
has_country_flag = recovered_from_naval_race
}
}
}
allowed_to_remove = {
always = no
}
modifier = {
ship_hull_carrier_design_cost_factor = 0.2
ship_hull_heavy_design_cost_factor = 0.2
production_speed_dockyard_factor = -0.25
}
}
}
}

View File

@@ -5,6 +5,7 @@ night = { # On province. Multiplied by amount of darkness.
sub_retreat_speed = 0.35
naval_retreat_chance = 0.15
air_attack_factor = -0.50
naval_strike = -0.90
naval_light_gun_hit_chance_factor = -0.5
naval_heavy_gun_hit_chance_factor = -0.25
naval_torpedo_hit_chance_factor = 0.15
@@ -32,7 +33,26 @@ carrier_experience_malus_min = {
navy_org_factor = -0.1
}
screening_bonus = {
naval_retreat_speed = 0.2
convoy_retreat_speed = 0.2
naval_hit_chance = 0.15
}
capital_screening_bonus = {
naval_retreat_speed = 0.2
navy_anti_air_attack_factor = 0.15
}
# This is scaled based on support ratio
naval_general_support = {
navy_max_range_factor = 0.2
navy_fuel_consumption_factor = -0.1
}
# This is scaled based on support ratio
naval_repair_support = {
naval_critical_effect_factor = -0.25
naval_ship_recovery_chance = 0.1
naval_attrition = -0.075
}

View File

@@ -971,7 +971,7 @@ GER_start_naval_variants = {
name = "Type 23级" # Type 23 Class
parent_version = 0
show_position = no
role_icon_index = 29
role_icon_index = 71
icon = "gfx/interface/technologies/Germany/GER_destroyer_1924.png"
type = vnr_ship_hull_light_2
name_group = GER_DD_HISTORICAL
@@ -992,7 +992,7 @@ GER_start_naval_variants = {
name = "Type 24级" # Type 24 Class
parent_version = 0
show_position = no
role_icon_index = 29
role_icon_index = 71
icon = "gfx/interface/technologies/Germany/GER_destroyer_1924.png"
type = vnr_ship_hull_light_2
name_group = GER_DD_HISTORICAL

View File

@@ -515,9 +515,21 @@ makeup_starting_techs = {
set_technology = {
dry_dock = 1
heavy_crane = 1
repair_ship = 1
hospital_ship = 1
popup = no
}
if = {
limit = { has_dlc = "No Compromise, No Surrender" }
set_technology = {
support_fleet_ncns = 1
popup = no
}
}
else = {
set_technology = {
support_fleet = 1
popup = no
}
}
}
}

View File

@@ -32,3 +32,66 @@ special_project_workaround = {
complete_special_project = sp:sp_naval_super_heavy_battleship
}
}
ai_doctrine_workaround = {
ENG = {
if = {
limit = { is_ai = yes }
set_sub_doctrine = fast_battleship_primacy
set_sub_doctrine = floating_airfields
set_sub_doctrine = hunter_killers
set_sub_doctrine = submarine_fleet_operations
}
}
USA = {
if = {
limit = { is_ai = yes }
set_sub_doctrine = battleship_antiair_screen
set_sub_doctrine = carrier_battlegroups
set_sub_doctrine = support_integrated_operations
set_sub_doctrine = submarine_fleet_operations
}
}
JAP = {
if = {
limit = { is_ai = yes }
set_sub_doctrine = fast_battleship_primacy
set_sub_doctrine = carrier_concentration
set_sub_doctrine = torpedo_primacy
set_sub_doctrine = capital_hunters
}
}
GER = {
if = {
limit = { is_ai = yes }
set_sub_doctrine = armored_raiders
set_sub_doctrine = jeune_ecole
set_sub_doctrine = wolfpacks
}
}
FRA = {
if = {
limit = { is_ai = yes }
set_sub_doctrine = battlecruiser_primacy
set_sub_doctrine = subsidiary_carrier_support
set_sub_doctrine = jeune_ecole
set_sub_doctrine = capital_hunters
}
}
ITA = {
if = {
limit = { is_ai = yes }
set_sub_doctrine = fast_battleship_primacy
set_sub_doctrine = convoy_escort
set_sub_doctrine = capital_hunters
}
}
SOV = {
if = {
limit = { is_ai = yes }
set_sub_doctrine = armored_raiders
set_sub_doctrine = jeune_ecole
set_sub_doctrine = submarine_coastal_defense
}
}
}

View File

@@ -1178,7 +1178,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -1237,7 +1237,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -1298,7 +1298,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -1350,7 +1350,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -1405,7 +1405,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -1450,7 +1450,7 @@ technologies = {
folder = {
name = mtgnavalfolder
position = { x = 0 y = @1948 }
position = { x = -1 y = @1948 }
}
ai_will_do = {
@@ -1465,7 +1465,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -1500,7 +1500,7 @@ technologies = {
categories = {
naval_equipment
radar_tech
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
electronics
@@ -1541,7 +1541,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -1571,7 +1571,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -1599,7 +1599,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -1626,7 +1626,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
electronics
@@ -1653,7 +1653,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
electronics
@@ -1764,7 +1764,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
ship_modules_tech
mio_cat_tech_all_cruiser_and_modules
@@ -1810,7 +1810,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
ship_modules_tech
mio_cat_tech_all_cruiser_and_modules
@@ -1852,7 +1852,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
ship_modules_tech
mio_cat_tech_all_cruiser_and_modules
@@ -1908,7 +1908,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
ship_modules_tech
mio_cat_tech_all_cruiser_and_modules
@@ -1964,7 +1964,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
ship_modules_tech
mio_cat_tech_all_cruiser_and_modules
@@ -2020,7 +2020,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
ship_modules_tech
mio_cat_tech_all_cruiser_and_modules
@@ -2049,7 +2049,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
}
}
@@ -2099,7 +2099,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -2148,7 +2148,7 @@ technologies = {
##! special_project_specialization = { specialization_naval }
##! categories = {
##! naval_equipment
##! cl_tech
##!
##! ca_tech
##! mio_cat_tech_all_cruiser_and_modules
##! }
@@ -2185,7 +2185,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -2223,7 +2223,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
ship_modules_tech
mio_cat_tech_all_cruiser_and_modules
@@ -2253,7 +2253,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
ship_modules_tech
mio_cat_tech_all_screen_ship_and_modules
@@ -2292,7 +2292,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
mio_cat_tech_all_cruiser_and_modules
}
@@ -2306,7 +2306,7 @@ technologies = {
folder = {
name = mtgnavalfolder
position = { x = 1 y = 20 }
position = { x = -4 y = @1944_module }
}
ai_will_do = {
@@ -2316,7 +2316,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
}
}
@@ -2337,7 +2337,7 @@ technologies = {
folder = {
name = mtgnavalfolder
position = { x = -2 y = 21 }
position = { x = 1 y = 22 }
}
ai_will_do = {
@@ -2352,7 +2352,7 @@ technologies = {
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
cl_tech
ca_tech
ship_modules_tech
mio_cat_tech_all_cruiser_and_modules
@@ -2380,7 +2380,7 @@ technologies = {
folder = {
name = mtgnavalfolder
position = { x = 2 y = 22 }
position = { x = -2 y = @1944_module }
}
ai_will_do = {
@@ -4635,18 +4635,17 @@ technologies = {
on_research_complete = {
custom_effect_tooltip = cv_tech_1_tt
}
research_cost = 1.25
research_cost = 1.5
start_year = 1939
xp_research_type = navy
xp_boost_cost = 10
xp_research_type = air
xp_boost_cost = 50
xp_research_bonus = 1.25
cv_cas = {
naval_strike_attack = 0.2
naval_strike_targetting = 0.15
air_agility = 0.15
maximum_speed = 0.1
}
folder = {
@@ -4665,10 +4664,6 @@ technologies = {
}
}
dependencies = {
armor_piercing_bombs = 1
}
special_project_specialization = { specialization_naval specialization_air }
categories = {
naval_equipment
@@ -6290,113 +6285,6 @@ technologies = {
}
}
naval_radio_guiding_system = {
dependencies = {
radio_detection = 1
improved_computing_machine = 1
}
path = {
leads_to_tech = ship_to_ship_missile
research_cost_coeff = 1
}
start_year = 1943
research_cost = 1
folder = {
name = mtgnavalfolder
position = { x = 0 y = 0 }
}
enable_equipment_modules = {
vlf_receiver
}
naval_coordination = 0.05
ai_will_do = {
factor = 1
modifier = {
factor = 7
has_navy_size = { size > 100 }
}
}
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
electronics
radar_tech
}
}
ship_to_ship_missile = {
on_research_complete = {
custom_effect_tooltip = ca_tech_8_tt
}
research_cost = 1.5
start_year = 1945
is_special_project_tech = yes
allow = {
ROOT = {
is_special_project_completed = sp:sp_rockets_ballistic_missile
}
}
folder = {
name = mtgnavalfolder
position = { x = 0 y = 4 }
}
path = {
leads_to_tech = advanced_missile_system
research_cost_coeff = 1
}
ai_will_do = {
factor = 2
}
enable_equipment_modules = {
ship_missile_1
ship_cruise_missile_1
ship_missile_aa_1
}
special_project_specialization = { specialization_naval }
categories = {
rocketry
naval_equipment
ship_modules_tech
}
}
advanced_missile_system = {
on_research_complete = {
custom_effect_tooltip = ca_tech_9_tt
}
research_cost = 2
start_year = 1949
folder = {
name = mtgnavalfolder
position = { x = 0 y = 6 }
}
ai_will_do = {
factor = 2
}
enable_equipment_modules = {
ship_missile_2
ship_missile_aa_2
}
special_project_specialization = { specialization_naval }
categories = {
rocketry
naval_equipment
ship_modules_tech
}
}
obsolete_vanilla_hulls = {
enable_equipments = {
ship_hull_light_1

View File

@@ -18,6 +18,7 @@ technologies = {
research_cost_coeff = 1
}
on_research_complete = {
custom_effect_tooltip = bb_tech_3_tt
custom_effect_tooltip = light_battery_advice_tt
custom_effect_tooltip = medium_battery_advice_tt
custom_effect_tooltip = heavy_battery_advice_tt
@@ -87,6 +88,7 @@ technologies = {
research_cost_coeff = 1
}
on_research_complete = {
custom_effect_tooltip = bb_tech_3_tt
custom_effect_tooltip = light_battery_advice_tt
custom_effect_tooltip = medium_battery_advice_tt
custom_effect_tooltip = heavy_battery_advice_tt
@@ -167,6 +169,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = ca_tech_6_tt
custom_effect_tooltip = light_battery_advice_tt
}
@@ -291,6 +294,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = ca_tech_6_tt
custom_effect_tooltip = light_battery_advice_tt
}
@@ -411,6 +415,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = dd_tech_11_tt
custom_effect_tooltip = light_battery_advice_tt
}
@@ -450,6 +455,7 @@ technologies = {
on_research_complete = {
custom_effect_tooltip = ca_tech_6_tt
custom_effect_tooltip = medium_battery_advice_tt
custom_effect_tooltip = secondary_battery_advice_tt
}
@@ -556,6 +562,7 @@ technologies = {
on_research_complete = {
custom_effect_tooltip = ca_tech_6_tt
custom_effect_tooltip = medium_battery_advice_tt
}
enable_equipment_modules = {
@@ -663,6 +670,7 @@ technologies = {
ship_secondaries_4
}
on_research_complete = {
custom_effect_tooltip = ca_tech_12_tt
custom_effect_tooltip = medium_battery_advice_tt
}
@@ -715,6 +723,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = bb_tech_3_tt
custom_effect_tooltip = heavy_battery_advice_tt
}
@@ -764,6 +773,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = bb_tech_3_tt
custom_effect_tooltip = heavy_battery_advice_tt
}
@@ -808,6 +818,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = bb_tech_11_tt
custom_effect_tooltip = heavy_battery_advice_tt
}
@@ -975,6 +986,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = dd_tech_10_tt
custom_effect_tooltip = secondary_battery_advice_tt
}
@@ -1018,6 +1030,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = dd_tech_10_tt
custom_effect_tooltip = secondary_battery_advice_tt
}
@@ -1066,6 +1079,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = dd_tech_11_tt
custom_effect_tooltip = secondary_battery_advice_tt
}
@@ -1111,6 +1125,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = ca_tech_12_tt
custom_effect_tooltip = secondary_battery_advice_tt
}
@@ -1170,6 +1185,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = bb_tech_8_tt
custom_effect_tooltip = heavy_battery_advice_tt
}
@@ -1215,6 +1231,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = bb_tech_8_tt
custom_effect_tooltip = heavy_battery_advice_tt
}
@@ -1252,6 +1269,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = bb_tech_8_tt
custom_effect_tooltip = heavy_battery_advice_tt
}
@@ -1331,6 +1349,10 @@ technologies = {
naval_light_gun_hit_chance_factor = 0.05
}
on_research_complete = {
custom_effect_tooltip = dd_tech_12_tt
}
dependencies = {
advanced_fire_control_system = 1
radio = 1
@@ -1371,6 +1393,7 @@ technologies = {
start_year = 1949
on_research_complete = {
custom_effect_tooltip = dd_tech_12_tt
custom_effect_tooltip = light_battery_advice_tt
}
@@ -1406,6 +1429,113 @@ technologies = {
}
}
naval_radio_guiding_system = {
dependencies = {
radio_detection = 1
improved_computing_machine = 1
}
path = {
leads_to_tech = ship_to_ship_missile
research_cost_coeff = 1
}
start_year = 1943
research_cost = 1
folder = {
name = mtgnavalsupportfolder
position = { x = 0 y = 0 }
}
enable_equipment_modules = {
vlf_receiver
}
naval_coordination = 0.05
ai_will_do = {
factor = 1
modifier = {
factor = 7
has_navy_size = { size > 100 }
}
}
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
electronics
radar_tech
}
}
ship_to_ship_missile = {
on_research_complete = {
custom_effect_tooltip = ca_tech_8_tt
}
research_cost = 1.5
start_year = 1945
is_special_project_tech = yes
allow = {
ROOT = {
is_special_project_completed = sp:sp_rockets_ballistic_missile
}
}
folder = {
name = mtgnavalsupportfolder
position = { x = 0 y = 3 }
}
path = {
leads_to_tech = advanced_missile_system
research_cost_coeff = 1
}
ai_will_do = {
factor = 2
}
enable_equipment_modules = {
ship_missile_1
ship_cruise_missile_1
ship_missile_aa_1
}
special_project_specialization = { specialization_naval }
categories = {
rocketry
naval_equipment
ship_modules_tech
}
}
advanced_missile_system = {
on_research_complete = {
custom_effect_tooltip = ca_tech_9_tt
}
research_cost = 2
start_year = 1949
folder = {
name = mtgnavalsupportfolder
position = { x = 0 y = 6 }
}
ai_will_do = {
factor = 2
}
enable_equipment_modules = {
ship_missile_2
ship_missile_aa_2
}
special_project_specialization = { specialization_naval }
categories = {
rocketry
naval_equipment
ship_modules_tech
}
}
### ## ### ### ### ### ## # # ## ### ## ### ### ###
# # # # # # # # # # # # # # # # # # # # # # # #
# # # ### ### ## # # # # # # # #### ### #### ## ### ##
@@ -1438,6 +1568,7 @@ technologies = {
naval_torpedo_screen_penetration_factor = 0.05
on_research_complete = {
custom_effect_tooltip = dd_tech_6_tt
custom_effect_tooltip = torpedo_advice_tt
}
@@ -1882,6 +2013,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = dd_tech_6_tt
custom_effect_tooltip = torpedo_advice_tt
}
@@ -1926,6 +2058,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = dd_tech_6_tt
custom_effect_tooltip = torpedo_advice_tt
}
@@ -1972,6 +2105,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = dd_tech_6_tt
custom_effect_tooltip = torpedo_advice_tt
}
@@ -2013,6 +2147,7 @@ technologies = {
}
on_research_complete = {
custom_effect_tooltip = dd_tech_6_tt
custom_effect_tooltip = torpedo_advice_tt
}
@@ -2736,8 +2871,10 @@ technologies = {
mtg_transport = { #WHEN BALANCING - ALSO FIX REGULAR NAVAL TREE
transport_capacity = -0.2
naval_invasion_capacity = 10
transport_capacity = -0.33
naval_invasion_prep_days = -10
naval_invasion_division_cap = 2
naval_invasion_plan_cap = 1
path = {
leads_to_tech = mtg_landing_craft
@@ -2804,9 +2941,12 @@ technologies = {
mtg_landing_craft = {
invasion_preparation = -0.5
#invasion_preparation = -0.25
amphibious_invasion_defence = 0.15
naval_invasion_capacity = 40
naval_invasion_prep_days = -10
naval_invasion_division_cap = 4
naval_invasion_plan_cap = 3
#naval_invasion_capacity = 20
path = {
leads_to_tech = mtg_tank_landing_craft
@@ -2885,7 +3025,10 @@ technologies = {
amphibious_invasion = 0.25
amphibious_invasion_defence = 0.5
naval_invasion_capacity = 100
naval_invasion_prep_days = -10
naval_invasion_division_cap = 5
naval_invasion_plan_cap = 4
#naval_invasion_capacity = 100
research_cost = 1.5
start_year = 1944
@@ -2948,7 +3091,11 @@ technologies = {
research_cost_coeff = 1
}
path = {
leads_to_tech = repair_ship
leads_to_tech = support_fleet
research_cost_coeff = 1
}
path = {
leads_to_tech = support_fleet_ncns
research_cost_coeff = 1
}
path = {
@@ -3288,13 +3435,16 @@ technologies = {
logistics_tech
}
}
repair_ship = {
support_fleet = {
research_cost = 0.3
start_year = 1920
ai_will_do = {
factor = 0.25
}
allow_branch = {
NOT = { has_dlc = "No Compromise, No Surrender" }
}
path = {
leads_to_tech = floating_dry_dock
research_cost_coeff = 1
@@ -3382,6 +3532,115 @@ technologies = {
logistics_tech
}
}
support_fleet_ncns = {
research_cost = 0.3
start_year = 1920
force_use_small_tech_layout = yes
show_equipment_icon = yes
ai_will_do = {
factor = 0.25
}
allow_branch = {
has_dlc = "No Compromise, No Surrender"
}
path = {
leads_to_tech = floating_dry_dock_ncns
research_cost_coeff = 1
}
folder = {
name = mtgnavalsupportfolder
position = { x = 8 y = 6 }
}
repair_speed_factor = 0.05
naval_accidents_chance = -0.05
heavy_cruiser = {
reliability = 0.1
}
medium_cruiser = {
reliability = 0.1
}
light_cruiser = {
reliability = 0.1
}
enable_equipments = {
support_ship_1
repair_ship_1
}
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
}
}
floating_dry_dock_ncns = {
research_cost = 0.5
start_year = 1936
ai_will_do = {
factor = 0.25
}
path = {
leads_to_tech = logistic_system_redundancy_ncns
research_cost_coeff = 1
}
folder = {
name = mtgnavalsupportfolder
position = { x = 8 y = 10 }
}
repair_speed_factor = 0.1
naval_accidents_chance = -0.05
battleship = {
reliability = 0.1
}
battle_cruiser = {
reliability = 0.1
}
SH_battleship = {
reliability = 0.1
}
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
industry
}
}
logistic_system_redundancy_ncns = {
research_cost = 0.8
start_year = 1942
force_use_small_tech_layout = yes
show_equipment_icon = yes
ai_will_do = {
factor = 0.25
}
folder = {
name = mtgnavalsupportfolder
position = { x = 8 y = 16 }
}
auxiliary_ship = {
build_cost_ic = -0.1
}
destroyer = {
reliability = 0.1
}
submarine = {
reliability = 0.1
}
enable_equipments = {
support_ship_2
repair_ship_2
}
special_project_specialization = { specialization_naval }
categories = {
naval_equipment
logistics_tech
}
}
hospital_ship = {
research_cost = 0.35
start_year = 1918

File diff suppressed because it is too large Load Diff

View File

@@ -16,6 +16,7 @@ categories = {
is_water = yes
sound_type = sea
naval_mine_hit_chance = -0.75
minimum_seazone_dominance = 257.58 #It's, uh. Well it makes sense in math. If there's time I'll add a util function so that these numbers are game-representative.
}
lakes = {
@@ -292,6 +293,7 @@ categories = {
navy_visibility = -0.2
positioning = -0.15
minimum_seazone_dominance = 128.79
}
water_shallow_sea = {
@@ -306,6 +308,7 @@ categories = {
}
positioning = -0.05
naval_mine_hit_chance = -0.5
minimum_seazone_dominance = 128.79
}
water_deep_ocean = {
@@ -337,6 +340,7 @@ categories = {
}
naval_mine_hit_chance = -0.95
minimum_seazone_dominance = 257.58
}
}

View File

@@ -4,83 +4,46 @@ leader_skills = {
1 = {
cost = 200
type = navy
modifier = {
navy_org = 1
naval_morale_factor = 0.025
}
}
2 = {
cost = 400
type = navy
modifier = {
navy_org = 3
naval_morale_factor = 0.05
}
}
3 = {
cost = 800
type = navy
modifier = {
navy_org = 5
naval_morale_factor = 0.075
}
}
4 = {
cost = 1600
type = navy
modifier = {
navy_org = 7
naval_morale_factor = 0.1
}
}
5 = {
cost = 3200
type = navy
modifier = {
navy_org = 9
naval_morale_factor = 0.125
}
}
6 = {
cost = 6400
type = navy
modifier = {
navy_org = 11
naval_morale_factor = 0.15
}
}
7 = {
cost = 12800
type = navy
modifier = {
navy_org = 13
naval_morale_factor = 0.175
}
}
8 = {
cost = 25600
type = navy
modifier = {
navy_org = 15
naval_morale_factor = 0.2
}
}
9 = {
cost = 51200
type = navy
modifier = {
navy_org = 15
naval_morale_factor = 0.2
naval_hit_chance = 0.05
}
}
}
@@ -95,6 +58,9 @@ leader_attack_skills = {
naval_damage_factor = 0.025
naval_critical_score_chance_factor = 0.01
}
building_module_modifier = {
ships_at_battle_start = 0.01
}
}
2 = {
@@ -104,6 +70,9 @@ leader_attack_skills = {
naval_damage_factor = 0.05
naval_critical_score_chance_factor = 0.02
}
building_module_modifier = {
ships_at_battle_start = 0.02
}
}
3 = {
@@ -113,6 +82,9 @@ leader_attack_skills = {
naval_damage_factor = 0.075
naval_critical_score_chance_factor = 0.03
}
building_module_modifier = {
ships_at_battle_start = 0.03
}
}
4 = {
@@ -122,6 +94,9 @@ leader_attack_skills = {
naval_damage_factor = 0.1
naval_critical_score_chance_factor = 0.04
}
building_module_modifier = {
ships_at_battle_start = 0.04
}
}
5 = {
@@ -131,6 +106,9 @@ leader_attack_skills = {
naval_damage_factor = 0.125
naval_critical_score_chance_factor = 0.05
}
building_module_modifier = {
ships_at_battle_start = 0.05
}
}
6 = {
@@ -140,6 +118,9 @@ leader_attack_skills = {
naval_damage_factor = 0.15
naval_critical_score_chance_factor = 0.06
}
building_module_modifier = {
ships_at_battle_start = 0.06
}
}
7 = {
@@ -149,6 +130,9 @@ leader_attack_skills = {
naval_damage_factor = 0.175
naval_critical_score_chance_factor = 0.07
}
building_module_modifier = {
ships_at_battle_start = 0.07
}
}
8 = {
@@ -167,6 +151,9 @@ leader_attack_skills = {
naval_damage_factor = 0.225
naval_critical_score_chance_factor = 0.09
}
building_module_modifier = {
ships_at_battle_start = 0.09
}
}
10 = {
@@ -176,6 +163,9 @@ leader_attack_skills = {
naval_damage_factor = 0.25
naval_critical_score_chance_factor = 0.1
}
building_module_modifier = {
ships_at_battle_start = 0.1
}
}
}
@@ -189,6 +179,9 @@ leader_defense_skills = {
modifier = {
critical_receive_chance = -0.025
}
building_module_modifier = {
screening_efficiency = 0.01
}
}
2 = {
@@ -197,6 +190,9 @@ leader_defense_skills = {
modifier = {
critical_receive_chance = -0.05
}
building_module_modifier = {
screening_efficiency = 0.02
}
}
3 = {
@@ -205,6 +201,9 @@ leader_defense_skills = {
modifier = {
critical_receive_chance = -0.075
}
building_module_modifier = {
screening_efficiency = 0.03
}
}
4 = {
@@ -213,6 +212,9 @@ leader_defense_skills = {
modifier = {
critical_receive_chance = -0.1
}
building_module_modifier = {
screening_efficiency = 0.04
}
}
5 = {
@@ -221,6 +223,9 @@ leader_defense_skills = {
modifier = {
critical_receive_chance = -0.125
}
building_module_modifier = {
screening_efficiency = 0.05
}
}
6 = {
@@ -229,6 +234,9 @@ leader_defense_skills = {
modifier = {
critical_receive_chance = -0.15
}
building_module_modifier = {
screening_efficiency = 0.06
}
}
7 = {
@@ -237,6 +245,9 @@ leader_defense_skills = {
modifier = {
critical_receive_chance = -0.175
}
building_module_modifier = {
screening_efficiency = 0.07
}
}
8 = {
@@ -245,6 +256,9 @@ leader_defense_skills = {
modifier = {
critical_receive_chance = -0.2
}
building_module_modifier = {
screening_efficiency = 0.08
}
}
9 = {
@@ -253,6 +267,9 @@ leader_defense_skills = {
modifier = {
critical_receive_chance = -0.225
}
building_module_modifier = {
screening_efficiency = 0.09
}
}
10 = {
@@ -261,6 +278,9 @@ leader_defense_skills = {
modifier = {
critical_receive_chance = -0.25
}
building_module_modifier = {
screening_efficiency = 0.1
}
}
}
@@ -274,6 +294,9 @@ leader_coordination_skills = {
modifier = {
naval_coordination = 0.01
}
building_module_modifier = {
navy_fuel_consumption_factor = -0.02
}
}
2 = {
@@ -282,6 +305,9 @@ leader_coordination_skills = {
modifier = {
naval_coordination = 0.03
}
building_module_modifier = {
navy_fuel_consumption_factor = -0.04
}
}
3 = {
@@ -290,6 +316,9 @@ leader_coordination_skills = {
modifier = {
naval_coordination = 0.05
}
building_module_modifier = {
navy_fuel_consumption_factor = -0.06
}
}
4 = {
@@ -298,6 +327,9 @@ leader_coordination_skills = {
modifier = {
naval_coordination = 0.07
}
building_module_modifier = {
navy_fuel_consumption_factor = -0.08
}
}
5 = {
@@ -306,6 +338,9 @@ leader_coordination_skills = {
modifier = {
naval_coordination = 0.09
}
building_module_modifier = {
navy_fuel_consumption_factor = -0.1
}
}
6 = {
@@ -314,6 +349,9 @@ leader_coordination_skills = {
modifier = {
naval_coordination = 0.12
}
building_module_modifier = {
navy_fuel_consumption_factor = -0.12
}
}
7 = {
@@ -322,6 +360,9 @@ leader_coordination_skills = {
modifier = {
naval_coordination = 0.14
}
building_module_modifier = {
navy_fuel_consumption_factor = -0.14
}
}
8 = {
@@ -330,6 +371,9 @@ leader_coordination_skills = {
modifier = {
naval_coordination = 0.16
}
building_module_modifier = {
navy_fuel_consumption_factor = -0.16
}
}
9 = {
@@ -338,6 +382,9 @@ leader_coordination_skills = {
modifier = {
naval_coordination = 0.18
}
building_module_modifier = {
navy_fuel_consumption_factor = -0.18
}
}
10 = {
@@ -346,6 +393,9 @@ leader_coordination_skills = {
modifier = {
naval_coordination = 0.2
}
building_module_modifier = {
navy_fuel_consumption_factor = -0.2
}
}
}
@@ -360,6 +410,10 @@ leader_maneuvering_skills = {
positioning = 0.025
naval_retreat_speed = 0.01
}
building_module_modifier = {
naval_retreat_chance = 0.01
naval_retreat_speed = 0.01
}
}
2 = {
@@ -369,6 +423,10 @@ leader_maneuvering_skills = {
positioning = 0.05
naval_retreat_speed = 0.02
}
building_module_modifier = {
naval_retreat_chance = 0.02
naval_retreat_speed = 0.02
}
}
3 = {
@@ -378,6 +436,10 @@ leader_maneuvering_skills = {
positioning = 0.075
naval_retreat_speed = 0.03
}
building_module_modifier = {
naval_retreat_chance = 0.03
naval_retreat_speed = 0.03
}
}
4 = {
@@ -387,6 +449,10 @@ leader_maneuvering_skills = {
positioning = 0.1
naval_retreat_speed = 0.04
}
building_module_modifier = {
naval_retreat_chance = 0.04
naval_retreat_speed = 0.04
}
}
5 = {
@@ -396,6 +462,10 @@ leader_maneuvering_skills = {
positioning = 0.125
naval_retreat_speed = 0.05
}
building_module_modifier = {
naval_retreat_chance = 0.05
naval_retreat_speed = 0.05
}
}
6 = {
@@ -405,6 +475,10 @@ leader_maneuvering_skills = {
positioning = 0.15
naval_retreat_speed = 0.06
}
building_module_modifier = {
naval_retreat_chance = 0.06
naval_retreat_speed = 0.06
}
}
7 = {
@@ -414,6 +488,10 @@ leader_maneuvering_skills = {
positioning = 0.175
naval_retreat_speed = 0.07
}
building_module_modifier = {
naval_retreat_chance = 0.07
naval_retreat_speed = 0.07
}
}
8 = {
@@ -423,6 +501,10 @@ leader_maneuvering_skills = {
positioning = 0.2
naval_retreat_speed = 0.08
}
building_module_modifier = {
naval_retreat_chance = 0.08
naval_retreat_speed = 0.08
}
}
9 = {
@@ -432,6 +514,10 @@ leader_maneuvering_skills = {
positioning = 0.225
naval_retreat_speed = 0.09
}
building_module_modifier = {
naval_retreat_chance = 0.09
naval_retreat_speed = 0.09
}
}
10 = {
@@ -441,5 +527,9 @@ leader_maneuvering_skills = {
positioning = 0.25
naval_retreat_speed = 0.10
}
building_module_modifier = {
naval_retreat_chance = 0.1
naval_retreat_speed = 0.1
}
}
}

View File

@@ -2,7 +2,7 @@ sub_units = {
auxiliary_ship = {
sprite = auxiliary_ship
map_icon_category = ship
priority = 1
priority = 2
active = yes
type = { capital_ship }
need_equipment = { ship_hull_civilian = 1 }

View File

@@ -2,7 +2,7 @@ sub_units = {
battlecarrier = {
sprite = battlecarrier
map_icon_category = ship
priority = 9
priority = 8
active = yes
type = { carrier }
need_equipment = { ship_hull_heavy = 1 }

View File

@@ -2,7 +2,7 @@ sub_units = {
behemoth = {
sprite = behemoth
map_icon_category = ship
priority = 11
priority = 13
active = yes
type = { capital_ship carrier }
need_equipment = { ship_hull_heavy = 1 }

View File

@@ -2,7 +2,7 @@ sub_units = {
medium_cruiser = {
sprite = medium_cruiser
map_icon_category = ship
priority = 5
priority = 6
active = yes
type = { screen_ship }
need = { ship_hull_cruiser = 1 }

View File

@@ -2,7 +2,7 @@ sub_units = {
SH_battleship = {
sprite = SH_battleship
map_icon_category = ship
priority = 10
priority = 11
active = yes
type = { capital_ship }
need_equipment = { ship_hull_heavy = 1 }

View File

@@ -2,7 +2,7 @@ sub_units = {
battle_cruiser = {
sprite = battle_cruiser
map_icon_category = ship
priority = 8
priority = 9
active = yes
type = { capital_ship }
need_equipment = { ship_hull_heavy = 1 }

View File

@@ -2,7 +2,7 @@ sub_units = {
battleship = {
sprite = battleship
map_icon_category = ship
priority = 9
priority = 10
active = yes
type = { capital_ship }
need_equipment = { ship_hull_heavy = 1 }

View File

@@ -2,7 +2,7 @@ sub_units = {
carrier = {
sprite = carrier
map_icon_category = ship
priority = 11
priority = 12
active = yes
type = {
#capital_ship

View File

@@ -2,7 +2,7 @@ sub_units = {
destroyer = {
sprite = destroyer
map_icon_category = ship
priority = 3
priority = 4
active = yes
type = { screen_ship }
need = { ship_hull_light = 1 }

View File

@@ -19,7 +19,7 @@ equipment_modules = {
anti_air_attack = 2
reliability = -0.1
max_organisation = -0.2
surface_detection = 5
carrier_surface_detection = 5
supply_consumption = 0.02
}
manpower = 300 #outside the add_stats section for code reasons
@@ -43,7 +43,7 @@ equipment_modules = {
build_cost_ic = 1300
max_strength = 40
anti_air_attack = 2.5
surface_detection = 4
carrier_surface_detection = 4
supply_consumption = 0.015
}
manpower = 200 #outside the add_stats section for code reasons
@@ -67,7 +67,7 @@ equipment_modules = {
add_stats = {
carrier_size = 2
build_cost_ic = 1000
surface_detection = 4
carrier_surface_detection = 4
max_strength = 30
anti_air_attack = 1.5
supply_consumption = 0.015
@@ -92,7 +92,7 @@ equipment_modules = {
add_stats = {
carrier_size = 1
build_cost_ic = 700
surface_detection = 2
carrier_surface_detection = 2
max_strength = 20
anti_air_attack = 0.5
supply_consumption = 0.01
@@ -114,7 +114,7 @@ equipment_modules = {
carrier_size = 3
build_cost_ic = 2000
max_organisation = -0.05
surface_detection = 5
carrier_surface_detection = 5
reliability = -0.05
max_strength = 55
anti_air_attack = 3
@@ -139,7 +139,7 @@ equipment_modules = {
build_cost_ic = 1000
reliability = -0.1
max_organisation = -0.1
surface_detection = 2
carrier_surface_detection = 2
supply_consumption = 0.015
}
manpower = 125
@@ -161,7 +161,7 @@ equipment_modules = {
add_stats = {
carrier_size = 2
build_cost_ic = 2000
surface_detection = 8
carrier_surface_detection = 8
max_strength = 80
reliability = -0.1
anti_air_attack = 3
@@ -184,7 +184,7 @@ equipment_modules = {
add_stats = {
carrier_size = 2
build_cost_ic = 2000
surface_detection = 4
carrier_surface_detection = 4
max_strength = 30
reliability = -0.025
anti_air_attack = 1.5

View File

@@ -42,11 +42,11 @@ equipment_modules = {
parent = ship_radar_1
multiply_stats = {
anti_air_attack = 0.05
sub_detection = 0.025
}
add_stats = {
build_cost_ic = 130
surface_detection = 7
sub_detection = 2
}
can_convert_from = {
@@ -61,10 +61,10 @@ equipment_modules = {
parent = ship_radar_2
multiply_stats = {
anti_air_attack = 0.075
sub_detection = 0.05
}
add_stats = {
surface_detection = 12
sub_detection = 4
build_cost_ic = 160
}
can_convert_from = {
@@ -83,11 +83,11 @@ equipment_modules = {
parent = ship_radar_3
multiply_stats = {
anti_air_attack = 0.1
sub_detection = 0.075
}
add_stats = {
build_cost_ic = 190
surface_detection = 18
sub_detection = 6
}
can_convert_from = {
module = ship_radar_3
@@ -104,11 +104,11 @@ equipment_modules = {
parent = ship_radar_4
multiply_stats = {
anti_air_attack = 0.2
sub_detection = 0.1
}
add_stats = {
build_cost_ic = 600
surface_detection = 30
sub_detection = 12
}
can_convert_from = {
module_category = ship_radar

View File

@@ -711,7 +711,7 @@ equipment_modules = {
sfx = sfx_ui_sd_module_sonar
parent = ship_sonar_1
add_stats = {
sub_detection = 12
sub_detection = 10
build_cost_ic = 60
}
can_convert_from = {
@@ -726,7 +726,7 @@ equipment_modules = {
sfx = sfx_ui_sd_module_sonar
parent = ship_sonar_2
add_stats = {
sub_detection = 20
sub_detection = 15
build_cost_ic = 80
}
can_convert_from = {
@@ -740,7 +740,7 @@ equipment_modules = {
sfx = sfx_ui_sd_module_sonar
parent = ship_sonar_3
add_stats = {
sub_detection = 26
sub_detection = 20
build_cost_ic = 150
}
can_convert_from = {
@@ -752,9 +752,9 @@ equipment_modules = {
category = light_miscellaneous
gui_category = ship_miscellaneous
multiply_stats = {
sub_detection = 0.15
sub_detection = 0.1
naval_speed = 0.05
build_cost_ic = 0.2
build_cost_ic = 0.15
}
add_stats = {
reliability = -0.15
@@ -763,11 +763,14 @@ equipment_modules = {
sub_bow_sonar = {
category = submarine_miscellaneous
add_stats = {
sub_detection = 13
sub_detection = 10
surface_detection = 5
reliability = -0.05
build_cost_ic = 150
}
multiply_stats = {
sub_visibility = 0.1
}
dismantle_cost_ic = 600
}
@@ -834,7 +837,7 @@ equipment_modules = {
add_stats = {
surface_detection = 2.5
sub_detection = 2
sub_detection = 0.5
sub_attack = 1.5
build_cost_ic = 150
}
@@ -850,7 +853,7 @@ equipment_modules = {
parent = ship_airplane_launcher_1
add_stats = {
surface_detection = 4
sub_detection = 3.5
sub_detection = 1.5
sub_attack = 2.5
build_cost_ic = 250
}
@@ -898,7 +901,7 @@ equipment_modules = {
fuel_consumption = 0.05
}
add_stats = {
build_cost_ic = 500
build_cost_ic = 800
reliability = -0.05
}
manpower = 100

View File

@@ -23,6 +23,7 @@ equipments = {
can_be_produced = {
has_dlc = "No Step Back"
}
naval_dominance_factor = 0
}
ocean_liner = {
year = 1910
@@ -31,5 +32,6 @@ equipments = {
active = no
priority = 1
naval_dominance_factor = 0
}
}

View File

@@ -0,0 +1,106 @@
equipments = {
repair_ship_hull = {
year = 1936
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_buildable = no
type = support_ship
interface_category = interface_category_other_ships
#alias = support_ship
priority = 2000
max_dockyard_factories = 5
lg_armor_piercing = 0
lg_attack = 0
hg_armor_piercing = 0
hg_attack = 0
torpedo_attack = 0
sub_attack = 0
anti_air_attack = 0
armor_value = 0
surface_detection = 3
sub_detection = 0
surface_visibility = 20
naval_speed = 18
reliability = 0.80
naval_range = 3000
max_strength = 25
fuel_consumption = 8
build_cost_ic = 500
resources = {
steel = 2
}
manpower = 300
naval_dominance_factor = 0
}
repair_ship_1 = {
abbreviation = "ZZZ"
year = 1936
archetype = repair_ship_hull
priority = 2000
model = repair_ship
modifier_stat = {
modifier = naval_repair_support
value = 100
type = naval_support
}
module_slots = inherit
naval_dominance_factor = 0
}
repair_ship_2 = {
abbreviation = "ZZZ"
year = 1936
parent = repair_ship_1
archetype = repair_ship_hull
priority = 2000
model = repair_ship
modifier_stat = {
modifier = naval_repair_support
value = 150
type = naval_support
}
module_slots = inherit
max_strength = 40
naval_range = 4000
naval_speed = 20
build_cost_ic = 650
manpower = 350
naval_dominance_factor = 0
}
}

View File

@@ -135,7 +135,7 @@ equipments = {
manpower = 3000
naval_supremacy_factor = 3.2
naval_dominance_factor = 300
naval_weather_penalty_factor = 1 #this value gets -1 before its used so 1.5 will increase the effects of weather penalties by 0.5. this is base value is required for MIO stat modifiers
#MIO stat modifers will factory by the unmodified stat value so here a 0.5 mio stat modifier would make this ships naval_weather_penalty_factor stat 1.5.
# change this from 1 at your own risk
@@ -185,6 +185,7 @@ equipments = {
steel = 1
}
manpower = 1300
naval_dominance_factor = 150
}
vnr_ship_hull_carrier_conversion_bb = {
@@ -263,6 +264,7 @@ equipments = {
steel = 1
}
manpower = 3500
naval_dominance_factor = 230
}
vnr_ship_hull_carrier_1 = {
@@ -338,6 +340,7 @@ equipments = {
fixed_ship_engine_slot = carrier_ship_engine_2
fixed_ship_role_slot = ship_hull_carrier_role_cv
}
naval_dominance_factor = 200
}
vnr_ship_hull_carrier_2 = {
@@ -424,6 +427,7 @@ equipments = {
steel = 2
}
manpower = 3100
naval_dominance_factor = 250
}
vnr_ship_hull_carrier_3 = {
@@ -528,6 +532,7 @@ equipments = {
steel = 2
}
manpower = 3500
naval_dominance_factor = 300
}
vnr_ship_hull_escort_carrier = {
@@ -596,6 +601,7 @@ equipments = {
module = carrier_secondary_island
count < 1
}
naval_dominance_factor = 100
}
vnr_ship_hull_merchant_carrier = {
@@ -658,6 +664,7 @@ equipments = {
module = carrier_secondary_island
count < 1
}
naval_dominance_factor = 20
}
vnr_ship_hull_super_carrier = {
@@ -752,7 +759,7 @@ equipments = {
naval_range = 6000
reliability = 1.2
max_strength = 150
naval_speed = 29
naval_speed = 30.5
surface_visibility = 30
module_count_limit = {
@@ -765,6 +772,7 @@ equipments = {
steel = 2
}
manpower = 5000
naval_dominance_factor = 350
}
vnr_ship_hull_mega_carrier = {
@@ -867,6 +875,7 @@ equipments = {
steel = 2
}
manpower = 6500
naval_dominance_factor = 300
}
}

View File

@@ -101,7 +101,7 @@ equipments = {
}
manpower = 600
naval_supremacy_factor = 0.2
naval_dominance_factor = 1
naval_weather_penalty_factor = 1 #this value gets -1 before its used so 1.5 will increase the effects of weather penalties by 0.5. this is base value is required for MIO stat modifiers
#MIO stat modifers will factory by the unmodified stat value so here a 0.5 mio stat modifier would make this ships naval_weather_penalty_factor stat 1.5.
# change this from 1 at your own risk
@@ -115,6 +115,7 @@ equipments = {
can_convert_from = { vnr_ship_hull_civilian_1 }
module_slots = inherit
naval_dominance_factor = 1
}
vnr_ship_hull_civilian_2 = {
@@ -167,6 +168,7 @@ equipments = {
resources = {
steel = 1
}
naval_dominance_factor = 3
}
vnr_ship_hull_civilian_3 = {
@@ -200,5 +202,6 @@ equipments = {
resources = {
steel = 1
}
naval_dominance_factor = 3
}
}

View File

@@ -260,7 +260,7 @@ equipments = {
manpower = 800
naval_supremacy_factor = 2
naval_dominance_factor = 80
naval_weather_penalty_factor = 1 #this value gets -1 before its used so 1.5 will increase the effects of weather penalties by 0.5. this is base value is required for MIO stat modifiers
#MIO stat modifers will factory by the unmodified stat value so here a 0.5 mio stat modifier would make this ships naval_weather_penalty_factor stat 1.5.
# change this from 1 at your own risk
@@ -440,6 +440,7 @@ equipments = {
module = ship_heavy_battery_4_triple
count < 1
}
naval_dominance_factor = 30
}
vnr_ship_hull_cruiser_panzerschiff = {
@@ -584,6 +585,7 @@ equipments = {
module = ship_heavy_battery_4_triple
count < 1
}
naval_dominance_factor = 100
}
vnr_ship_hull_cruiser_1 = {
@@ -751,6 +753,7 @@ equipments = {
fuel_consumption = 18
build_cost_ic = 1300
naval_dominance_factor = 80
}
vnr_ship_hull_cruiser_2 = {
@@ -771,6 +774,7 @@ equipments = {
default_modules = {
fixed_ship_engine_slot = cruiser_ship_engine_2
}
naval_dominance_factor = 100
}
vnr_ship_hull_cruiser_3 = {
@@ -797,6 +801,7 @@ equipments = {
default_modules = {
fixed_ship_engine_slot = cruiser_ship_engine_3
}
naval_dominance_factor = 110
}
vnr_ship_hull_cruiser_4 = {
@@ -823,6 +828,7 @@ equipments = {
default_modules = {
fixed_ship_engine_slot = cruiser_ship_engine_4
}
naval_dominance_factor = 120
}
vnr_ship_hull_cruiser_5 = {
@@ -943,6 +949,7 @@ equipments = {
default_modules = {
fixed_ship_engine_slot = cruiser_ship_engine_5
}
naval_dominance_factor = 130
}
vnr_ship_hull_cruiser_6 = {
derived_variant_name = cruiser_equipment_6
@@ -1089,6 +1096,7 @@ equipments = {
default_modules = {
fixed_ship_engine_slot = cruiser_ship_engine_5
}
naval_dominance_factor = 140
}
vnr_ship_hull_torpedo_cruiser = {
@@ -1220,5 +1228,6 @@ equipments = {
}
manpower = 800
naval_dominance_factor = 80
}
}

View File

@@ -206,7 +206,7 @@ equipments = {
manpower = 2000
naval_supremacy_factor = 2.6
naval_dominance_factor = 300
naval_weather_penalty_factor = 1 #this value gets -1 before its used so 1.5 will increase the effects of weather penalties by 0.5. this is base value is required for MIO stat modifiers
#MIO stat modifers will factory by the unmodified stat value so here a 0.5 mio stat modifier would make this ships naval_weather_penalty_factor stat 1.5.
# change this from 1 at your own risk
@@ -311,6 +311,7 @@ equipments = {
}
manpower = 1500
naval_dominance_factor = 250
}
@@ -449,6 +450,7 @@ equipments = {
fuel_consumption = 63
surface_visibility = 38
build_cost_ic = 2000
naval_dominance_factor = 300
}
vnr_ship_hull_heavy_2 = {
@@ -485,6 +487,7 @@ equipments = {
surface_visibility = 37
build_cost_ic = 2300
manpower = 2200
naval_dominance_factor = 310
}
vnr_ship_hull_heavy_3 = {
@@ -514,6 +517,7 @@ equipments = {
build_cost_ic = 2500
manpower = 2500
naval_dominance_factor = 320
}
vnr_ship_hull_heavy_4 = {
@@ -546,6 +550,7 @@ equipments = {
}
manpower = 2800
naval_dominance_factor = 330
}
vnr_ship_hull_heavy_5 = {
@@ -649,7 +654,7 @@ equipments = {
naval_range = 4500
max_strength = 265
naval_speed = 30.5
naval_speed = 31.5
fuel_consumption = 67
surface_visibility = 34
reliability = 0.9
@@ -659,6 +664,7 @@ equipments = {
}
manpower = 3800
naval_dominance_factor = 340
}
vnr_ship_hull_super_heavy_1 = {
@@ -789,6 +795,7 @@ equipments = {
steel = 3
}
manpower = 3500
naval_dominance_factor = 330
}
vnr_ship_hull_arsenal_ship = {
@@ -920,5 +927,6 @@ equipments = {
module = ship_decoy_launcher
count < 2
}
naval_dominance_factor = 350
}
}

View File

@@ -214,6 +214,7 @@ equipments = {
}
manpower = 250
naval_dominance_factor = 20
}
### vnr hulls
@@ -238,6 +239,7 @@ equipments = {
max_strength = 30
build_cost_ic = 200
naval_dominance_factor = 20
}
vnr_ship_hull_light_2 = {
@@ -253,6 +255,7 @@ equipments = {
#alias = destroyer_1
module_slots = inherit
naval_dominance_factor = 24
}
vnr_ship_hull_light_3 = {
@@ -284,6 +287,7 @@ equipments = {
steel = 2
}
manpower = 325
naval_dominance_factor = 28
}
vnr_ship_hull_light_4 = {
@@ -323,6 +327,7 @@ equipments = {
category = ship_anti_air
count < 5
}
naval_dominance_factor = 32
}
vnr_ship_hull_light_5 = {
@@ -416,6 +421,7 @@ equipments = {
category = ship_anti_air
count < 5
}
naval_dominance_factor = 36
}
vnr_ship_hull_light_6 = {
@@ -555,5 +561,6 @@ equipments = {
category = ship_anti_air
count < 5
}
naval_dominance_factor = 40
}
}

View File

@@ -133,7 +133,7 @@ equipments = {
manpower = 120
naval_supremacy_factor = 0.4
naval_dominance_factor = 7
naval_weather_penalty_factor = 1 #this value gets -1 before its used so 1.5 will increase the effects of weather penalties by 0.5. this is base value is required for MIO stat modifiers
#MIO stat modifers will factory by the unmodified stat value so here a 0.5 mio stat modifier would make this ships naval_weather_penalty_factor stat 1.5.
# change this from 1 at your own risk
@@ -150,6 +150,7 @@ equipments = {
can_convert_from = { vnr_ship_hull_submarine_1 }
module_slots = inherit
naval_dominance_factor = 7
}
vnr_ship_hull_submarine_2 = {
@@ -200,6 +201,7 @@ equipments = {
#oil = 1
steel = 1
}
naval_dominance_factor = 9
}
vnr_ship_hull_submarine_3 = {
@@ -258,6 +260,7 @@ equipments = {
resources = {
steel = 1
}
naval_dominance_factor = 11
}
vnr_ship_hull_submarine_4 = {
derived_variant_name = submarine_equipment_4
@@ -310,6 +313,7 @@ equipments = {
resources = {
steel = 1
}
naval_dominance_factor = 13
}
vnr_ship_hull_submarine_5 = {
@@ -367,6 +371,7 @@ equipments = {
resources = {
steel = 2
}
naval_dominance_factor = 15
}
vnr_ship_hull_cruiser_submarine = {
@@ -454,6 +459,7 @@ equipments = {
resources = {
steel = 1
}
naval_dominance_factor = 10
}
vnr_ship_hull_midget_submarine = {
@@ -509,5 +515,6 @@ equipments = {
resources = {
steel = 1
}
naval_dominance_factor = 2
}
}

View File

@@ -79,6 +79,7 @@ equipments = {
chromium = 3
}
manpower = 20000
naval_dominance_factor = 3000
}
vnr_ship_hull_constitution = {
@@ -131,6 +132,7 @@ equipments = {
chromium = 1
}
manpower = 500
naval_dominance_factor = 200
}
vnr_ship_hull_macross = {
@@ -214,6 +216,7 @@ equipments = {
chromium = 3
}
manpower = 50000
naval_dominance_factor = 10000
}
vnr_ship_hull_space_yamato = {
@@ -299,5 +302,6 @@ equipments = {
chromium = 3
}
manpower = 10000
naval_dominance_factor = 5000
}
}

View File

@@ -0,0 +1,106 @@
equipments = {
support_ship_hull = {
year = 1936
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_buildable = no
type = support_ship
interface_category = interface_category_other_ships
#alias = support_ship
priority = 2000
max_dockyard_factories = 5
lg_armor_piercing = 0
lg_attack = 0
hg_armor_piercing = 0
hg_attack = 0
torpedo_attack = 0
sub_attack = 1
anti_air_attack = 0
armor_value = 0
surface_detection = 3
sub_detection = 1
surface_visibility = 20
naval_speed = 18
reliability = 0.80
naval_range = 3000
max_strength = 25
fuel_consumption = 8
build_cost_ic = 500
resources = {
steel = 2
}
manpower = 250
naval_dominance_factor = 0
}
support_ship_1 = {
abbreviation = "ZZZ"
year = 1936
archetype = support_ship_hull
priority = 2000
model = support_ship
modifier_stat = {
modifier = naval_general_support
value = 100
type = naval_support
}
module_slots = inherit
naval_dominance_factor = 0
}
support_ship_2 = {
abbreviation = "ZZZ"
year = 1936
parent = support_ship_1
archetype = support_ship_hull
priority = 2000
model = support_ship
modifier_stat = {
modifier = naval_general_support
value = 150
type = naval_support
}
max_strength = 40
naval_range = 4000
naval_speed = 20
build_cost_ic = 650
manpower = 350
module_slots = inherit
naval_dominance_factor = 0
}
}

View File

@@ -2,7 +2,7 @@ sub_units = {
heavy_cruiser = {
sprite = heavy_cruiser
map_icon_category = ship
priority = 6
priority = 7
active = yes
type = { capital_ship }
need = { ship_hull_cruiser = 1 }

View File

@@ -2,7 +2,7 @@ sub_units = {
light_cruiser = {
sprite = light_cruiser
map_icon_category = ship
priority = 4
priority = 5
active = yes
type = { screen_ship }
need = { ship_hull_cruiser = 1 }

View File

@@ -0,0 +1,21 @@
sub_units = {
repair_ship = {
sprite = repair_ship
map_icon_category = ship
priority = 0
active = yes
type = { support_ship }
need = { repair_ship_1 = 1 }
max_organisation = 40
supply_consumption = 0.04
#critical_parts = { destroyed_ammo_storage broken_propeller on_fire rudder_jammed}
#critical_part_damage_chance_mult = 1
#
#hit_profile_mult = 1.0
}
}

View File

@@ -2,7 +2,7 @@ sub_units = {
submarine = {
sprite = submarine
map_icon_category = ship
priority = 2
priority = 3
active = yes
type = { submarine }
need = { ship_hull_submarine = 1 }

View File

@@ -0,0 +1,21 @@
sub_units = {
support_ship = {
sprite = support_ship
map_icon_category = ship
priority = 1
active = yes
type = { support_ship }
need = { support_ship_1 = 1 }
max_organisation = 40
supply_consumption = 0.04
#critical_parts = { destroyed_ammo_storage broken_propeller on_fire rudder_jammed}
#critical_part_damage_chance_mult = 1
#
#hit_profile_mult = 1.0
}
}

View File

@@ -1,4 +1,4 @@
version="v2.5 - Santa Cruz"
version="v2.6 - Tarawa Thunder"
tags={
"Military"
"Translation"
@@ -17,7 +17,10 @@ dependencies={
"粉碎帝国:偏离的时间线"
"粉碎帝国:偏离的时间线(原日共重置模组)"
}
replace_path="common/ai_navy/fleet"
replace_path="common/ai_navy/goals"
replace_path="common/ai_navy/taskforce"
name="原版海军重置"
picture="thumbnail.png"
supported_version="1.16.*"
supported_version="1.17.*"
remote_file_id="2993772482"

View File

@@ -224,6 +224,8 @@ country_event = {
add_starting_navy_spirits = yes
sign_naval_treaty = yes
ai_doctrine_workaround = yes
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -92,136 +92,30 @@ guiTypes = {
}
containerWindowType = {
name = "resources"
position = { x = 70 y = 16 }
size = { width = 100% height = 60 }
name = "resource_strip_container"
position = { x = 0 y = 16 }
size = { width = -20 height = 25 }
buttonType = {
name = "oil_icon"
position = { x=0 y=2 }
spriteType = "GFX_resources_strip"
frame = 1
#pdx_tooltip = "PRODUCTION_MATERIALS_OIL"
}
#iconType ={
# name = "resources_bg"
# quadTextureSprite = "GFX_trade_filter_bg"
# position = { x= 0 y = 0 }
# Orientation = "UPPER_LEFT"
#}
instantTextboxType = {
name = "oil_value"
position = { x = 31 y = 5 }
textureFile = ""
font = "hoi_18mbs"
borderSize = {x = 0 y = 0}
text = "999"
maxWidth = 50
maxHeight = 20
format = left
#pdx_tooltip = "PRODUCTION_MATERIALS_OIL"
}
buttonType = {
name = "rubber_icon"
position = { x=70 y=2 }
spriteType = "GFX_resources_strip"
frame = 3
#pdx_tooltip = "PRODUCTION_MATERIALS_RUBBER"
}
instantTextboxType = {
name = "rubber_value"
position = { x = 101 y = 5 }
textureFile = ""
font = "hoi_18mbs"
borderSize = {x = 0 y = 0}
text = "999"
maxWidth = 50
maxHeight = 20
format = left
#pdx_tooltip = "PRODUCTION_MATERIALS_RUBBER"
}
buttonType = {
name = "steel_icon"
position = { x=140 y=2 }
spriteType = "GFX_resources_strip"
frame = 5
#pdx_tooltip = "PRODUCTION_MATERIALS_STEEL"
}
instantTextboxType = {
name = "steel_value"
position = { x = 171 y = 5 }
textureFile = ""
font = "hoi_18mbs"
borderSize = {x = 0 y = 0}
text = "999"
maxWidth = 50
maxHeight = 20
format = left
#pdx_tooltip = "PRODUCTION_MATERIALS_STEEL"
}
buttonType = {
name = "aluminium_icon"
position = { x=210 y=2 }
spriteType = "GFX_resources_strip"
frame = 2
#pdx_tooltip = "PRODUCTION_MATERIALS_ALUMINIUM"
}
instantTextboxType = {
name = "aluminium_value"
position = { x = 241 y = 5 }
textureFile = ""
font = "hoi_18mbs"
borderSize = {x = 0 y = 0}
text = "999"
maxWidth = 50
maxHeight = 20
format = left
#pdx_tooltip = "PRODUCTION_MATERIALS_ALUMINIUM"
}
buttonType = {
name = "tungsten_icon"
position = { x=280 y=2 }
spriteType = "GFX_resources_strip"
frame = 4
#pdx_tooltip = "PRODUCTION_MATERIALS_TUNGSTEN"
}
instantTextboxType = {
name = "tungsten_value"
position = { x = 309 y = 5 }
textureFile = ""
font = "hoi_18mbs"
borderSize = {x = 0 y = 0}
text = "999"
maxWidth = 50
maxHeight = 20
format = left
#pdx_tooltip = "PRODUCTION_MATERIALS_TUNGSTEN"
}
buttonType = {
name = "chromium_icon"
position = { x=350 y=2 }
spriteType = "GFX_resources_strip"
frame = 6
#pdx_tooltip = "PRODUCTION_MATERIALS_CHROMIUM"
}
instantTextboxType = {
name = "chromium_value"
position = { x = 381 y = 5 }
textureFile = ""
font = "hoi_18mbs"
borderSize = {x = 0 y = 0}
text = "999"
maxWidth = 50
maxHeight = 20
format = left
#pdx_tooltip = "PRODUCTION_MATERIALS_CHROMIUM"
gridBoxType = {
orientation = "CENTER_UP"
name = "resources_grid"
position = { x = -240 y = 1 }
size = { width = 100% height = 100% }
slotsize = { width = 70 height = 31 }
max_slots = { x = 7 y = 1 }
add_horizontal = no
format = "UPPER_LEFT"
}
}
#################################
iconType = {
name = "docyards_output_icon"
@@ -1179,16 +1073,16 @@ guiTypes = {
iconType = {
name ="MIO_icon"
spriteType = "GFX_industrial_manufacturer_icon"
position = { x= 7 y = 7 }
position = { x= 8 y = 8 }
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name ="available_MIOs"
position = { x= 35 y = 8 }
position = { x= 30 y = 8 }
font = "hoi_18mbs"
text = "999"
format = left
format = center
maxWidth = 30
maxHeight = 24
fixedsize = yes
@@ -1330,6 +1224,21 @@ guiTypes = {
Orientation = "UPPER_LEFT"
clicksound = click_checkbox
}
iconType = {
name = "coal_icon"
position = { x=346 y=2 }
spriteType = "GFX_resources_strip"
frame = 7
#pdx_tooltip = "PRODUCTION_MATERIALS_CHROMIUM"
}
buttonType = {
name = "coal_checkbox"
position = { x = 359 y = 1 }
quadTextureSprite ="GFX_generic_checkbox"
Orientation = "UPPER_LEFT"
clicksound = click_checkbox
}
}
buttonType = {
@@ -1362,7 +1271,7 @@ guiTypes = {
containerWindowType = {
name = "equipments"
position = { x=0 y=150 }
position = { x=0 y=144 }
size = { width=100%% height=100%% }
verticalScrollbar = "right_vertical_slider"
vertical_scroll_step = 41
@@ -1401,16 +1310,16 @@ guiTypes = {
iconType = {
name ="MIO_icon"
spriteType = "GFX_industrial_manufacturer_icon"
position = { x= 5 y = 3 }
position = { x= 8 y = 8 }
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name ="available_MIOs"
position = { x= 40 y = 8 }
position = { x= 30 y = 8 }
font = "hoi_18mbs"
text = "999"
format = left
format = center
maxWidth = 30
maxHeight = 24
fixedsize = yes
@@ -3442,10 +3351,10 @@ guiTypes = {
instantTextboxType = {
name = "name"
position = { x = 55 y = 3 }
position = { x = 40 y = 3 }
font = "hoi_18mbs"
borderSize = {x = 0 y = 0}
maxWidth = 167
maxWidth = 155
maxHeight = 19
multiline = no
format = left
@@ -3608,8 +3517,9 @@ guiTypes = {
iconType = {
name ="equipment_icon"
spriteType = "GFX_technology_medium"
position = { x=158 y=76 }
scale=0.8
#position = { x=158 y=76 }
position = { x=102 y=72 }
scale=1
centerposition = yes
alwaystransparent = yes
}
@@ -4687,6 +4597,23 @@ guiTypes = {
}
}
iconType = {
name ="dominance_icon"
spriteType = "GFX_naval_dominance_support_strip"
position = { x= 15 y = 40 }
alwaystransparent = yes
}
instantTextboxType = {
name = "dominance_value"
position = { x = 45 y = 40 }
textureFile = ""
font = "hoi_16mbs"
maxWidth = 50
maxHeight = 20
format = left
}
gridBoxType = {
name = "resources_grid"
position = { x = 376 y = 8 }
@@ -4944,4 +4871,41 @@ guiTypes = {
format = "UPPER_LEFT"
}
}
containerWindowType = {
name = "resource_strip_item"
position = { x=0 y=0 }
size = { width = 70 height = 30 }
clipping = no
background = {
name = "bg"
quadTextureSprite ="GFX_mini_tooltip"
}
iconType = {
name = "energy_ratio_anim"
spriteType = "GFX_ongoing_contruction_anim"
position = { x = 5 y = 5 }
}
buttonType = {
name = "icon"
position = { x=4 y=2 }
spriteType = "GFX_resources_strip"
}
instantTextboxType = {
name = "value"
position = { x=35 y=7 }
font = "hoi_16mbs"
fixedsize = yes
text = "15"
maxWidth = 50
maxHeight = 30
format = left
orientation = "UPPER_LEFT"
}
}
}

View File

@@ -302,6 +302,12 @@ guiTypes = {
format = "LEFT"
}
gridboxtype = {
name = "rangers_tech_tree"
position = { x = 140 y = 1110 }
slotsize = { width = 70 height = 70 }
format = "LEFT"
}
gridboxtype = {
name = "tech_special_forces_tree"
@@ -851,7 +857,7 @@ guiTypes = {
name = "techtree_stripes"
position = { x= 0 y= 0 }
size = {
width = 1600 height = 1090
width = 1900 height = 1090
min = { width = 100%% height = 100%% }
}
clipping = no
@@ -969,9 +975,9 @@ guiTypes = {
containerWindowType = {
name = "armour_year_right"
position = { x=-100 y=50 }
position = { x=1800 y=50 }
size = { width = 80 height = 100%% }
orientation = upper_right
orientation = upper_left
instantTextBoxType = {
name = "armour_year1"
@@ -1171,26 +1177,26 @@ guiTypes = {
name = "techtree_stripes"
position = { x= 0 y= 0 }
size = {
width = 1239 height = 1390
width = 1515 height = 1390
min = { width = 100%% height = 100%% }
}
clipping = no
background = {
name = "Background"
quadTextureSprite ="GFX_techtree_stripes"
quadTextureSprite = "GFX_techtree_stripes"
}
iconType = {
name ="artillery_techtree_bg"
name = "artillery_techtree_bg"
spriteType = "GFX_artillery_techtree_bg"
position = { x=0 y=0 }
alwaystransparent = yes
}
containerWindowType = {
name = "artillery_subtitles"
position = { x = 0 y = 50 }
containerWindowType = {
name = "artillery_subtitles"
position = { x = 35 y = 50 }
size = { width = 600 height = 80% }
orientation = center_up
origo = center_up
@@ -1249,17 +1255,17 @@ guiTypes = {
}
containerWindowType = {
name = "artillery_year_left"
position = { x=10 y=45 }
size = { width = 130 height = 100% }
orientation = upper_left
name = "artillery_year_left"
position = { x = 30 y = 45 }
size = { width = 130 height = 100% }
orientation = upper_left
instantTextBoxType = {
name = "artillery_year2"
position = { x = 60 y = 140 }
position = { x = 0 y = 140 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
borderSize = { x = 0 y = 4 }
text = "1934"
maxWidth = 170
maxHeight = 32
@@ -1269,10 +1275,10 @@ guiTypes = {
instantTextBoxType = {
name = "artillery_year3"
position = { x = 60 y = 278 }
position = { x = 0 y = 278 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
borderSize = { x = 0 y = 4 }
text = "1936"
maxWidth = 170
maxHeight = 32
@@ -1282,10 +1288,10 @@ guiTypes = {
instantTextBoxType = {
name = "artillery_year4"
position = { x = 60 y = 420 }
position = { x = 0 y = 420 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
borderSize = { x = 0 y = 4 }
text = "1939"
maxWidth = 170
maxHeight = 32
@@ -1295,10 +1301,10 @@ guiTypes = {
instantTextBoxType = {
name = "artillery_year5"
position = { x = 60 y = 560 }
position = { x = 0 y = 560 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
borderSize = { x = 0 y = 4 }
text = "1940"
maxWidth = 170
maxHeight = 32
@@ -1308,10 +1314,10 @@ guiTypes = {
instantTextBoxType = {
name = "artillery_year6"
position = { x = 60 y = 698 }
position = { x = 0 y = 698 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
borderSize = { x = 0 y = 4 }
text = "1941"
maxWidth = 170
maxHeight = 32
@@ -1321,10 +1327,10 @@ guiTypes = {
instantTextBoxType = {
name = "artillery_year7"
position = { x = 60 y = 838 }
position = { x = 0 y = 838 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
borderSize = { x = 0 y = 4 }
text = "1942"
maxWidth = 170
maxHeight = 32
@@ -1334,10 +1340,10 @@ guiTypes = {
instantTextBoxType = {
name = "artillery_year8"
position = { x = 60 y = 978 }
position = { x = 0 y = 978 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
borderSize = { x = 0 y = 4 }
text = "1943"
maxWidth = 170
maxHeight = 32
@@ -1347,10 +1353,10 @@ guiTypes = {
instantTextBoxType = {
name = "artillery_year9"
position = { x = 60 y = 1118 }
position = { x = 0 y = 1118 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
borderSize = { x = 0 y = 4 }
text = "1944"
maxWidth = 170
maxHeight = 32
@@ -1360,7 +1366,7 @@ guiTypes = {
instantTextBoxType = {
name = "artillery_year10"
position = { x = 60 y = 1258 }
position = { x = 0 y = 1258 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
@@ -1494,14 +1500,12 @@ guiTypes = {
format = left
Orientation = "UPPER_LEFT"
}
}
}
gridboxtype = {
name = "gw_artillery_tree"
position = { x = 10% y = 172 }
position = { x = 300 y = 172 }
size = { width = 80% height = 80% }
slotsize = { width = 70 height = 70 }
format = "UP"
@@ -1732,7 +1736,6 @@ guiTypes = {
format = "LEFT"
}
gridboxtype = {
name = "transport_tree"
position = { x = 150 y = 1180 }
@@ -1741,6 +1744,7 @@ guiTypes = {
format = "LEFT"
}
#gridboxtype = {
#name = "sp_multi_product_supply_ships_tree"
#position = { x = 150 y = 1250 }
@@ -2039,17 +2043,7 @@ guiTypes = {
quadTextureSprite ="GFX_tiled_research_bg"
}
}
containerWindowType = {
name = "tiled_research_bg_3"
position = { x=550 y=955 }
size = { width = 230 height = 270 }
clipping = no
background = {
name = "Background"
quadTextureSprite ="GFX_tiled_research_red_bg"
}
}
containerWindowType = {
name = "tiled_research_bg_4"
position = { x=95 y=1225 }
@@ -2117,14 +2111,6 @@ guiTypes = {
slotsize = { width = 60 height = 50 }
format = "UP"
}
gridboxtype = {
name = "naval_radio_guiding_system_tree"
position = { x = 550 y = 790 }
size = { width = 100 height = 140 }
slotsize = { width = 60 height = 50 }
format = "UP"
}
}
containerWindowType = {
@@ -2393,6 +2379,17 @@ guiTypes = {
quadTextureSprite ="GFX_tiled_window_transparent_transparent"
}
}
containerWindowType = {
name = "tiled_research_bg_3"
position = { x=1320 y=645 }
size = { width = 570 height = 150 }
clipping = no
background = {
name = "Background"
quadTextureSprite ="GFX_tiled_research_red_bg"
}
}
gridboxtype = {
name = "basic_battery_tree"
@@ -2402,6 +2399,14 @@ guiTypes = {
format = "LEFT"
}
gridboxtype = {
name = "naval_radio_guiding_system_tree"
position = { x = 1370 y = 630 }
size = { width = 100 height = 140 }
slotsize = { width = 65 height = 35 }
format = "LEFT"
}
gridboxtype = {
name = "basic_torpedo_tree"
position = { x = 150 y = 800 }
@@ -2462,7 +2467,7 @@ guiTypes = {
name = "techtree_stripes"
position = { x= 0 y= 0 }
size = {
width = 2300 height = 1300
width = 2500 height = 1300
min = { width=100%% height=100%% }
}
clipping = no
@@ -2857,88 +2862,94 @@ guiTypes = {
}
}
containerWindowType = {
name = "airtech_year_left"
position = { x=0 y=25 }
size = { width = 200 height = 100% }
orientation = upper_left
instantTextBoxType = {
name = "airtech_year2"
position = { x = 30 y = 160 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1933"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name = "airtech_year2"
position = { x = 30 y = 160 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1933"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name = "airtech_year3"
position = { x = 30 y = 298 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1936"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name = "airtech_year3"
position = { x = 30 y = 298 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1936"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name = "airtech_year4"
position = { x = 30 y = 440 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1940"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name = "airtech_year4"
position = { x = 30 y = 440 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1940"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name = "airtech_year5"
position = { x = 30 y = 580 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1944"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name = "airtech_year5"
position = { x = 30 y = 580 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1944"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name = "airtech_year6"
position = { x = 30 y = 858 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1945"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name = "airtech_year6"
position = { x = 30 y = 858 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1945"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
}
instantTextBoxType = {
name = "airtech_year7"
position = { x = 30 y = 998 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1950"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
instantTextBoxType = {
name = "airtech_year7"
position = { x = 30 y = 998 }
textureFile = ""
font = "hoi_36header"
borderSize = {x = 0 y = 4}
text = "1950"
maxWidth = 170
maxHeight = 32
format = left
Orientation = "UPPER_LEFT"
}
}
containerWindowType = {
name = "airtech_year_left"
position = { x=2000 y=0 }
name = "airtech_year_right"
position = { x=2000 y=25 }
size = { width = 200 height = 100% }
orientation = upper_left
@@ -3191,7 +3202,7 @@ guiTypes = {
name = "size_filler"
position = { x=0 y=0 }
size = {
width = 1550 height = 1000
width = 1650 height = 1000
min = { width = 100%% height = 100%% }
}
@@ -3203,7 +3214,7 @@ guiTypes = {
containerWindowType = {
name = "engineering_year_left"
position = { x=100 y=40 }
position = { x=30 y=40 }
size = { width = 130 height = 100% }
orientation = upper_left
@@ -3302,10 +3313,9 @@ guiTypes = {
containerWindowType = {
name = "industry_year_right"
position = { x=-100 y=40
}
position = { x=1500 y=40 }
size = { width = 80 height = 100% }
orientation = upper_right
orientation = upper_left
instantTextBoxType = {
name = "industry_year2"
@@ -3406,7 +3416,7 @@ guiTypes = {
instantTextBoxType = {
name = "industry_subtitle"
position = { x = 610 y = 210 }
position = { x = 510 y = 210 }
textureFile = ""
font = "hoi_22tech"
borderSize = {x = 0 y = 4}
@@ -3419,7 +3429,7 @@ guiTypes = {
instantTextBoxType = {
name = "industry_subtitle_production"
position = { x = 260 y = 115 }
position = { x = 160 y = 115 }
textureFile = ""
font = "hoi_22tech"
borderSize = {x = 0 y = 4}
@@ -3432,7 +3442,7 @@ guiTypes = {
instantTextBoxType = {
name = "industry_subtitle_synthetic_oil"
position = { x = 1308 y = 115 }
position = { x = 1208 y = 115 }
textureFile = ""
font = "hoi_22tech"
borderSize = {x = 0 y = 4}
@@ -3445,7 +3455,7 @@ guiTypes = {
instantTextBoxType = {
name = "industry_subtitle_construction"
position = { x = 871 y = 255 }
position = { x = 771 y = 255 }
textureFile = ""
font = "hoi_22tech"
borderSize = {x = 0 y = 4}
@@ -3458,7 +3468,7 @@ guiTypes = {
gridboxtype = {
name = "basic_machine_tools_tree"
position = { x = 100 y = 172 }
position = { x = 0 y = 172 }
size = { width = 520 height = 800 }
slotsize = { width = 70 height = 70 }
format = "UP"
@@ -3467,14 +3477,14 @@ guiTypes = {
iconType = {
name = "highlight_industry_1"
spriteType = "GFX_tutorial_research_small_item_icon_glow"
position = { x=320 y=172}
position = { x=220 y=172}
hide = yes
alwaystransparent = yes
}
gridboxtype = {
name = "fuel_silos_tree"
position = { x = 1250 y = 172 }
position = { x = 1150 y = 172 }
size = { width =72 height = 650 }
slotsize = { width = 70 height = 70 }
format = "UP"
@@ -3482,7 +3492,7 @@ guiTypes = {
gridboxtype = {
name = "construction1_tree"
position = { x = 894 y = 312 }
position = { x = 794 y = 312 }
size = { width = 72 height = 650 }
slotsize = { width = 70 height = 70 }
format = "UP"
@@ -3491,7 +3501,7 @@ guiTypes = {
iconType = {
name = "highlight_industry_2"
spriteType = "GFX_tutorial_research_small_item_icon_glow"
position = { x=890 y=312}
position = { x=790 y=312}
hide = yes
alwaystransparent = yes
}
@@ -3883,7 +3893,7 @@ guiTypes = {
iconType = {
name = "highlight_engineering_1"
spriteType = "GFX_tutorial_research_small_item_icon_glow"
position = { x=305 y=172}
position = { x=245 y=172}
hide = yes
alwaystransparent = yes
}
@@ -4173,6 +4183,11 @@ guiTypes = {
format = center
}
positionType = {
name = "tech_info_special_description_bottom_margin"
position = { x = 0 y = 0 }
}
background = {
name = "Background"
quadTextureSprite ="GFX_tiled_paper_bg"
@@ -4287,7 +4302,7 @@ guiTypes = {
name = "research_with_xp"
quadTextureSprite = "GFX_button_123x34"
text = "RESEARCH_WITH_XP"
buttonFont = "hoi_20b"
buttonFont = "hoi_16mbs"
position = { x=390 y=87 }
shortcut = "RETURN"
}

View File

@@ -0,0 +1,17 @@
spriteTypes = {
spriteType = {
name = "GFX_doctrine_fast_battleship_primacy_medium"
textureFile = "gfx/interface/technologies/doctrine_tree/fast_battleship_primacy.png"
alwaystransparent = yes
}
spriteType = {
name = "GFX_doctrine_torpedo_groups_medium"
textureFile = "gfx/interface/technologies/doctrine_tree/torpedo_groups.png"
alwaystransparent = yes
}
spriteType = {
name = "GFX_doctrine_naval_airforce_medium"
textureFile = "gfx/interface/technologies/doctrine_tree/naval_airforce.png"
alwaystransparent = yes
}
}

View File

@@ -304,6 +304,33 @@ guiTypes = {
position = { x=536 y=13}
size = { width=100% height=100%% }
instantTextboxType = {
name = "ship_designer_naval_dominance_name"
position = { x = 315 y = 303 }
font = "hoi_18mbs"
text = "SHIP_DESIGNER_NAVAL_DOMINANCE_NAME"
maxWidth = 150
maxHeight = 20
format = left
}
iconType ={
name ="ship_designer_naval_dominance_icon"
spriteType = "GFX_naval_dominance_texticon"
position = { x = 435 y = 303 }
Orientation = "UPPER_LEFT"
}
instantTextboxType = {
name = "ship_designer_naval_dominance_value"
position = { x = 434 y = 303 }
font = "hoi_18mbs"
text = "SHIP_DESIGNER_NAVAL_DOMINANCE_VALUE"
maxWidth = 66
maxHeight = 20
format = right
}
instantTextboxType = {
name = "base_stats_label"
position = { x = 14 y = 34 }
@@ -577,12 +604,12 @@ guiTypes = {
position = { x=538 y=40 }
size = { width=567 height=460 }
background = {
name = "Background"
spriteType ="GFX_tiled_window"
position = { x=-16 y=0 }
}
ButtonType = {
name = "import_preset_button"
position = { x=34 y=408 }
@@ -648,6 +675,7 @@ guiTypes = {
}
}
containerWindowType = {
name = "folder_container"
position = {x=3 y=28}
@@ -681,6 +709,7 @@ guiTypes = {
format = "UPPER_RIGHT"
}
}
}
containerWindowType = {

File diff suppressed because it is too large Load Diff

View File

@@ -185,6 +185,14 @@ spriteTypes = {
tilingCenter = no
effectFile = "gfx/FX/buttonstate.shader"
}
corneredTileSpriteType = {
name = "GFX_frontend_bg_simp_chinese"
texturefile = "gfx/interface/vnr_main_menu_bg.dds"
borderSize = { x = 0 y = 0 }
size = { x = 1920 y = 1440 }
tilingCenter = no
effectFile = "gfx/FX/buttonstate.shader"
}
### idea icon of VNR AI buff
@@ -368,6 +376,11 @@ spriteTypes = {
textureFile = "gfx/texticons/tech_banner/bb_10_desc_icon.png"
legacy_lazy_load = no
}
spriteType = {
name = "GFX_bb_tech_11"
textureFile = "gfx/texticons/tech_banner/bb_11_desc_icon.png"
legacy_lazy_load = no
}
spriteType = {
name = "GFX_ca_tech_1"
textureFile = "gfx/texticons/tech_banner/ca_1_desc_icon.png"
@@ -423,6 +436,11 @@ spriteTypes = {
textureFile = "gfx/texticons/tech_banner/ca_11_desc_icon.png"
legacy_lazy_load = no
}
spriteType = {
name = "GFX_ca_tech_12"
textureFile = "gfx/texticons/tech_banner/ca_12_desc_icon.png"
legacy_lazy_load = no
}
spriteType = {
name = "GFX_dd_tech_1"
textureFile = "gfx/texticons/tech_banner/dd_1_desc_icon.png"
@@ -468,6 +486,21 @@ spriteTypes = {
textureFile = "gfx/texticons/tech_banner/dd_9_desc_icon.png"
legacy_lazy_load = no
}
spriteType = {
name = "GFX_dd_tech_10"
textureFile = "gfx/texticons/tech_banner/dd_10_desc_icon.png"
legacy_lazy_load = no
}
spriteType = {
name = "GFX_dd_tech_11"
textureFile = "gfx/texticons/tech_banner/dd_11_desc_icon.png"
legacy_lazy_load = no
}
spriteType = {
name = "GFX_dd_tech_12"
textureFile = "gfx/texticons/tech_banner/dd_12_desc_icon.png"
legacy_lazy_load = no
}
spriteType = {
name = "GFX_ss_tech_1"
textureFile = "gfx/texticons/tech_banner/ss_1_desc_icon.png"

View File

@@ -352,4 +352,20 @@ spriteTypes = {
name = "GFX_vnr_ship_hull_merchant_carrier_medium"
texturefile = "gfx/interface/technologies/Generic/generic_merchant_carrier.png"
}
spriteType = {
name = "GFX_support_ship_1_medium"
texturefile = "gfx/interface/technologies/Generic/support_ship1.png"
}
spriteType = {
name = "GFX_support_ship_2_medium"
texturefile = "gfx/interface/technologies/Generic/support_ship2.png"
}
spriteType = {
name = "GFX_repair_ship_1_medium"
texturefile = "gfx/interface/technologies/Generic/repair_ship1.png"
}
spriteType = {
name = "GFX_repair_ship_2_medium"
texturefile = "gfx/interface/technologies/Generic/repair_ship2.png"
}
}

View File

@@ -34,7 +34,7 @@ spriteTypes = {
}
spriteType = {
name = "GFX_escort_destroyer_trend_medium"
textureFile = "gfx/interface/technologies/convoy_escorts.dds"
textureFile = "gfx/interface/technologies/navy_techtree/convoy_escorts.png"
}
spriteType = {
name = "GFX_destroyer_cruiser_trend_medium"
@@ -397,7 +397,7 @@ spriteTypes = {
texturefile = "gfx/interface/technologies/Generic/generic_auxiliary_ship3.png"
}
spriteType = {
name = "GFX_repair_ship_medium"
name = "GFX_support_fleet_medium"
texturefile = "gfx/interface/technologies/navy_techtree/repair_ship.png"
}
spriteType = {
@@ -408,6 +408,18 @@ spriteTypes = {
name = "GFX_logistic_system_redundancy_medium"
texturefile = "gfx/interface/technologies/navy_techtree/logistic_system_redundancy.png"
}
spriteType = {
name = "GFX_support_fleet_ncns_medium"
texturefile = "gfx/interface/technologies/navy_techtree/repair_ship.png"
}
spriteType = {
name = "GFX_floating_dry_dock_ncns_medium"
texturefile = "gfx/interface/technologies/navy_techtree/floating_dry_dock.png"
}
spriteType = {
name = "GFX_logistic_system_redundancy_ncns_medium"
texturefile = "gfx/interface/technologies/navy_techtree/logistic_system_redundancy.png"
}
spriteType = {
name = "GFX_hospital_ship_medium"
texturefile = "gfx/interface/technologies/navy_techtree/hospital_ship.png"

View File

@@ -0,0 +1,148 @@
l_english:
GRAND_DOCTRINE_FLEET_IN_BEING: "舰队决战"
GRAND_DOCTRINE_CONVOY_RAIDING: "交通线破袭"
GRAND_DOCTRINE_BASE_STRIKE: "空海一体战"
fleet_in_being_tree: "舰队决战学说"
trade_interdiction_tree: "交通线破袭学说"
base_strike_tree: "空海一体战学说"
cat_fleet_in_being: "舰队决战学说"
cat_trade_interdiction: "交通线破袭学说"
cat_base_strike: "空海一体战学说"
GRAND_DOCTRINE_FLEET_IN_BEING_DESC: "舰队决战着眼于利用优势的防御姿态维持存在和恫吓敌人,但是在时机合适的前提下仍然会试图在一场战斗中彻底摧毁敌军舰队。"
GRAND_DOCTRINE_CONVOY_RAIDING_DESC: "交通线破袭将商船作为主要攻击目标,以此削弱敌方的经济和军事工业,在争夺制海权上则常常保持被动。"
GRAND_DOCTRINE_BASE_STRIKE_DESC: "空海一体战学派相信制空权是制海权的核心,因此将对空域的控制视为超越一切因素的关键。"
SUBDOCTRINE_FAST_BATTLESHIP_PRIMACY: "高速战列舰主导"
SUBDOCTRINE_FAST_BATTLESHIP_PRIMACY_DESC: "一支有着统一高航速和全面性能的战列舰舰队足以胜任大海上的所有挑战。"
fast_battleship_primacy_fast_squad: "快速舰队"
fast_battleship_primacy_formation_training: "编队训练"
fast_battleship_primacy_blue_water_logistics: "蓝水后勤"
fast_battleship_primacy_grand_fleet: "大舰队"
fast_battleship_primacy_decisive_battle: "舰队决战战略"
SUBDOCTRINE_BATTLECRUISER_SUPREMACY: "专业化侦察舰队"
SUBDOCTRINE_BATTLECRUISER_SUPREMACY_DESC: "高速战列舰的好处被过分夸大了,过去战列舰和战列巡洋舰的分工协作在如今仍然是有意义的,且已经被证明是经济且行之有效的。"
battlecruiser_supremacy_scouting_fleet: "侦察舰队"
battlecruiser_supremacy_coordinated_communication: "通信协调"
battlecruiser_supremacy_assualt_operation: "闪击行动"
battlecruiser_supremacy_ocean_raiding: "侵略性破交"
battlecruiser_supremacy_decoy_tactics: "诱饵战术"
SUBDOCTRINE_ARMORED_RAIDERS: "装甲劫掠"
SUBDOCTRINE_ARMORED_RAIDERS_DESC: "护航编队主要专注于反潜防御。想象一下,当一艘全副武装的主力舰突然出现在他们中间,就像狼入羊群时,他们会有多么震惊。"
armored_raiders_expert_reconnaissance: "索敌专家"
armored_raiders_speed_trials: "高速巡航"
armored_raiders_modernized_officer_education: "现代化搜索策略"
armored_raiders_capital_raiders: "一击脱离"
armored_raiders_crisis_management: "损害管制"
SUBDOCTRINE_COASTAL_DEFENCE: "岸防舰队"
SUBDOCTRINE_COASTAL_DEFENCE_DESC: "小型战舰若以火力优先、牺牲航程,并在友岸附近活动,可对敌方舰队构成显著威慑。"
coastal_defence_fleet_mixed_squad: "混成编队"
coastal_defence_fleet_casemate_upgrades: "副炮现代化"
coastal_defence_fleet_escort_duties: "航路警戒"
coastal_defence_fleet_green_water_navy: "绿水海军"
coastal_defence_fleet_spare_part_logistics: "经过验证的设计原则"
SUBDOCTRINE_BATTLESHIP_ANTIAIR_SCREEN: "舰队卫士"
SUBDOCTRINE_BATTLESHIP_ANTIAIR_SCREEN_DESC: "战列舰具备无与伦比的甲板武器搭载空间。优先为其配备打击敌机的装备,对于确保我方特混舰队牢牢掌控制空权至关重要。"
battleship_antiair_screen_guardian_squad: "航母直卫"
battleship_antiair_screen_flexible_dispatch: "灵活派遣"
battleship_antiair_screen_broad_air_cover: "对空侦察优先"
battleship_antiair_screen_circle_formation: "轮形阵"
battleship_antiair_screen_task_force_protector: "舰队保卫者"
SUBDOCTRINE_NAVAL_GUNFIRE_SUPPORT: "炮舰支援"
SUBDOCTRINE_NAVAL_GUNFIRE_SUPPORT_DESC: "浅水重炮舰是一种在小型船体上安装不成比例的大口径舰炮的舰船,通常航速慢、防护差。但是作为对岸支援舰来说,它的浅吃水的特点则非常有效。"
SUBDOCTRINE_CARRIER_BATTLEGROUPS: "航母特混舰队"
SUBDOCTRINE_CARRIER_BATTLEGROUPS_DESC: "航母正迅速取代战列舰,成为我们这个时代的主要海军武器。我们的舰队应以航母为核心。"
carrier_battlegroups_long_distance_logistics: "远洋后勤"
carrier_battlegroups_bomber_scouting: "全载荷侦察"
carrier_battlegroups_professional_deck_management: "专业甲板管制"
carrier_battlegroups_fleet_antiair: "舰队保护伞"
carrier_battlegroups_alpha_strike: "全甲板攻击"
SUBDOCTRINE_CARRIER_AIRFIELDS: "海上机场"
SUBDOCTRINE_CARRIER_AIRFIELDS_DESC: "航母甲板是地球上最昂贵的“地产”,必须不遗余力地从中榨取出最大限度的空中战力。"
floating_airfields_enclosed_hangar: "封闭式机库"
floating_airfields_fleet_antiair: "舰队保护伞"
floating_airfields_reserved_fighters: "战斗机预备队"
floating_airfields_dogfight_training: "狗斗训练"
floating_airfields_rough_weather_procedures: "恶劣天气作业规范"
SUBDOCTRINE_SUBSIDIARY_CARRIER_SUPPORT: "航母辅助支援"
SUBDOCTRINE_SUBSIDIARY_CARRIER_SUPPORT_DESC: "航母应该作为帮手在其他舰船身边提供支援,并在航行中持续提供空中掩护。"
subsidiary_carrier_support_evasive_convoy_maneuvers: "运输队机动回避"
subsidiary_carrier_support_anti_submarine_escorts: "反潜护航"
subsidiary_carrier_support_fleet_antiair: "舰队保护伞"
subsidiary_carrier_support_integrated_convoy_escorts: "游走式护航"
subsidiary_carrier_support_carrier_support_groups: "航母支援分队"
SUBDOCTRINE_CARRIER_CONCENTRATION: "航母集中部署"
SUBDOCTRINE_CARRIER_CONCENTRATION_DESC: "正如在陆地上一样,海战的成功也取决于在唯一决定性的地点集中尽可能多的打击力量;分散意味着失败。"
carrier_concentration_deep_operative_support: "海航力量投射"
carrier_concentration_mobile_force: "机动部队"
carrier_concentration_improved_mission_oriented: "改进任务导向"
carrier_concentration_efficient_rearming: "高效武器整备"
carrier_concentration_massed_air_raid: "大规模空袭"
SUBDOCTRINE_NAVAL_AIRFOCE: "以空制海"
SUBDOCTRINE_NAVAL_AIRFOCE_DESC: "尽管不被大多数人所接受,但是越来越多的理论证明通过长程陆基飞机确保制空权是海上胜利的基础。"
naval_airfoce_direct_fire_avoidance: "避战策略"
naval_airfoce_land_based_support: "陆基支援"
naval_airfoce_air_raiders: "空中突袭"
naval_airfoce_evasive_engagements_focus: "游击战术"
naval_airfoce_airpower: "空中力量"
SUBDOCTRINE_SCREEN_CONVOY_ESCORT: "运输船队护航"
SUBDOCTRINE_SCREEN_CONVOY_ESCORT_DESC: "轻型舰船的首要职责,确保我们所有战争努力所依赖的海上贸易安全,其他一切均为次要。"
convoy_escort_escort_reclassification: "坚韧护航防御"
convoy_escort_anti_submarine_sweep_training: "前出反潜网"
convoy_escort_creeping_attack: "缓进攻击"
convoy_escort_sweeping_duty: "航路清扫"
convoy_escort_as_below_so_above: "两用炮经验"
SUBDOCTRINE_SCREEN_INTEGRATED_OPERATIONS: "综合行动"
SUBDOCTRINE_SCREEN_INTEGRATED_OPERATIONS_DESC: "尽管护航舰队的火力不及主力舰,但它们以速度为装甲,即使在激烈的海战中也能发挥重要作用。"
support_integrated_operations_first_line_of_defense: "舰队前卫"
support_integrated_operations_first_line_of_attack: "舰队前锋"
support_integrated_operations_rescue_mission: "营救任务"
support_integrated_operations_fleet_coordination: "紧密舰队协同"
support_integrated_operations_early_warning: "早期预警巡逻"
SUBDOCTRINE_SCREEN_HUNTER_KILLERS: "猎杀集团"
SUBDOCTRINE_SCREEN_HUNTER_KILLERS_DESC: "当敌方潜艇威胁要扼杀我们的战时经济时,组织严密、积极主动的护航驱逐舰就能让猎手变成猎物。"
hunter_killers_search_and_destroy: "搜索并歼灭"
hunter_killers_flotilla_leader: "舰队中控"
hunter_killers_group_operations: "专门舰队行动"
hunter_killers_convoy_escort: "护航编队"
hunter_killers_light_force: "轻型战术集群"
SUBDOCTRINE_SCREEN_TORPEDO_PRIMACY: "鱼雷战队"
SUBDOCTRINE_SCREEN_TORPEDO_PRIMACY_DESC: "强调以大胆、积极的驱逐舰鱼雷攻击削弱敌方主力舰队,而非仅进行防御性护航。"
torpedo_primacy_modern_broadsides: "现代舷侧鱼雷发射管"
torpedo_primacy_coordinated_fire_patterns: "协同鱼雷齐射"
torpedo_primacy_dedicated_torpedo_task_forces: "鱼雷战队指挥舰"
torpedo_primacy_torpedo_rearming: "鱼雷再装填操演"
torpedo_primacy_night_combat_training: "夜战训练"
SUBDOCTRINE_SCREEN_JEUNE_ECOLE: "新学派"
SUBDOCTRINE_SCREEN_JEUNE_ECOLE_DESC: "一种强调大量小型舰艇、鱼雷袭击和间接商战的海军教义,用以对抗传统大舰巨炮海上对决的观念。"
jeune_ecole_commerce_raiding_priority: "破交优先"
jeune_ecole_long_range_torpedo: "远程鱼雷"
jeune_ecole_total_economic_warfare: "全面经济战"
jeune_ecole_convoy_escort: "护航编队"
jeune_ecole_coastal_patrol: "海岸巡逻"
SUBDOCTRINE_SUBMARINE_WOLFPACKS: "狼群战术"
SUBDOCTRINE_SUBMARINE_WOLFPACKS_DESC: "分散猎杀——合力打击。我们的潜艇可以分散部署,覆盖广阔海域,一旦发现合适目标,便相互发信号集中攻击。"
wolfpacks_predictive_expertise: "快速抵近"
wolfpacks_pack_search_patterns: "集群搜索"
wolfpacks_improvisation: "巧变思维"
wolfpacks_rough_weather_procedure: "恶劣天气作业规范"
wolfpacks_wolfpack_coordination: "集中呼号识别"
SUBDOCTRINE_SUBMARINE_FLEET_OPERATIONS: "舰队作战"
SUBDOCTRINE_SUBMARINE_FLEET_OPERATIONS_DESC: "将大量潜艇整合进主力舰队,在总交战中执行侦察并伏击敌舰。"
submarine_fleet_operations_long_range_patrol_schedule: "远程巡逻"
submarine_fleet_operations_sustained_operations: "持续作战"
submarine_fleet_operations_ambush_tactics: "伏击战术"
submarine_fleet_operations_submarine_picket: "潜艇哨戒"
submarine_fleet_operations_trade_interdiction: "贸易封锁"
SUBDOCTRINE_SUBMARINE_CAPITAL_HUNTERS: "主力舰猎手"
SUBDOCTRINE_SUBMARINE_CAPITAL_HUNTERS_DESC: "潜艇在现代战争中的正确作用,是避免被次要目标分散注意力,全力击沉敌方主力舰。"
capital_hunters_fire_protocol_drills: "射击规程演练"
capital_hunters_battle_line_priority: "瞄准战列线优先"
capital_hunters_quick_reload_procedures: "敏捷型鱼雷再装填"
capital_hunters_battleship_chase: "战列舰追击"
capital_hunters_escape_when_empty: "弹尽撤离"
SUBDOCTRINE_SUBMARINE_COASTAL_DEFENSE: "海岸防御"
SUBDOCTRINE_SUBMARINE_COASTAL_DEFENSE_DESC: "在近岸活动的小型潜艇可能成为潜在入侵者的持续麻烦。"
submarine_coastal_defense_optimized_compartments: "小型化舰控系统"
submarine_coastal_defense_patrol_vigilance: "巡逻警戒"
submarine_coastal_defense_maneuever_fire: "近距离精准射击"
submarine_coastal_defense_locals_knowledge: "占据地利"
submarine_coastal_defense_high_explosive_torpedo: "高爆鱼雷战斗部"

View File

@@ -21,7 +21,7 @@
battlecarrier: "航空战列舰"
battlecarrier_desc: "§H航空战列舰§!\n\n\n\n\n£GFX_bbv_desc_icon\n\n\n\n\n\n航空战列舰是一种结合了航空母舰和战列舰特点的大型舰船通常只出现在理论假设中。"
auxiliary_ship: "辅助船"
auxiliary_ship_desc: "负责舰队支援事宜的舰船,按照民用船舶的标准建造。"
auxiliary_ship_desc: "承担舰队支援事宜的军用舰船,通常负责补给和运输任务。"
cv_cas: "舰载俯冲轰炸机"
cv_CAS_equipment_desc: "俯冲轰炸机通过对目标进行俯冲以获得更高的投弹命中率。"
cv_nav_bomber: "舰载鱼雷轰炸机"
@@ -33,3 +33,5 @@
medium_cruiser: "重型舰队巡洋舰"
medium_cruiser_desc: "§H重型巡洋舰§!\n\n\n\n\n£GFX_ca_desc_icon\n\n\n\n\n\n重型巡洋舰有着防护巡洋舰发展而来的大型化舰体并且通常配备了8英寸主炮和不错的装甲。这些舰船被设计为长程护航舰或破袭舰在有些时候还可以依靠比战列舰快得多的航速担任舰队的前卫。部分国家发展了这种巡洋舰并将其作为巡洋舰部队的核心。"
damaged_bb_flight_deck: "甲板受损"
support_ship: "勤务舰"
support_ship_desc: "一类负责舰队日常事务和杂役的舰船。"

Some files were not shown because too many files have changed in this diff Show More