diff --git a/src/common/ai_navy/_documentation.md b/src/common/ai_navy/_documentation.md new file mode 100755 index 0000000..825399f --- /dev/null +++ b/src/common/ai_navy/_documentation.md @@ -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. diff --git a/src/common/ai_navy/fleet/generic_fleet_templates.txt b/src/common/ai_navy/fleet/generic_fleet_templates.txt new file mode 100755 index 0000000..b91fc32 --- /dev/null +++ b/src/common/ai_navy/fleet/generic_fleet_templates.txt @@ -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 + } +} diff --git a/src/common/ai_navy/goals/goals_generic.txt b/src/common/ai_navy/goals/goals_generic.txt new file mode 100755 index 0000000..aad42fc --- /dev/null +++ b/src/common/ai_navy/goals/goals_generic.txt @@ -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 +} \ No newline at end of file diff --git a/src/common/ai_navy/taskforce/_documentation.md b/src/common/ai_navy/taskforce/_documentation.md new file mode 100755 index 0000000..d282159 --- /dev/null +++ b/src/common/ai_navy/taskforce/_documentation.md @@ -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 + } +} +``` diff --git a/src/common/ai_navy/taskforce/generic_taskforce_templates.txt b/src/common/ai_navy/taskforce/generic_taskforce_templates.txt new file mode 100755 index 0000000..e676914 --- /dev/null +++ b/src/common/ai_navy/taskforce/generic_taskforce_templates.txt @@ -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 + } + } +} diff --git a/src/common/ai_strategy/naval_production.txt b/src/common/ai_strategy/naval_production.txt index 2a4364e..cbc548b 100755 --- a/src/common/ai_strategy/naval_production.txt +++ b/src/common/ai_strategy/naval_production.txt @@ -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 diff --git a/src/common/ai_strategy/vnr_naval_strategy.txt b/src/common/ai_strategy/vnr_naval_strategy.txt index 9124dfb..8258594 100755 --- a/src/common/ai_strategy/vnr_naval_strategy.txt +++ b/src/common/ai_strategy/vnr_naval_strategy.txt @@ -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 + } } \ No newline at end of file diff --git a/src/common/defines/VNR_naval_defines.lua b/src/common/defines/VNR_naval_defines.lua index ef5db06..20a1752 100755 --- a/src/common/defines/VNR_naval_defines.lua +++ b/src/common/defines/VNR_naval_defines.lua @@ -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; diff --git a/src/common/doctrines/_documentation.md b/src/common/doctrines/_documentation.md new file mode 100755 index 0000000..189d147 --- /dev/null +++ b/src/common/doctrines/_documentation.md @@ -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 +``` diff --git a/src/common/doctrines/grand_doctrines/_documentation.md b/src/common/doctrines/grand_doctrines/_documentation.md new file mode 100755 index 0000000..c2f6168 --- /dev/null +++ b/src/common/doctrines/grand_doctrines/_documentation.md @@ -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] + } +} +``` diff --git a/src/common/doctrines/grand_doctrines/sea_grand_doctrines.txt b/src/common/doctrines/grand_doctrines/sea_grand_doctrines.txt new file mode 100755 index 0000000..d4e6960 --- /dev/null +++ b/src/common/doctrines/grand_doctrines/sea_grand_doctrines.txt @@ -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 } + } + } + } + } +} \ No newline at end of file diff --git a/src/common/doctrines/subdoctrines/_documentation.md b/src/common/doctrines/subdoctrines/_documentation.md new file mode 100755 index 0000000..49edd99 --- /dev/null +++ b/src/common/doctrines/subdoctrines/_documentation.md @@ -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 + } + } +} +``` \ No newline at end of file diff --git a/src/common/doctrines/subdoctrines/sea/navy_capital_subdoctrines.txt b/src/common/doctrines/subdoctrines/sea/navy_capital_subdoctrines.txt new file mode 100755 index 0000000..6c94e83 --- /dev/null +++ b/src/common/doctrines/subdoctrines/sea/navy_capital_subdoctrines.txt @@ -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 + } + } + } +} + + + diff --git a/src/common/doctrines/subdoctrines/sea/navy_carrier_doctrines.txt b/src/common/doctrines/subdoctrines/sea/navy_carrier_doctrines.txt new file mode 100755 index 0000000..06de0fc --- /dev/null +++ b/src/common/doctrines/subdoctrines/sea/navy_carrier_doctrines.txt @@ -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 + } + } + +} diff --git a/src/common/doctrines/subdoctrines/sea/navy_screen_doctrines.txt b/src/common/doctrines/subdoctrines/sea/navy_screen_doctrines.txt new file mode 100755 index 0000000..37a3f0f --- /dev/null +++ b/src/common/doctrines/subdoctrines/sea/navy_screen_doctrines.txt @@ -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 + } + } + } +} \ No newline at end of file diff --git a/src/common/doctrines/subdoctrines/sea/navy_submarine_doctrines.txt b/src/common/doctrines/subdoctrines/sea/navy_submarine_doctrines.txt new file mode 100755 index 0000000..d97f388 --- /dev/null +++ b/src/common/doctrines/subdoctrines/sea/navy_submarine_doctrines.txt @@ -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 + } +} diff --git a/src/common/doctrines/tracks/_documentation.md b/src/common/doctrines/tracks/_documentation.md new file mode 100755 index 0000000..40d6c47 --- /dev/null +++ b/src/common/doctrines/tracks/_documentation.md @@ -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 + } + } +} +``` \ No newline at end of file diff --git a/src/common/doctrines/tracks/sea_doctrine_tracks.txt b/src/common/doctrines/tracks/sea_doctrine_tracks.txt new file mode 100755 index 0000000..4736acb --- /dev/null +++ b/src/common/doctrines/tracks/sea_doctrine_tracks.txt @@ -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 + } + } +} diff --git a/src/common/ideas/navy_spirits.txt b/src/common/ideas/navy_spirits.txt new file mode 100755 index 0000000..a437046 --- /dev/null +++ b/src/common/ideas/navy_spirits.txt @@ -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 + } + } + } +} diff --git a/src/common/ideas/vnr_navy_spirits.txt b/src/common/ideas/vnr_navy_spirits.txt deleted file mode 100755 index 43897be..0000000 --- a/src/common/ideas/vnr_navy_spirits.txt +++ /dev/null @@ -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 - } - } - } -} \ No newline at end of file diff --git a/src/common/modifiers/z_vnr_combat_modifiers.txt b/src/common/modifiers/z_vnr_combat_modifiers.txt index e0ddc5b..fc5fb64 100755 --- a/src/common/modifiers/z_vnr_combat_modifiers.txt +++ b/src/common/modifiers/z_vnr_combat_modifiers.txt @@ -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 } \ No newline at end of file diff --git a/src/common/scripted_effects/_add_naval_variants.txt b/src/common/scripted_effects/_add_naval_variants.txt index dcb9dbb..258864d 100755 --- a/src/common/scripted_effects/_add_naval_variants.txt +++ b/src/common/scripted_effects/_add_naval_variants.txt @@ -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 diff --git a/src/common/scripted_effects/_add_starting_tech.txt b/src/common/scripted_effects/_add_starting_tech.txt index 92c2be8..2f137f5 100755 --- a/src/common/scripted_effects/_add_starting_tech.txt +++ b/src/common/scripted_effects/_add_starting_tech.txt @@ -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 + } + } } } diff --git a/src/common/scripted_effects/_delete_starting_naval.txt b/src/common/scripted_effects/_delete_starting_naval.txt index abdd398..3eb35c3 100755 --- a/src/common/scripted_effects/_delete_starting_naval.txt +++ b/src/common/scripted_effects/_delete_starting_naval.txt @@ -31,4 +31,67 @@ special_project_workaround = { ITA = { 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 + } + } } \ No newline at end of file diff --git a/src/common/technologies/MTG_naval.txt b/src/common/technologies/MTG_naval.txt index 578d9c6..6b8a216 100755 --- a/src/common/technologies/MTG_naval.txt +++ b/src/common/technologies/MTG_naval.txt @@ -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 diff --git a/src/common/technologies/MTG_naval_Support.txt b/src/common/technologies/MTG_naval_Support.txt index 421e432..98b1d9d 100755 --- a/src/common/technologies/MTG_naval_Support.txt +++ b/src/common/technologies/MTG_naval_Support.txt @@ -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 diff --git a/src/common/technologies/naval_doctrine.txt b/src/common/technologies/naval_doctrine.txt deleted file mode 100755 index 260fab1..0000000 --- a/src/common/technologies/naval_doctrine.txt +++ /dev/null @@ -1,3435 +0,0 @@ -technologies = { - - fleet_in_being = { - doctrine_name = "TITLE_FLEET_IN_BEING" - - #Fleet in being is mainly focused on Battleships (and Battlecrusiers/Heavy cruisers) and ASW with carriers and submarines being used to a lesser extent. The fleet may not have to do anything at all to be useful - simply having a powerful fleet in a protected port forces your enemies to keep a fleet of their own nearby in order you fight you if you emerge - #Bonus org for BB/BC/CA - - # EFFECT ############# - SH_battleship = { - max_organisation = 5 - } - battleship = { - max_organisation = 5 - } - battle_cruiser = { - max_organisation = 5 - } - ##! armored_cruiser = { - ##! max_organisation = 5 - ##! } - heavy_cruiser = { - max_organisation = 5 - } - medium_cruiser = { - max_organisation = 5 - } - light_cruiser = { - surface_detection = 0.10 - } - destroyer = { - surface_detection = 0.10 - } - mines_planting_by_fleets_factor = 0.1 - ##### - - xor = { trade_interdiction base_strike } - - path = { - leads_to_tech = battlefleet_concentration - research_cost_coeff = 1 - } - - path = { - leads_to_tech = convoy_sailing - research_cost_coeff = 1 - } - - path = { - leads_to_tech = submarine_operations - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 0 y = 0 } - } - - ai_will_do = { - factor = 2 - modifier = { - factor = 5 - has_war = yes - } - modifier = { - factor = 2 - has_navy_experience > 120 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - cruiser = 1.0 - } - } - - battlefleet_concentration = { - # EFFECT ############# - SH_battleship = { - max_organisation = 10 - } - battleship = { - max_organisation = 10 - } - battle_cruiser = { - max_organisation = 10 - } - ##! armored_cruiser = { - ##! max_organisation = 10 - ##! } - heavy_cruiser = { - max_organisation = 10 - } - medium_cruiser = { - max_organisation = 10 - } - strike_force_movement_org_loss = -0.1 - positioning = 0.2 - ######## - dependencies = { - basic_ship_hull_heavy = 1 - basic_ship_hull_cruiser = 1 - } - - path = { - leads_to_tech = fast_battleship_primacy - research_cost_coeff = 1 - } - path = { - leads_to_tech = scouting_fleet_primacy - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = -2 y = 2 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - cruiser = 1.5 - } - } - - fast_battleship_primacy = { - # EFFECT ############# - SH_battleship = { - naval_speed = 0.05 - max_organisation = 10 - } - battleship = { - naval_speed = 0.05 - max_organisation = 10 - } - positioning = 0.1 - strike_force_movement_org_loss = -0.1 - ######## - path = { - leads_to_tech = hunter_killer_groups - research_cost_coeff = 1 - } - - dependencies = { - fuel_oil_boiler = 1 - improved_conning_tower = 1 - } - - xor = { scouting_fleet_primacy } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 4 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - cruiser = 1.5 - } - } - - scouting_fleet_primacy = { - # EFFECT ############# - battle_cruiser = { - max_organisation = 10 - surface_detection = 0.05 - } - ##! armored_cruiser = { - ##! surface_detection = 0.05 - ##! } - heavy_cruiser = { - surface_detection = 0.05 - } - medium_cruiser = { - surface_detection = 0.05 - } - SH_battleship = { - max_organisation = 5 - } - battleship = { - max_organisation = 5 - } - spotting_chance = 0.1 - ######## - path = { - leads_to_tech = torpedo_groups - research_cost_coeff = 1 - } - - xor = { fast_battleship_primacy } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 4 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - cruiser = 1.5 - } - } - - hunter_killer_groups = { - #Groups of Destroyers (and CVEs should those ever be added) formed to hunt down enemy subs - - # EFFECT ############# - destroyer = { - max_organisation = 5 - sub_detection = 0.1 - sub_attack = 0.1 - } - light_cruiser = { - max_organisation = 5 - sub_detection = 0.1 - sub_attack = 0.1 - } - - convoy_escort_efficiency = 0.1 - ######## - - path = { - leads_to_tech = subsidiary_carrier_role - research_cost_coeff = 1 - } - - dependencies = { - acoustic_signature = 1 - sonar = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 6 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.5 - cruiser = 1.0 - } - } - - torpedo_groups = { - #Groups of Destroyers and Torpedo Ships formed to disturb enemy fleet formation - - # EFFECT ############# - destroyer = { - max_organisation = 10 - } - light_cruiser = { - max_organisation = 10 - } - - naval_torpedo_cooldown_factor = -0.125 - ######## - - path = { - leads_to_tech = subsidiary_carrier_role - research_cost_coeff = 1 - } - - dependencies = { - improved_ship_torpedo_launcher = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 6 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.5 - cruiser = 1.0 - } - } - - subsidiary_carrier_role = { - #Carriers support the Battleships - - # EFFECT ############# - carrier = { - max_organisation = 10 - } - sortie_efficiency = 0.1 - ######## - - path = { - leads_to_tech = decisive_battle - research_cost_coeff = 1 - } - - dependencies = { - improved_ship_hull_carrier = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = -2 y = 8 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - carrier = 1.5 - naval_air = 0.75 - } - on_research_complete = { - add_vnr_exp_traits = yes - } - } - - decisive_battle = { - allow = { - has_navy_size = { - type = capital_ship - size > 34 - } - } - #Large, powerful gun armed ships are clearly the best ships - - # EFFECT ############# - battleship = { - max_organisation = 20 - } - SH_battleship = { - max_organisation = 20 - } - heavy_cruiser = { - max_organisation = 20 - } - medium_cruiser = { - max_organisation = 20 - } - ##! armored_cruiser = { - ##! max_organisation = 20 - ##! } - - ships_at_battle_start = 0.1 - positioning = 0.1 - - ######## - - path = { - leads_to_tech = floating_airfield - research_cost_coeff = 1 - } - path = { - leads_to_tech = grand_battlefleet - research_cost_coeff = 1 - } - - dependencies = { - improved_ship_hull_heavy = 1 - improved_ship_hull_cruiser = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = -2 y = 10 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 2.0 - } - } - - floating_airfield = { - #Non base strike trees get a late CV booster - - # EFFECT ############# - carrier = { - max_organisation = 20 - } - sortie_efficiency = 0.2 - ######## - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - dependencies = { - advanced_ship_hull_carrier = 1 - } - - categories = { - naval_doctrine - fleet_in_being_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 1 y = 12 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 2.0 - naval_air = 0.75 - } - } - - grand_battlefleet = { - #Top tech for the Battlefleet tree. - - # EFFECT ############# - battleship = { - max_organisation = 20 - } - - battle_cruiser = { - max_organisation = 20 - } - - ##! armored_cruiser = { - ##! max_organisation = 20 - ##! } - - heavy_cruiser = { - max_organisation = 20 - } - - medium_cruiser = { - max_organisation = 20 - } - - SH_battleship = { - max_organisation = 20 - } - - dependencies = { - advanced_ship_hull_heavy = 1 - advanced_ship_hull_cruiser = 1 - } - - navy_anti_air_attack_factor = 0.10 - navy_capital_ship_attack_factor = 0.1 - strike_force_movement_org_loss = -0.1 - positioning = 0.1 - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 12 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 2.0 - } - on_research_complete = { - add_vnr_exp_traits = yes - } - } - - convoy_sailing = { - #Convoy escort/ ASW branch - - # EFFECT ############# - destroyer = { - max_organisation = 5 - sub_detection = 0.05 - naval_range = 0.1 - } - convoy_retreat_speed = 0.1 - convoy_escort_efficiency = 0.05 - ##### - - path = { - leads_to_tech = armed_merchantmen - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - convoy_defense_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 1 y = 2 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - naval_equipment = 1.0 - } - } - - armed_merchantmen = { - #Armed Merchantmen - - # EFFECT ############# - auxiliary_ship = { - max_organisation = 20 - sub_detection = 0.1 - } - navy_submarine_detection_factor = 0.1 - convoy_escort_efficiency = 0.05 - ##### - - path = { - leads_to_tech = convoy_escorts - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - convoy_defense_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 1 y = 4 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - naval_equipment = 1.0 - } - } - - convoy_escorts = { - #Assigning dedicated convoy escorts to keep them safe - - # EFFECT ############# - destroyer = { - max_organisation = 5 - sub_detection = 0.05 - } - convoy_escort_efficiency = 0.1 - ##### - - path = { - leads_to_tech = escort_carriers - research_cost_coeff = 1 - } - - dependencies = { - escort_destroyer_trend = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - convoy_defense_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 1 y = 6 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.5 - naval_equipment = 1.0 - } - } - - escort_carriers = { - #Small carriers/converted merchant ships sail with convoys for increased defense against subs and raiders - - # EFFECT ############# - carrier = { - sub_detection = 0.2 - } - convoy_escort_efficiency = 0.1 - #### - - path = { - leads_to_tech = integrated_convoy_defence - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - dependencies = { - escort_carriers_ship = 1 - } - - categories = { - naval_doctrine - fleet_in_being_tree - convoy_defense_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 1 y = 8 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - naval_equipment = 1.5 - } - } - - integrated_convoy_defence = { - #The top convoy tech, basically now all the earlier concepts are working well with each other for maximum effect - - # EFFECT ############# - destroyer = { - max_organisation = 5 - sub_detection = 0.1 - } - light_cruiser = { - max_organisation = 10 - sub_detection = 0.1 - } - carrier = { - sub_detection = 0.2 - } - convoy_escort_efficiency = 0.1 - ##### - - path = { - leads_to_tech = floating_airfield - research_cost_coeff = 1 - } - path = { - leads_to_tech = grand_battlefleet - research_cost_coeff = 1 - } - - dependencies = { - improved_ship_hull_light = 1 - improved_sonar = 1 - improved_airplane_launcher = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - convoy_defense_tree - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 1 y = 10 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - naval_equipment = 1.0 - } - } - - submarine_operations = { - # Basic sub-boosting tree, not as good as Trade Interdiction's - - # EFFECT ############## - submarine = { - max_organisation = 10 - } - naval_torpedo_reveal_chance_factor = -0.05 - ####### - - path = { - leads_to_tech = undersea_blockade - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - submarine_doctrine - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 3 y = 2 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - undersea_blockade = { - # Sub boost - - # EFFECT ############## - submarine = { - max_organisation = 10 - convoy_raiding_coordination = 0.1 - } - naval_torpedo_cooldown_factor = -0.125 - ####### - - path = { - leads_to_tech = submarine_picket - research_cost_coeff = 1 - } - - dependencies = { - basic_ship_hull_submarine = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - submarine_doctrine - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 3 y = 4 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - submarine_picket = { - # Sub boost - - # EFFECT ############## - submarine = { - surface_detection = 0.1 - naval_torpedo_hit_chance_factor = 0.05 - } - night_spotting_chance = 0.1 - ####### - - path = { - leads_to_tech = convoy_interdiction - research_cost_coeff = 1 - } - - dependencies = { - advanced_periscope = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - submarine_doctrine - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 3 y = 6 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - convoy_interdiction = { - # Sub boost - # EFFECT ############## - submarine = { - max_organisation = 10 - convoy_raiding_coordination = 0.1 - } - naval_torpedo_reveal_chance_factor = -0.10 - ####### - - path = { - leads_to_tech = submarine_offensive - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - fleet_in_being_tree - submarine_doctrine - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 3 y = 8 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - submarine_offensive = { - # Sub boost - # EFFECT ############## - submarine = { - max_organisation = 10 - surface_detection = 0.05 - torpedo_attack = 0.1 - } - ####### - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - dependencies = { - advanced_ship_hull_submarine = 1 - } - - categories = { - naval_doctrine - fleet_in_being_tree - submarine_doctrine - cat_fleet_in_being - } - - folder = { - name = naval_doctrine_folder - position = { x = 3 y = 10 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - trade_interdiction = { - doctrine_name = "TITLE_TRADE_INTERDICTION" - - # This tree is focused on sinking convoys, and boosting Subs and all types of Cruiser. It has some boosts for CVs and Battleships, but the CVs should be a bit worse and the BBs a lot worse than Fleet in being's. - - # EFFECT ############## - submarine = { - max_organisation = 10 - surface_detection = 0.05 - } - - light_cruiser = { - max_organisation = 10 - surface_detection = 0.05 - } - - heavy_cruiser = { - max_organisation = 10 - surface_detection = 0.05 - } - - medium_cruiser = { - max_organisation = 10 - surface_detection = 0.05 - } - ####### - - xor = { fleet_in_being base_strike } - - path = { - leads_to_tech = coastal_operations - research_cost_coeff = 1 - } - path = { - leads_to_tech = convoy_interdiction_ti - research_cost_coeff = 1 - } - - path = { - leads_to_tech = raider_patrols - research_cost_coeff = 1 - } - - path = { - leads_to_tech = adjacent_projection - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - submarine_doctrine - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = 0 y = 0 } - } - - ai_will_do = { - factor = 1 - modifier = { - factor = 5 - has_war = yes - } - modifier = { - factor = 2 - has_navy_experience > 120 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 1.0 - cruiser = 1.0 - } - } - - coastal_operations = { - - # use submarine to defend coastline - # EFFECT ############## - submarine = { - max_organisation = 10 - surface_detection = 0.1 - } - naval_torpedo_reveal_chance_factor = -0.10 - naval_torpedo_cooldown_factor = -0.125 - ####### - - path = { - leads_to_tech = ambush_tactics - research_cost_coeff = 1 - } - - dependencies = { - midget_submarines = 1 - } - - xor = { convoy_interdiction_ti } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - submarine_doctrine - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = 1 y = 2 } - } - - ai_will_do = { - factor = 0 - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - convoy_interdiction_ti = { - - # same as convoy interdiction - # EFFECT ############## - submarine = { - max_organisation = 10 - surface_detection = 0.05 - convoy_raiding_coordination = 0.1 - } - naval_torpedo_cooldown_factor = -0.125 - ####### - - path = { - leads_to_tech = unrestricted_submarine_warfare - research_cost_coeff = 1 - } - - xor = { coastal_operations } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - submarine_doctrine - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = 3 y = 2 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - ambush_tactics = { - #Nice bonus for subs vs fleet - - # EFFECT ############## - submarine = { - max_organisation = 10 - sub_visibility = -0.05 - naval_torpedo_hit_chance_factor = 0.1 - } - mines_planting_by_fleets_factor = 0.15 - ####### - - path = { - leads_to_tech = wolfpacks - research_cost_coeff = 1 - } - - dependencies = { - electric_torpedo = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - submarine_doctrine - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = 1 y = 6 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - unrestricted_submarine_warfare = { - #Nice bonus for subs vs convoys - - # EFFECT ############## - submarine = { - surface_detection = 0.05 - convoy_raiding_coordination = 0.1 - } - navy_submarine_attack_factor = 0.1 - ####### - - path = { - leads_to_tech = tonnage_war - research_cost_coeff = 1 - } - - dependencies = { - basic_ship_hull_submarine = 1 - acoustic_signature = 1 - improved_periscope = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - submarine_doctrine - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = 3 y = 4 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - tonnage_war = { - - # EFFECT ############## - submarine = { - max_organisation = 10 - naval_range = 0.3 - fuel_consumption = -0.25 - } - naval_torpedo_cooldown_factor = -0.25 - ####### - - path = { - leads_to_tech = wolfpacks - research_cost_coeff = 1 - } - - dependencies = { - improved_ship_hull_submarine = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - submarine_doctrine - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = 3 y = 6 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - wolfpacks = { - # More sub bonuses - subs operate in groups to sink convoys - - # EFFECT ############## - submarine = { - max_organisation = 10 - convoy_raiding_coordination = 0.15 - surface_detection = 0.10 - } - night_spotting_chance = 0.1 - sub_retreat_speed = 0.15 - naval_torpedo_reveal_chance_factor = -0.10 - ####### - - path = { - leads_to_tech = advanced_submarine_warfare - research_cost_coeff = 1 - } - - dependencies = { - advanced_periscope = 1 - advanced_ship_torpedo_launcher = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - submarine_doctrine - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = 2 y = 8 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - on_research_complete = { - add_vnr_exp_traits = yes - } - } - - advanced_submarine_warfare = { - # More sub bonuses - subs are deployed in numbers and the navy is better at putting them in the right places - - # EFFECT ############## - submarine = { - max_organisation = 10 - convoy_raiding_coordination = 0.2 - } - navy_submarine_attack_factor = 0.1 - navy_submarine_defence_factor = 0.1 - - path = { - leads_to_tech = combined_operations_raiding - research_cost_coeff = 1 - } - - dependencies = { - basic_submarine_snorkel = 1 - advanced_torpedo_ballistics = 1 - submarine_mass_production = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - submarine_doctrine - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = 2 y = 10 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - combined_operations_raiding = { - #top raiding idea - subs and surface raiders act in harmony to destroy convoys - # EFFECT ############## - submarine = { - max_organisation = 10 - convoy_raiding_coordination = 0.15 - surface_detection = 0.1 - } - - light_cruiser = { - max_organisation = 10 - convoy_raiding_coordination = 0.15 - surface_detection = 0.15 - } - - heavy_cruiser = { - max_organisation = 10 - convoy_raiding_coordination = 0.15 - surface_detection = 0.15 - } - medium_cruiser = { - max_organisation = 10 - convoy_raiding_coordination = 0.15 - surface_detection = 0.15 - } - - ##! armored_cruiser = { - ##! max_organisation = 10 - ##! convoy_raiding_coordination = 0.15 - ##! surface_detection = 0.15 - ##! } - - battle_cruiser = { - max_organisation = 10 - convoy_raiding_coordination = 0.15 - surface_detection = 0.15 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - dependencies = { - naval_radio_guiding_system = 1 - advanced_ship_hull_submarine = 1 - } - - categories = { - naval_doctrine - trade_interdiction_tree - submarine_doctrine - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = 1 y = 12 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - cruiser = 1.5 - submarine = 1.0 - } - on_research_complete = { - add_vnr_exp_traits = yes - } - } - - raider_patrols = { - #Surface raiding Branch + some boosts for Battleships - - # EFFECT ############## - light_cruiser = { - max_organisation = 10 - convoy_raiding_coordination = 0.1 - surface_detection = 0.10 - } - - heavy_cruiser = { - max_organisation = 10 - convoy_raiding_coordination = 0.1 - surface_detection = 0.10 - } - medium_cruiser = { - max_organisation = 10 - convoy_raiding_coordination = 0.1 - surface_detection = 0.10 - } - ####### - - path = { - leads_to_tech = capital_ship_raiders - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 2 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - cruiser = 1.5 - battleship = 1.0 - } - } - - capital_ship_raiders = { - #Battleships/Battlecrusiers are used as raiders rather than in the line of battle in a fleet - - # EFFECT ############## - battle_cruiser = { - max_organisation = 10 - convoy_raiding_coordination = 0.15 - surface_detection = 0.15 - } - - battleship = { - max_organisation = 10 - convoy_raiding_coordination = 0.1 - surface_detection = 0.15 - } - - ##! armored_cruiser = { - ##! max_organisation = 10 - ##! convoy_raiding_coordination = 0.15 - ##! surface_detection = 0.15 - ##! } - - screening_without_screens = 0.1 - ####### - - path = { - leads_to_tech = guerrilla_tactics - research_cost_coeff = 1 - } - - dependencies = { - interwar_ship_hull_heavy = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 4 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - cruiser = 1.0 - } - } - - guerrilla_tactics = { - #Bonus retreat speed - - # EFFECT ############## - battle_cruiser = { - surface_visibility = -0.1 - } - - battleship = { - surface_visibility = -0.1 - } - - heavy_cruiser = { - surface_visibility = -0.1 - } - - medium_cruiser = { - surface_visibility = -0.1 - } - - ##! armored_cruiser = { - ##! surface_visibility = -0.1 - ##! } - - submarine = { - sub_visibility = -0.1 - } - - naval_retreat_speed = 0.1 - naval_retreat_chance_after_initial_combat = 0.35 - ####### - - path = { - leads_to_tech = battlefleet_concentration_ti - research_cost_coeff = 1 - } - - dependencies = { - cruiser_gun_upgrade = 1 - large_destroyer_trend = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 6 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - cruiser = 1.0 - } - } - - battlefleet_concentration_ti = { - - #same as battlefleet_concentration - # EFFECT ############# - SH_battleship = { - max_organisation = 10 - } - battleship = { - max_organisation = 10 - } - battle_cruiser = { - max_organisation = 10 - } - ##! armored_cruiser = { - ##! max_organisation = 10 - ##! } - heavy_cruiser = { - max_organisation = 10 - } - medium_cruiser = { - max_organisation = 10 - } - strike_force_movement_org_loss = -0.1 - positioning = 0.2 - ######## - - path = { - leads_to_tech = floating_fortress_ti - research_cost_coeff = 1 - } - - dependencies = { - improved_ship_hull_heavy = 1 - improved_ship_hull_cruiser = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 8 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 2.0 - } - } - - floating_fortress_ti = { - - #same as floating_fortress - # EFFECT ############# - SH_battleship = { - max_organisation = 20 - } - battleship = { - max_organisation = 20 - } - navy_capital_ship_defence_factor = 0.10 - ######## - - path = { - leads_to_tech = floating_airfield_ti - research_cost_coeff = 1 - } - path = { - leads_to_tech = combined_operations_raiding - research_cost_coeff = 1 - } - - dependencies = { - homogeneous_krupp_steel = 1 - advanced_heavy_armor = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 10 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 2.0 - } - } - - floating_airfield_ti = { - - #same as floating_airfield - # EFFECT ############# - carrier = { - max_organisation = 20 - } - sortie_efficiency = 0.2 - ######## - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - dependencies = { - advanced_ship_hull_carrier = 1 - } - - categories = { - naval_doctrine - trade_interdiction_tree - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = -2 y = 12 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 2.0 - naval_air = 0.75 - } - } - - adjacent_projection = { - # defend our backyard - - # EFFECT ############# - destroyer = { - max_organisation = 5 - max_strength = 0.1 - } - light_cruiser = { - max_organisation = 5 - max_strength = 0.1 - } - naval_mines_damage_factor = 0.1 - ######## - - path = { - leads_to_tech = convoy_sailing_ti - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 2 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_navy_size = { - type = carrier - size < 1 - } - factor = 0 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 2.0 - naval_air = 0.75 - } - } - - convoy_sailing_ti = { - - #same as convoy_sailing - # EFFECT ############# - destroyer = { - max_organisation = 5 - naval_range = 0.1 - } - convoy_retreat_speed = 0.1 - convoy_escort_efficiency = 0.1 - ##### - - path = { - leads_to_tech = naval_concealment - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - convoy_defense_tree - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 4 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - naval_equipment = 1.0 - } - } - - naval_concealment = { - - # EFFECT ############# - destroyer = { - max_organisation = 10 - surface_visibility = -0.05 - } - light_cruiser = { - max_organisation = 10 - surface_visibility = -0.1 - } - naval_night_attack = 0.1 - naval_enemy_fleet_size_ratio_penalty_factor = 0.15 - ##### - - path = { - leads_to_tech = subsidiary_carrier_role_ti - research_cost_coeff = 1 - } - - dependencies = { - improved_ship_hull_light = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - convoy_defense_tree - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 6 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - naval_equipment = 1.0 - } - } - - subsidiary_carrier_role_ti = { - - #same as subsidiary_carrier_role - # EFFECT ############# - carrier = { - max_organisation = 10 - } - sortie_efficiency = 0.1 - ######## - - path = { - leads_to_tech = naval_air_operations - research_cost_coeff = 1 - } - - dependencies = { - improved_ship_hull_carrier = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 8 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 2.0 - naval_air = 0.75 - } - } - - naval_air_operations = { - # slightly improved CV operation - - # EFFECT ############# - carrier = { - max_organisation = 10 - } - modifier = { - naval_strike_targetting_factor = 0.1 - } - ######## - - path = { - leads_to_tech = floating_airfield_ti - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 85 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - trade_interdiction_tree - cat_trade_interdiction - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 10 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 2.0 - naval_air = 0.75 - } - } - - base_strike = { - doctrine_name = "TITLE_BASE_STRIKE" - - #This tree is primarily focused on Carriers. It should have the best Carriers, Battleships that are better than Trade interdiction but worse than Fleet in being, and has the same Sub tree as FiB. Convoy defense is better than TI but worse than FiB - # EFFECT ############## - carrier = { - max_organisation = 5 - } - port_strike = 0.25 - ##### - - xor = { fleet_in_being trade_interdiction } - - path = { - leads_to_tech = carrier_primacy - research_cost_coeff = 1 - } - - path = { - leads_to_tech = submarine_operations_bs - research_cost_coeff = 1 - } - - path = { - leads_to_tech = convoy_escorts_bs - research_cost_coeff = 1 - } - - dependencies = { - aviation_dawn = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = 0 y = 0 } - } - - ai_will_do = { - factor = 1 - modifier = { - factor = 2 - has_war = yes - } - modifier = { - factor = 2 - has_navy_experience > 120 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 2.0 - naval_air = 0.75 - } - } - - carrier_primacy = { - #The idea that the carrier is the primary naval weapon and that other ships, even the BB, exist to support them - # EFFECT ############## - carrier = { - max_organisation = 10 - } - sortie_efficiency = 0.1 - - modifier = { - naval_strike_targetting_factor = 0.1 - } - ############# - - path = { - leads_to_tech = carrier_task_forces - research_cost_coeff = 1 - } - - path = { - leads_to_tech = naval_air_force - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - base_strike_main - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = 2 y = 2 } - } - - ai_will_do = { - factor = 1.25 - - modifier = { - has_war = yes - factor = 2 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 2.5 - naval_air = 1.0 - } - } - - carrier_task_forces = { - #Task forces are based around carrier flagship - # EFFECT ############## - carrier = { - max_organisation = 10 - surface_detection = 0.1 - } - battleship = { - max_organisation = 5 - anti_air_attack = 0.05 - } - battle_cruiser = { - max_organisation = 5 - anti_air_attack = 0.05 - } - heavy_cruiser = { - max_organisation = 10 - anti_air_attack = 0.05 - } - medium_cruiser = { - max_organisation = 10 - anti_air_attack = 0.05 - } - light_cruiser = { - max_organisation = 10 - surface_detection = 0.1 - } - strike_force_movement_org_loss = -0.1 - positioning = 0.1 - ########## - - path = { - leads_to_tech = frequent_air_raid - research_cost_coeff = 1 - } - - dependencies = { - cruiser_aa_upgrade = 1 - large_destroyer_trend = 1 - improved_ship_hull_carrier = 1 - } - - xor = { naval_air_force } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - base_strike_main - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = 1 y = 4 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 2 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 1.0 - naval_air = 0.75 - cruiser = 1.0 - } - } - - naval_air_force = { - #Ground based bombers - # EFFECT ############## - nav_bomber = { - air_range = 0.2 - } - cas = { - air_range = 0.2 - } - modifier = { - naval_strike_targetting_factor = 0.15 - naval_strike_attack_factor = 0.15 - } - ########## - path = { - leads_to_tech = mass_air_raid - research_cost_coeff = 1 - } - - xor = { carrier_task_forces } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - base_strike_main - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = 3 y = 4 } - } - - ai_will_do = { - factor = 0 - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 1.0 - naval_air = 0.75 - cruiser = 1.0 - } - } - - frequent_air_raid = { - - # EFFECT ############# - carrier = { - anti_air_attack = 0.1 - surface_visibility = -0.1 - surface_detection = 0.1 - } - navy_carrier_air_attack_factor = 0.1 - sortie_efficiency = 0.1 - ######## - - path = { - leads_to_tech = floating_fortress_bs - research_cost_coeff = 1 - } - - dependencies = { - dive_bomber_study = 1 - air_fuel_storage = 1 - folding_wing = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - base_strike_main - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = 1 y = 6 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 2 - } - modifier = { - has_navy_experience > 120 - factor = 4 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 2.0 - naval_air = 0.75 - } - } - - mass_air_raid = { - - # EFFECT ############# - naval_strike_targetting_factor = 0.15 - naval_strike_attack_factor = 0.15 - port_strike = 0.35 - ######## - - path = { - leads_to_tech = floating_fortress_bs - research_cost_coeff = 1 - } - - dependencies = { - armor_piercing_bombs = 1 - air_torpedoe_2 = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - base_strike_main - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = 3 y = 6 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 2 - } - modifier = { - has_navy_experience > 120 - factor = 4 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 2.0 - naval_air = 0.75 - } - } - - floating_airfield_bs = { - - #same as floating_airfield - # EFFECT ############# - carrier = { - max_organisation = 20 - } - sortie_efficiency = 0.2 - ######## - - path = { - leads_to_tech = carrier_battlegroups - research_cost_coeff = 1 - } - path = { - leads_to_tech = flight_deck_management - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - base_strike_main - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = 2 y = 10 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 2 - } - modifier = { - has_navy_experience > 120 - factor = 4 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 2.0 - naval_air = 0.75 - } - } - - flight_deck_management = { - #CAGs are larger and more effort is made to have all planes arrive at the target at the same time, even when launched from multiple CVs - # EFFECT ############# - carrier = { - max_organisation = 10 - } - carrier_capacity_penalty_reduction = -0.2 - sortie_efficiency = 0.2 - - modifier = { - naval_strike_targetting_factor = 0.2 - } - ######## - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - dependencies = { - advanced_ship_hull_carrier = 1 - } - - categories = { - naval_doctrine - base_strike_main - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = 2 y = 12 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 2 - } - modifier = { - has_navy_experience > 120 - factor = 4 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 2.0 - naval_air = 0.75 - } - } - - floating_fortress_bs = { - - #same as floating_fortress - # EFFECT ############# - battle_cruiser = { - max_organisation = 20 - } - battleship = { - max_organisation = 20 - } - SH_battleship = { - max_organisation = 20 - } - navy_capital_ship_defence_factor = 0.10 - ######## - - path = { - leads_to_tech = floating_airfield_bs - research_cost_coeff = 1 - } - - dependencies = { - battleship_aa_upgrade = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - base_strike_main - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = 2 y = 8 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 2.0 - } - on_research_complete = { - add_vnr_exp_traits = yes - } - } - - carrier_battlegroups = { - #Larger carrier-lead fleets - - # EFFECT ############## - carrier = { - max_organisation = 20 - surface_detection = 0.1 - } - light_cruiser = { - max_organisation = 20 - surface_detection = 0.1 - } - heavy_cruiser = { - max_organisation = 10 - surface_detection = 0.1 - } - medium_cruiser = { - max_organisation = 10 - surface_detection = 0.1 - } - battle_cruiser = { - max_organisation = 10 - surface_detection = 0.1 - } - battleship = { - max_organisation = 10 - surface_detection = 0.1 - } - SH_battleship = { - max_organisation = 10 - surface_detection = 0.1 - } - - naval_critical_score_chance_factor = 0.10 - strike_force_movement_org_loss = -0.1 - positioning = 0.2 - - ########### - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - dependencies = { - advanced_ship_hull_carrier = 1 - advanced_ship_hull_heavy = 1 - advanced_ship_hull_cruiser = 1 - } - - categories = { - naval_doctrine - base_strike_main - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = 0 y = 12 } - } - - ai_will_do = { - factor = 1 - - modifier = { - has_war = yes - factor = 2 - } - modifier = { - has_navy_experience > 120 - factor = 4 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - carrier = 1.5 - naval_air = 0.75 - naval_equipment = 1.0 - } - on_research_complete = { - add_vnr_exp_traits = yes - } - } - - submarine_operations_bs = { - - # same as submarine_operations - # EFFECT ############## - submarine = { - max_organisation = 10 - } - naval_torpedo_reveal_chance_factor = -0.05 - ####### - - path = { - leads_to_tech = undersea_blockade_bs - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - cat_base_strike - submarine_doctrine - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 2 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - undersea_blockade_bs = { - - # same as undersea_blockade - # EFFECT ############## - submarine = { - max_organisation = 10 - convoy_raiding_coordination = 0.1 - } - naval_torpedo_cooldown_factor = -0.125 - ####### - - path = { - leads_to_tech = submarine_picket_bs - research_cost_coeff = 1 - } - - dependencies = { - basic_ship_hull_submarine = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - cat_base_strike - submarine_doctrine - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 4 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - submarine_picket_bs = { - # Sub boost - - # EFFECT ############## - submarine = { - surface_detection = 0.1 - naval_torpedo_hit_chance_factor = 0.05 - } - night_spotting_chance = 0.1 - ####### - - path = { - leads_to_tech = convoy_interdiction_bs - research_cost_coeff = 1 - } - - dependencies = { - advanced_periscope = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - cat_base_strike - submarine_doctrine - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 6 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - convoy_interdiction_bs = { - - # same as convoy_interdiction - # EFFECT ############## - submarine = { - max_organisation = 10 - convoy_raiding_coordination = 0.1 - } - naval_torpedo_reveal_chance_factor = -0.10 - ####### - - path = { - leads_to_tech = submarine_offensive_bs - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - cat_base_strike - submarine_doctrine - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 8 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - submarine_offensive_bs = { - # same as submarine_offensive - # EFFECT ############## - submarine = { - max_organisation = 10 - surface_detection = 0.05 - torpedo_attack = 0.10 - } - ####### - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - dependencies = { - advanced_ship_hull_submarine = 1 - } - - categories = { - naval_doctrine - cat_base_strike - submarine_doctrine - } - - folder = { - name = naval_doctrine_folder - position = { x = -3 y = 10 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - submarine = 2.0 - } - } - - convoy_escorts_bs = { - - #same as convoy_escorts - # EFFECT ############# - destroyer = { - max_organisation = 5 - sub_detection = 0.05 - } - convoy_escort_efficiency = 0.1 - ##### - - path = { - leads_to_tech = escort_patrols - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - convoy_defense_tree - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 2 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - naval_equipment = 1.0 - } - } - - escort_patrols = { - # Lesser version of hunter-killer groups - - # EFFECT ############## - destroyer = { - max_organisation = 5 - sub_detection = 0.05 - } - light_cruiser = { - max_organisation = 5 - sub_detection = 0.1 - } - - convoy_escort_efficiency = 0.05 - - path = { - leads_to_tech = convoy_sailing_bs - research_cost_coeff = 1 - } - - dependencies = { - escort_destroyer_trend = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - convoy_defense_tree - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 4 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - naval_equipment = 1.0 - } - } - - convoy_sailing_bs = { - - #same as convoy_sailing - # EFFECT ############# - destroyer = { - max_organisation = 5 - naval_range = 0.1 - } - convoy_retreat_speed = 0.1 - convoy_escort_efficiency = 0.05 - ##### - - path = { - leads_to_tech = integrated_convoy_defence_bs - research_cost_coeff = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - convoy_defense_tree - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 6 } - } - - ai_will_do = { - factor = 1 - modifier = { - has_war = yes - factor = 5 - } - modifier = { - has_navy_experience > 120 - factor = 2 - } - } - - ai_research_weights = { - naval_doctrine = -1.0 - battleship = 1.0 - naval_equipment = 1.0 - } - } - - integrated_convoy_defence_bs = { - - #same as integrated_convoy_defence - # EFFECT ############# - destroyer = { - max_organisation = 5 - sub_detection = 0.10 - } - light_cruiser = { - max_organisation = 5 - sub_detection = 0.15 - } - carrier = { - sub_detection = 0.25 - } - convoy_escort_efficiency = 0.1 - ##### - path = { - leads_to_tech = circle_formation - research_cost_coeff = 1 - } - - dependencies = { - escort_carriers_ship = 1 - improved_ship_hull_light = 1 - improved_sonar = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - convoy_defense_tree - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 8 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - naval_equipment = 1.0 - battleship = 1.0 - } - } - - circle_formation = { - - #same as integrated_convoy_defence - # EFFECT ############# - destroyer = { - max_organisation = 5 - } - light_cruiser = { - max_organisation = 5 - } - heavy_cruiser = { - max_organisation = 10 - } - medium_cruiser = { - max_organisation = 10 - } - ##! armored_cruiser = { - ##! max_organisation = 10 - ##! } - battle_cruiser = { - max_organisation = 10 - } - battleship = { - max_organisation = 10 - } - SH_battleship = { - max_organisation = 10 - } - navy_anti_air_attack_factor = 0.15 - positioning = 0.2 - ##### - path = { - leads_to_tech = carrier_battlegroups - research_cost_coeff = 1 - } - - dependencies = { - battleship_aa_upgrade = 1 - cruiser_aa_upgrade = 1 - } - - xp_research_type = navy - xp_unlock_cost = 100 - doctrine = yes - research_cost = 3 - - categories = { - naval_doctrine - convoy_defense_tree - cat_base_strike - } - - folder = { - name = naval_doctrine_folder - position = { x = -1 y = 10 } - } - - ai_will_do = { - factor = 1 - } - - ai_research_weights = { - naval_doctrine = -1.0 - naval_equipment = 1.0 - battleship = 1.0 - } - } -} diff --git a/src/common/terrain/00_terrain.txt b/src/common/terrain/00_terrain.txt index 220a681..9372e9e 100755 --- a/src/common/terrain/00_terrain.txt +++ b/src/common/terrain/00_terrain.txt @@ -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 } } diff --git a/src/common/unit_leader/_vnr_naval_skills.txt b/src/common/unit_leader/_vnr_naval_skills.txt index 2c42541..90e9db8 100755 --- a/src/common/unit_leader/_vnr_naval_skills.txt +++ b/src/common/unit_leader/_vnr_naval_skills.txt @@ -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 + } } } \ No newline at end of file diff --git a/src/common/units/a_auxiliary.txt b/src/common/units/a_auxiliary.txt index 875c03d..4ae67e0 100755 --- a/src/common/units/a_auxiliary.txt +++ b/src/common/units/a_auxiliary.txt @@ -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 } diff --git a/src/common/units/a_battlecarrier.txt b/src/common/units/a_battlecarrier.txt index 7da8c5f..396115c 100755 --- a/src/common/units/a_battlecarrier.txt +++ b/src/common/units/a_battlecarrier.txt @@ -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 } diff --git a/src/common/units/a_behemoth.txt b/src/common/units/a_behemoth.txt index 634b806..9ad477a 100755 --- a/src/common/units/a_behemoth.txt +++ b/src/common/units/a_behemoth.txt @@ -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 } diff --git a/src/common/units/a_medium_cruiser.txt b/src/common/units/a_medium_cruiser.txt index 4602732..0d7514f 100755 --- a/src/common/units/a_medium_cruiser.txt +++ b/src/common/units/a_medium_cruiser.txt @@ -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 } diff --git a/src/common/units/a_super_heavy_battleship.txt b/src/common/units/a_super_heavy_battleship.txt index 717fb00..fc2982c 100755 --- a/src/common/units/a_super_heavy_battleship.txt +++ b/src/common/units/a_super_heavy_battleship.txt @@ -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 } diff --git a/src/common/units/battlecruiser.txt b/src/common/units/battlecruiser.txt index f71004a..34d07a4 100755 --- a/src/common/units/battlecruiser.txt +++ b/src/common/units/battlecruiser.txt @@ -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 } diff --git a/src/common/units/battleship.txt b/src/common/units/battleship.txt index 54e37ec..6183a87 100755 --- a/src/common/units/battleship.txt +++ b/src/common/units/battleship.txt @@ -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 } diff --git a/src/common/units/carrier.txt b/src/common/units/carrier.txt index 38b408a..60bd94b 100755 --- a/src/common/units/carrier.txt +++ b/src/common/units/carrier.txt @@ -2,7 +2,7 @@ sub_units = { carrier = { sprite = carrier map_icon_category = ship - priority = 11 + priority = 12 active = yes type = { #capital_ship diff --git a/src/common/units/destroyer.txt b/src/common/units/destroyer.txt index 889d32b..3d6e200 100755 --- a/src/common/units/destroyer.txt +++ b/src/common/units/destroyer.txt @@ -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 } diff --git a/src/common/units/equipment/modules/00_ship_modules_aviation.txt b/src/common/units/equipment/modules/00_ship_modules_aviation.txt index e2d10f8..9cdd056 100755 --- a/src/common/units/equipment/modules/00_ship_modules_aviation.txt +++ b/src/common/units/equipment/modules/00_ship_modules_aviation.txt @@ -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 diff --git a/src/common/units/equipment/modules/00_ship_modules_electronics.txt b/src/common/units/equipment/modules/00_ship_modules_electronics.txt index ee33e55..3f03511 100755 --- a/src/common/units/equipment/modules/00_ship_modules_electronics.txt +++ b/src/common/units/equipment/modules/00_ship_modules_electronics.txt @@ -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 diff --git a/src/common/units/equipment/modules/00_ship_modules_support.txt b/src/common/units/equipment/modules/00_ship_modules_support.txt index 120ac45..7a46edc 100755 --- a/src/common/units/equipment/modules/00_ship_modules_support.txt +++ b/src/common/units/equipment/modules/00_ship_modules_support.txt @@ -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 diff --git a/src/common/units/equipment/ocean_liner.txt b/src/common/units/equipment/ocean_liner.txt index 7896a39..273d541 100755 --- a/src/common/units/equipment/ocean_liner.txt +++ b/src/common/units/equipment/ocean_liner.txt @@ -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 } } \ No newline at end of file diff --git a/src/common/units/equipment/repair_ships.txt b/src/common/units/equipment/repair_ships.txt new file mode 100755 index 0000000..46e15ae --- /dev/null +++ b/src/common/units/equipment/repair_ships.txt @@ -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 + } +} \ No newline at end of file diff --git a/src/common/units/equipment/ship_hull_carrier.txt b/src/common/units/equipment/ship_hull_carrier.txt index a2d16a5..b6885e9 100755 --- a/src/common/units/equipment/ship_hull_carrier.txt +++ b/src/common/units/equipment/ship_hull_carrier.txt @@ -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 } } diff --git a/src/common/units/equipment/ship_hull_civilian.txt b/src/common/units/equipment/ship_hull_civilian.txt index 95d5ae3..a7eef07 100755 --- a/src/common/units/equipment/ship_hull_civilian.txt +++ b/src/common/units/equipment/ship_hull_civilian.txt @@ -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 } } \ No newline at end of file diff --git a/src/common/units/equipment/ship_hull_cruiser.txt b/src/common/units/equipment/ship_hull_cruiser.txt index c992601..4087112 100755 --- a/src/common/units/equipment/ship_hull_cruiser.txt +++ b/src/common/units/equipment/ship_hull_cruiser.txt @@ -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 } } diff --git a/src/common/units/equipment/ship_hull_heavy.txt b/src/common/units/equipment/ship_hull_heavy.txt index ddcd984..2763c0a 100755 --- a/src/common/units/equipment/ship_hull_heavy.txt +++ b/src/common/units/equipment/ship_hull_heavy.txt @@ -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 } } \ No newline at end of file diff --git a/src/common/units/equipment/ship_hull_light.txt b/src/common/units/equipment/ship_hull_light.txt index 401e1a1..0ef8ae6 100755 --- a/src/common/units/equipment/ship_hull_light.txt +++ b/src/common/units/equipment/ship_hull_light.txt @@ -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 } } \ No newline at end of file diff --git a/src/common/units/equipment/ship_hull_submarine.txt b/src/common/units/equipment/ship_hull_submarine.txt index f4cbaf5..53952f7 100755 --- a/src/common/units/equipment/ship_hull_submarine.txt +++ b/src/common/units/equipment/ship_hull_submarine.txt @@ -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 } } \ No newline at end of file diff --git a/src/common/units/equipment/ship_hull_wunderwaffe.txt b/src/common/units/equipment/ship_hull_wunderwaffe.txt index 9cf8e35..0699559 100755 --- a/src/common/units/equipment/ship_hull_wunderwaffe.txt +++ b/src/common/units/equipment/ship_hull_wunderwaffe.txt @@ -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 } } \ No newline at end of file diff --git a/src/common/units/equipment/support_ships.txt b/src/common/units/equipment/support_ships.txt new file mode 100755 index 0000000..41aaf73 --- /dev/null +++ b/src/common/units/equipment/support_ships.txt @@ -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 + } +} \ No newline at end of file diff --git a/src/common/units/heavy_cruiser.txt b/src/common/units/heavy_cruiser.txt index 3d08bb1..a58bee4 100755 --- a/src/common/units/heavy_cruiser.txt +++ b/src/common/units/heavy_cruiser.txt @@ -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 } diff --git a/src/common/units/light_cruiser.txt b/src/common/units/light_cruiser.txt index 925bcac..aa0fb0e 100755 --- a/src/common/units/light_cruiser.txt +++ b/src/common/units/light_cruiser.txt @@ -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 } diff --git a/src/common/units/repair_ships.txt b/src/common/units/repair_ships.txt new file mode 100755 index 0000000..828333f --- /dev/null +++ b/src/common/units/repair_ships.txt @@ -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 + } +} + + diff --git a/src/common/units/submarine.txt b/src/common/units/submarine.txt index a5583c3..ff865aa 100755 --- a/src/common/units/submarine.txt +++ b/src/common/units/submarine.txt @@ -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 } diff --git a/src/common/units/support_ships.txt b/src/common/units/support_ships.txt new file mode 100755 index 0000000..c8857f4 --- /dev/null +++ b/src/common/units/support_ships.txt @@ -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 + } +} + + diff --git a/src/descriptor.mod b/src/descriptor.mod index 487e0b9..38957f4 100755 --- a/src/descriptor.mod +++ b/src/descriptor.mod @@ -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" \ No newline at end of file diff --git a/src/events/00_navy_rework.txt b/src/events/00_navy_rework.txt index 21c02c3..e8e25b6 100755 --- a/src/events/00_navy_rework.txt +++ b/src/events/00_navy_rework.txt @@ -224,6 +224,8 @@ country_event = { add_starting_navy_spirits = yes sign_naval_treaty = yes + + ai_doctrine_workaround = yes } } diff --git a/src/gfx/interface/technologies/Generic/repair_ship1.png b/src/gfx/interface/technologies/Generic/repair_ship1.png new file mode 100755 index 0000000..b92cf4e Binary files /dev/null and b/src/gfx/interface/technologies/Generic/repair_ship1.png differ diff --git a/src/gfx/interface/technologies/Generic/repair_ship2.png b/src/gfx/interface/technologies/Generic/repair_ship2.png new file mode 100755 index 0000000..89d1abd Binary files /dev/null and b/src/gfx/interface/technologies/Generic/repair_ship2.png differ diff --git a/src/gfx/interface/technologies/Generic/support_ship1.png b/src/gfx/interface/technologies/Generic/support_ship1.png new file mode 100755 index 0000000..9ff10f5 Binary files /dev/null and b/src/gfx/interface/technologies/Generic/support_ship1.png differ diff --git a/src/gfx/interface/technologies/Generic/support_ship2.png b/src/gfx/interface/technologies/Generic/support_ship2.png new file mode 100755 index 0000000..d6e3ffa Binary files /dev/null and b/src/gfx/interface/technologies/Generic/support_ship2.png differ diff --git a/src/gfx/interface/technologies/doctrine_tree/adjacent_projection.png b/src/gfx/interface/technologies/doctrine_tree/adjacent_projection.png deleted file mode 100755 index c04e843..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/adjacent_projection.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/advanced_submarine_warfare.png b/src/gfx/interface/technologies/doctrine_tree/advanced_submarine_warfare.png deleted file mode 100755 index ddc86b6..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/advanced_submarine_warfare.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/ambush_tactics.png b/src/gfx/interface/technologies/doctrine_tree/ambush_tactics.png deleted file mode 100755 index a413620..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/ambush_tactics.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/armed_merchantmen.png b/src/gfx/interface/technologies/doctrine_tree/armed_merchantmen.png deleted file mode 100755 index e92ff94..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/armed_merchantmen.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/circle_formation.png b/src/gfx/interface/technologies/doctrine_tree/circle_formation.png deleted file mode 100755 index 7d81911..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/circle_formation.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/coastal_operations.png b/src/gfx/interface/technologies/doctrine_tree/coastal_operations.png deleted file mode 100755 index d602c12..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/coastal_operations.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/decisive_battle.png b/src/gfx/interface/technologies/doctrine_tree/decisive_battle.png deleted file mode 100755 index bf72384..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/decisive_battle.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/flight_deck_management.png b/src/gfx/interface/technologies/doctrine_tree/flight_deck_management.png deleted file mode 100755 index d316ebf..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/flight_deck_management.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/frequent_air_raid.png b/src/gfx/interface/technologies/doctrine_tree/frequent_air_raid.png deleted file mode 100755 index 0ae477f..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/frequent_air_raid.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/guerrilla_tactics.png b/src/gfx/interface/technologies/doctrine_tree/guerrilla_tactics.png deleted file mode 100755 index 8f0409e..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/guerrilla_tactics.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/mass_air_raid.png b/src/gfx/interface/technologies/doctrine_tree/mass_air_raid.png deleted file mode 100755 index 091973a..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/mass_air_raid.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/naval_air_force.png b/src/gfx/interface/technologies/doctrine_tree/naval_air_force.png deleted file mode 100755 index ef123c7..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/naval_air_force.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/naval_airforce.png b/src/gfx/interface/technologies/doctrine_tree/naval_airforce.png new file mode 100755 index 0000000..8938b8c Binary files /dev/null and b/src/gfx/interface/technologies/doctrine_tree/naval_airforce.png differ diff --git a/src/gfx/interface/technologies/doctrine_tree/naval_concealment.png b/src/gfx/interface/technologies/doctrine_tree/naval_concealment.png deleted file mode 100755 index 9a201a4..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/naval_concealment.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/scouting_fleet_primacy.png b/src/gfx/interface/technologies/doctrine_tree/scouting_fleet_primacy.png deleted file mode 100755 index 26b31b9..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/scouting_fleet_primacy.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/submarine_picket.png b/src/gfx/interface/technologies/doctrine_tree/submarine_picket.png deleted file mode 100755 index c044543..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/submarine_picket.png and /dev/null differ diff --git a/src/gfx/interface/technologies/doctrine_tree/tonnage_war.png b/src/gfx/interface/technologies/doctrine_tree/tonnage_war.png deleted file mode 100755 index c7a280c..0000000 Binary files a/src/gfx/interface/technologies/doctrine_tree/tonnage_war.png and /dev/null differ diff --git a/src/gfx/interface/technologies/navy_techtree/armed_civilian_ship.png b/src/gfx/interface/technologies/navy_techtree/armed_civilian_ship.png index f1ccdcb..91c085b 100755 Binary files a/src/gfx/interface/technologies/navy_techtree/armed_civilian_ship.png and b/src/gfx/interface/technologies/navy_techtree/armed_civilian_ship.png differ diff --git a/src/gfx/interface/technologies/navy_techtree/convoy_escorts.png b/src/gfx/interface/technologies/navy_techtree/convoy_escorts.png new file mode 100755 index 0000000..5190193 Binary files /dev/null and b/src/gfx/interface/technologies/navy_techtree/convoy_escorts.png differ diff --git a/src/gfx/interface/technologies/navy_techtree/range_over_speed.png b/src/gfx/interface/technologies/navy_techtree/range_over_speed.png index 6a0c0e9..a2298ed 100755 Binary files a/src/gfx/interface/technologies/navy_techtree/range_over_speed.png and b/src/gfx/interface/technologies/navy_techtree/range_over_speed.png differ diff --git a/src/gfx/interface/technologies/navy_techtree/repair_ship.png b/src/gfx/interface/technologies/navy_techtree/repair_ship.png index 66207a6..019e834 100755 Binary files a/src/gfx/interface/technologies/navy_techtree/repair_ship.png and b/src/gfx/interface/technologies/navy_techtree/repair_ship.png differ diff --git a/src/gfx/interface/technologies/navy_techtree/speed_over_range.png b/src/gfx/interface/technologies/navy_techtree/speed_over_range.png index 1f53407..ea61803 100755 Binary files a/src/gfx/interface/technologies/navy_techtree/speed_over_range.png and b/src/gfx/interface/technologies/navy_techtree/speed_over_range.png differ diff --git a/src/gfx/interface/vnr_main_menu_bg.dds b/src/gfx/interface/vnr_main_menu_bg.dds index 6b37c3d..bffe038 100755 Binary files a/src/gfx/interface/vnr_main_menu_bg.dds and b/src/gfx/interface/vnr_main_menu_bg.dds differ diff --git a/src/gfx/texticons/tech_banner/bb_11_desc_icon.png b/src/gfx/texticons/tech_banner/bb_11_desc_icon.png new file mode 100755 index 0000000..09b5a57 Binary files /dev/null and b/src/gfx/texticons/tech_banner/bb_11_desc_icon.png differ diff --git a/src/gfx/texticons/tech_banner/ca_12_desc_icon.png b/src/gfx/texticons/tech_banner/ca_12_desc_icon.png new file mode 100755 index 0000000..56d3364 Binary files /dev/null and b/src/gfx/texticons/tech_banner/ca_12_desc_icon.png differ diff --git a/src/gfx/texticons/tech_banner/dd_10_desc_icon.png b/src/gfx/texticons/tech_banner/dd_10_desc_icon.png new file mode 100755 index 0000000..2a255de Binary files /dev/null and b/src/gfx/texticons/tech_banner/dd_10_desc_icon.png differ diff --git a/src/gfx/texticons/tech_banner/dd_11_desc_icon.png b/src/gfx/texticons/tech_banner/dd_11_desc_icon.png new file mode 100755 index 0000000..80082b1 Binary files /dev/null and b/src/gfx/texticons/tech_banner/dd_11_desc_icon.png differ diff --git a/src/gfx/texticons/tech_banner/dd_12_desc_icon.png b/src/gfx/texticons/tech_banner/dd_12_desc_icon.png new file mode 100755 index 0000000..1589c3d Binary files /dev/null and b/src/gfx/texticons/tech_banner/dd_12_desc_icon.png differ diff --git a/src/interface/countryproductionlineview.gui b/src/interface/countryproductionlineview.gui index b6a6532..1e99379 100755 --- a/src/interface/countryproductionlineview.gui +++ b/src/interface/countryproductionlineview.gui @@ -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 } @@ -4686,6 +4596,23 @@ guiTypes = { format = "UPPER_LEFT" } } + + 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" @@ -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" + } + + } } diff --git a/src/interface/countrytechtreeview.gui b/src/interface/countrytechtreeview.gui index ea3b851..25730dc 100755 --- a/src/interface/countrytechtreeview.gui +++ b/src/interface/countrytechtreeview.gui @@ -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" } diff --git a/src/interface/doctrines/vnr_doctrines.gfx b/src/interface/doctrines/vnr_doctrines.gfx new file mode 100755 index 0000000..8496976 --- /dev/null +++ b/src/interface/doctrines/vnr_doctrines.gfx @@ -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 + } +} diff --git a/src/interface/equipmentdesignerview.gui b/src/interface/equipmentdesignerview.gui index 897627c..c088a72 100755 --- a/src/interface/equipmentdesignerview.gui +++ b/src/interface/equipmentdesignerview.gui @@ -303,6 +303,33 @@ guiTypes = { name = "info" 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" @@ -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 = { @@ -1744,4 +1773,4 @@ guiTypes = { } -} \ No newline at end of file +} diff --git a/src/interface/naviesview.gui b/src/interface/naviesview.gui index b21733a..294c763 100755 --- a/src/interface/naviesview.gui +++ b/src/interface/naviesview.gui @@ -1,11 +1,147 @@ guiTypes = { + # Target bar + containerWindowType = { + name = "target_bar_window" + show_position = {x=-407 y=-383} + show_animation_type = decelerated + hide_animation_type = accelerated + animation_time = 0 + Orientation = center_down + clipping = no + + background = { + name = "Background" + spriteType = "GFX_tiled_window_transparent" + } + containerWindowType = { + name = "navy_box_background" + size={width=586 height=76} + position = { x = 78 y = 67 } + + background = { + name = "Background" + spriteType = "GFX_tiled_window_thin_border2" + } + } + + buttonType = { + name = "btn_target_submarine" + position = {x=86 y=75} + spriteType = "GFX_naval_target_btn" + clicksound = click_default + } + iconType = { + name = "button_1_bg" + spriteType = "GFX_navalcombat_ship_icon_submarine" + position = { x=116 y=80 } + alwaysTransparent = yes + } + buttonType = { + name = "btn_target_destroyer" + position = {x=200 y=75} + spriteType = "GFX_naval_target_btn" + clicksound = click_default + } + iconType = { + name = "button_2_bg" + spriteType = "GFX_navalcombat_ship_icon_destroyer" + position = { x=230 y=80 } + alwaysTransparent = yes + } + buttonType = { + name = "btn_target_light_cruiser" + position = {x=314 y=75 } + spriteType = "GFX_naval_target_btn" + clicksound = click_default + } + iconType = { + name = "button_3_bg" + spriteType = "GFX_navalcombat_ship_icon_light_cruiser" + position = { x=344 y=80 } + alwaysTransparent = yes + } + buttonType = { + name = "btn_target_heavy_cruiser" + position = {x=428 y=75} + spriteType = "GFX_naval_target_btn" + clicksound = click_default + } + iconType = { + name = "button_4_bg" + spriteType = "GFX_navalcombat_ship_icon_heavy_cruiser" + position = { x=448 y=80 } + alwaysTransparent = yes + } + buttonType = { + name = "btn_target_convoy" + position = {x=542 y=75 } + spriteType = "GFX_naval_target_btn" + clicksound = click_default + } + iconType = { + name = "button_5_bg" + spriteType = "GFX_navalcombat_ship_icon_convoy" + position = { x=572 y=80 } + alwaysTransparent = yes + } + buttonType = { + name = "btn_target_battle_cruiser" + position = {x=86 y=104} + spriteType = "GFX_naval_target_btn" + clicksound = click_default + } + iconType = { + name = "button_6_bg" + spriteType = "GFX_navalcombat_ship_icon_battle_cruiser" + position = { x=96 y=107 } + alwaysTransparent = yes + } + buttonType = { + name = "btn_target_battleship" + position = {x=200 y=104} + spriteType = "GFX_naval_target_btn" + clicksound = click_default + } + iconType = { + name = "button_7_bg" + spriteType = "GFX_navalcombat_ship_icon_battleship" + position = { x=210 y=109 } + alwaysTransparent = yes + } + buttonType = { + name = "btn_target_sh_battleship" + position = {x=314 y=104} + spriteType = "GFX_naval_target_btn" + clicksound = click_default + } + iconType = { + name = "button_8_bg" + spriteType = "GFX_navalcombat_ship_icon_sh_battleship" + position = { x=324 y=109 } + alwaysTransparent = yes + } + buttonType = { + name = "btn_target_carrier" + position = {x=428 y=104} + spriteType = "GFX_naval_target_btn" + clicksound = click_default + } + iconType = { + name = "button_9_bg" + spriteType = "GFX_navalcombat_ship_icon_carrier" + position = { x=448 y=109 } + alwaysTransparent = yes + } + + } + # Action/Mission bar containerWindowType = { name = "action_bar_window" position = {x=-300 y=0} - show_position = {x=-300 y=-230} - size = { width=435 height=60 } + show_position = {x=-300 y=-245} + size = { width=532 height=100 } show_animation_type = decelerated hide_animation_type = accelerated animation_time = 300 @@ -14,21 +150,15 @@ guiTypes = { background = { name = "Background" - spriteType = "GFX_tiled_window_transparent" - } - - iconType = { - name = "background_button" - spriteType = "GFX_NVM_bg" - position = {x=0 y=0} - alwaystransparent = yes + quadTextureSprite = "GFX_air_priorities_tiled_bg" + position = { x = 0 y = 0 } } instantTextboxType = { name = "taskforces_selected" position = {x=22 y=7} font = "hoi_18mbs" - maxWidth = 290 + maxWidth = 400 maxHeight = 23 format = left text = "Missions - All taskforces" @@ -38,21 +168,22 @@ guiTypes = { iconType = { name = "navy_box_background" quadTextureSprite = "GFX_theatre_naval_control_panel" - position = { x = 115 y = 70 } + position = { x = 115 y = 95 } frame = 1 } OverlappingElementsBoxType = { name = "navy_box" - position = { x = 120 y = 77 } + position = { x = 120 y = 100 } size = { x = 296 y = 23 } first_on_top = yes format = left spacing = 8.0 } - @nv_mission_btn_training_x=10 - @nv_mission_btn_y=28 + @nv_mission_btn_training_x=185 + @nv_mission_btn_y=48 + @nv_dominance_ico_y=30 buttonType = { name = "btn_mission7" @@ -63,6 +194,13 @@ guiTypes = { clicksound = click_default } + buttonType = { + name = "btn_target" + position = {x=434 y=52} + spriteType = "GFX_air_target_icon" + clicksound = click_default + } + iconType = { name = "training_will_stop_at_max_icon" spriteType = "GFX_exercise_stop_at_max" @@ -85,16 +223,24 @@ guiTypes = { alwaystransparent = yes } + # Patrol + + iconType = { + name = "naval_dominance_texticon1" + spriteType = "GFX_naval_dominance_increase_texticon" + position = { x= 20 y =@nv_dominance_ico_y} + } + buttonType = { name = "btn_mission1" - position = {x=60 y=@nv_mission_btn_y} + position = {x=10 y=@nv_mission_btn_y} spriteType = "GFX_NV_btn_patrol" shortcut = "z" clicksound = click_default } iconType = { name = "hint_highlight_mission_1" - position = {x=60 y=@nv_mission_btn_y} + position = {x=10 y=@nv_mission_btn_y} spriteType = "GFX_naval_mission_btn_highlight" alwaystransparent = yes hide = yes @@ -102,20 +248,28 @@ guiTypes = { iconType = { name ="btn_mission1_warn" spriteType = "GFX_btn_yellow_glow" - position = {x=60 y=@nv_mission_btn_y} + position = {x=10 y=@nv_mission_btn_y} alwaystransparent = yes } + # Strike Force + + iconType = { + name = "naval_dominance_texticon2" + spriteType = "GFX_naval_dominance_multiplication_texticon" + position = { x= 70 y =@nv_dominance_ico_y} + } + buttonType = { name = "btn_mission2" - position = {x=110 y=@nv_mission_btn_y} + position = {x=60 y=@nv_mission_btn_y} spriteType = "GFX_NV_btn_strike_force" shortcut = "x" clicksound = click_default } iconType = { name = "hint_highlight_mission_2" - position = {x=110 y=@nv_mission_btn_y} + position = {x=60 y=@nv_mission_btn_y} spriteType = "GFX_naval_mission_btn_highlight" alwaystransparent = yes hide = yes @@ -123,20 +277,28 @@ guiTypes = { iconType = { name ="btn_mission2_warn" spriteType = "GFX_btn_yellow_glow" - position = {x=110 y=@nv_mission_btn_y} + position = {x=60 y=@nv_mission_btn_y} alwaystransparent = yes } + # Convoy Raiding + + iconType = { + name = "naval_dominance_texticon3" + spriteType = "GFX_naval_dominance_reduction_texticon" + position = { x= 120 y = @nv_dominance_ico_y} + } + buttonType = { name = "btn_mission3" - position = {x=160 y=@nv_mission_btn_y} + position = {x=110 y=@nv_mission_btn_y} spriteType = "GFX_NV_btn_convoy_raid" shortcut = "c" clicksound = click_default } iconType = { name = "hint_highlight_mission_3" - position = {x=160 y=@nv_mission_btn_y} + position = {x=110 y=@nv_mission_btn_y} spriteType = "GFX_naval_mission_btn_highlight" alwaystransparent = yes hide = yes @@ -144,20 +306,22 @@ guiTypes = { iconType = { name ="btn_mission3_warn" spriteType = "GFX_btn_yellow_glow" - position = {x=160 y=@nv_mission_btn_y} + position = {x=110 y=@nv_mission_btn_y} alwaystransparent = yes } + # Convoy Escort + buttonType = { name = "btn_mission4" - position = {x=210 y=@nv_mission_btn_y} + position = {x=235 y=@nv_mission_btn_y} spriteType = "GFX_NV_btn_convoy_escort" shortcut = "v" clicksound = click_default } iconType = { name = "hint_highlight_mission_4" - position = {x=210 y=@nv_mission_btn_y} + position = {x=235 y=@nv_mission_btn_y} spriteType = "GFX_naval_mission_btn_highlight" alwaystransparent = yes hide = yes @@ -165,20 +329,22 @@ guiTypes = { iconType = { name ="btn_mission4_warn" spriteType = "GFX_btn_yellow_glow" - position = {x=210 y=@nv_mission_btn_y} + position = {x=235 y=@nv_mission_btn_y} alwaystransparent = yes } + # Mine Laying + buttonType = { name = "btn_mission5" - position = {x=260 y=@nv_mission_btn_y} + position = {x=285 y=@nv_mission_btn_y} spriteType = "GFX_NV_btn_mines_planting" shortcut = "b" clicksound = click_default } iconType = { name = "hint_highlight_mission_5" - position = {x=260 y=@nv_mission_btn_y} + position = {x=285 y=@nv_mission_btn_y} spriteType = "GFX_naval_mission_btn_highlight" alwaystransparent = yes hide = yes @@ -186,20 +352,22 @@ guiTypes = { iconType = { name ="btn_mission5_warn" spriteType = "GFX_btn_yellow_glow" - position = {x=260 y=@nv_mission_btn_y} + position = {x=285 y=@nv_mission_btn_y} alwaystransparent = yes } + # Mine Sweeping + buttonType = { name = "btn_mission6" - position = {x=310 y=@nv_mission_btn_y} + position = {x=335 y=@nv_mission_btn_y} spriteType = "GFX_NV_btn_mines_sweeping" shortcut = "shift+b" clicksound = click_default } iconType = { name = "hint_highlight_mission_6" - position = {x=310 y=@nv_mission_btn_y} + position = {x=335 y=@nv_mission_btn_y} spriteType = "GFX_naval_mission_btn_highlight" alwaystransparent = yes hide = yes @@ -207,20 +375,22 @@ guiTypes = { iconType = { name ="btn_mission6_warn" spriteType = "GFX_btn_yellow_glow" - position = {x=310 y=@nv_mission_btn_y} + position = {x=335 y=@nv_mission_btn_y} alwaystransparent = yes } + # Naval Invasion Support + buttonType = { name = "btn_mission9" - position = {x=360 y=@nv_mission_btn_y} + position = {x=385 y=@nv_mission_btn_y} spriteType = "GFX_NV_btn_naval_invasion_support" shortcut = "a" clicksound = click_default } iconType = { name = "hint_highlight_mission_9" - position = {x=360 y=@nv_mission_btn_y} + position = {x=385 y=@nv_mission_btn_y} spriteType = "GFX_naval_mission_btn_highlight" alwaystransparent = yes hide = yes @@ -228,21 +398,22 @@ guiTypes = { iconType = { name ="btn_mission9_warn" spriteType = "GFX_btn_yellow_glow" - position = {x=360 y=@nv_mission_btn_y} + position = {x=385 y=@nv_mission_btn_y} alwaystransparent = yes } + # Hold buttonType = { name = "btn_mission0" - position = {x=466 y=34} + position = {x=466 y=54} spriteType = "GFX_NV_btn_hold" clicksound = click_default } buttonType = { name = "btn_remove_regions" - position = {x=496 y=34} + position = {x=496 y=54} spriteType = "GFX_NV_btn_remove_regions" clicksound = click_default shortcut = "DEL" @@ -376,7 +547,7 @@ guiTypes = { spriteType = "GFX_NV_btn_taskforce_o_matic" clicksound = click_default } - + buttonType = { position = { x=244 y=@nv_tb_btn_y } name = "btn_base_underway_replenishment" @@ -405,6 +576,135 @@ guiTypes = { clicksound = click_default pdx_tooltip = "NAVY_REPAIR_NOW" } + + dropDownBoxType = { + name = "defensive_stance_dropdown" + position = { x = 334 y = @nv_tb_btn_y } + size = { width = 37 height = 37 } + + expandButton = { + name = "defensive_stance_expand_button" + position = { x = 0 y = 0 } + quadTextureSprite ="GFX_NV_btn_base_partial_toggle" + frame = 1 + buttonFont = "Main_14_black" + Orientation = "UPPER_LEFT" + clicksound = click_default + pdx_tooltip = "NAVY_CARRIER_DEFENSIVE_STANCE" + } + + expandedWindow = { + name = "defensive_stance_expanded_window" + position = { x=10 y= 0 } + show_position = { x = 10 y = 25 } + show_animation_type = decelerated + hide_animation_type = accelerated + animation_time = 150 + size = { width=240 height=172 } + verticalScrollbar = "right_vertical_slider" + margin = { top = 15 bottom = 0 left = 0 } + + background = { + name = "Background" + quadTextureSprite ="GFX_tiled_window_1b_border" + position = { x = 0 y = 0 } + } + + # contains defensive_stand_item + gridBoxType = { + name = "button_grid" + position = { x = 12 y = 0 } + size = { width = 200 height = 100%% } + slotsize = { width = 26 height = 30 } + max_slots_horizontal = 1 + format = "UPPER_LEFT" + } + } + } + + dropDownBoxType = { + name = "repair_priority_dropdown" + position = { x = 424 y = @nv_tb_btn_y } + + expandButton = { + name = "repair_priority_expand_button" + position = { x = 0 y = 0 } + quadTextureSprite ="GFX_NV_btn_base_partial_toggle" + frame = 1 + buttonFont = "Main_14_black" + Orientation = "UPPER_LEFT" + clicksound = click_default + } + + expandedWindow = { + name = "repair_priority_expanded_window" + position = { x=10 y= 0 } + show_position = { x = 10 y = 25 } + show_animation_type = decelerated + hide_animation_type = accelerated + animation_time = 150 + size = { width=272 height=150 } + verticalScrollbar = "right_vertical_slider" + margin = { top = 15 bottom = 0 left = 0 } + + background = { + name = "Background" + quadTextureSprite ="GFX_tiled_window_1b_border" + position = { x = 0 y = 0 } + } + + gridBoxType = { + name = "button_grid" + position = { x = 12 y = 0 } + size = { width = 160 height = 100%% } + slotsize = { width = 26 height = 30 } + max_slots_horizontal = 1 + format = "UPPER_LEFT" + } + } + } + + dropDownBoxType = { + name = "aggressiveness_dropdown" + position = { x = 454 y = @nv_tb_btn_y } + + expandButton = { + name = "aggressiveness_expand_button" + position = { x = 0 y = 0 } + quadTextureSprite ="GFX_NV_btn_base_partial_toggle" + buttonFont = "Main_14_black" + Orientation = "UPPER_LEFT" + clicksound = click_default + pdx_tooltip = "NAVY_AGGRESSIVENESS" + } + + expandedWindow = { + name = "aggressiveness_expanded_window" + position = { x=10 y= 0 } + show_position = { x = 10 y = 25 } + show_animation_type = decelerated + hide_animation_type = accelerated + animation_time = 150 + size = { width=272 height=172 } + verticalScrollbar = "right_vertical_slider" + margin = { top = 15 bottom = 0 left = 0 } + + background = { + name = "Background" + quadTextureSprite ="GFX_tiled_window_1b_border" + position = { x = 0 y = 0 } + } + + gridBoxType = { + name = "button_grid" + position = { x = 12 y = 0 } + size = { width = 160 height = 100%% } + slotsize = { width = 26 height = 30 } + max_slots_horizontal = 1 + format = "UPPER_LEFT" + } + } + } buttonType = { position = { x=364 y=@nv_tb_btn_y } @@ -434,34 +734,28 @@ guiTypes = { alwaystransparent = yes } - buttonType = { - position = { x=424 y=@nv_tb_btn_y } - name = "btn_base_toggle_repair_priority" - spriteType = "GFX_NV_btn_base_partial_toggle" - clicksound = click_default - } - iconType = { - name = "btn_toggle_repair_priority" + name = "repair_priority_icon" + frame = 2 position = {x=424 y=@nv_tb_btn_y} spriteType = "GFX_NV_btn_repair_priority" alwaystransparent = yes } - buttonType = { - position = { x=454 y=@nv_tb_btn_y } - name = "btn_base_aggressiveness" - spriteType = "GFX_NV_btn_base_partial_toggle" - clicksound = click_default - } - iconType = { name = "btn_aggressiveness" position = {x=454 y=@nv_tb_btn_y} spriteType = "GFX_NV_btn_aggressiveness_small" alwaystransparent = yes } - + + iconType = { + name = "icon_defensive_stance" + position = {x = 334 y = @nv_tb_btn_y} + spriteType = "GFX_defensive_stance_strip" + frame = 1 + alwaystransparent = yes + } } # Entries are entered here in code... @@ -499,6 +793,95 @@ guiTypes = { } } } + + containerWindowType = { + name = "defensive_stand_item" + position = {x=0 y=0} + size = { width=200 height=30 } + Orientation = upper_left + clipping = no + + background = { + name = "Background" + quadTextureSprite ="GFX_mini_tooltip" + position = { x = 0 y = 0 } + } + + iconType = { + name = "icon" + spriteType = "GFX_defensive_stance_strip" + position = { x=2 y=0 } + alwaystransparent = yes + } + + instantTextboxType = { + name = "name" + position = {x=30 y=5} + font = "hoi_18mbs" + maxWidth = 160 + maxHeight = 30 + format = left + } + } + + containerWindowType = { + name = "repair_priority_item" + position = {x=0 y=0} + size = { width=240 height=30 } + Orientation = upper_left + clipping = no + + background = { + name = "background" + spriteType = "GFX_mini_tooltip" + position = {x=0 y=0} + } + + iconType = { + name = "icon" + spriteType = "GFX_NV_btn_repair_priority" + position = { x=0 y=0 } + alwaystransparent = yes + } + + instantTextboxType = { + name = "name" + position = {x=30 y=5} + font = "hoi_18mbs" + format = left + } + } + + containerWindowType = { + name = "aggressiveness_item" + position = {x=0 y=0} + size = { width=240 height=30 } + Orientation = upper_left + clipping = no + + background = { + name = "Background" + quadTextureSprite ="GFX_mini_tooltip" + position = { x = 0 y = 0 } + } + + iconType = { + name = "icon" + spriteType = "GFX_NV_btn_aggressiveness_small" + position = { x=5 y=0 } + alwaystransparent = yes + } + + instantTextboxType = { + name = "name" + position = {x=35 y=5} + font = "hoi_18mbs" + maxWidth = 200 + maxHeight = 30 + fixedsize = yes + format = left + } + } containerWindowType = { name = "fleet_view_header" @@ -608,7 +991,7 @@ guiTypes = { # # iconType = { # name = "home_base_icon" -# position = {x=80 y=130} +# position = {x=75 y=130} # spriteType ="GFX_home_base_icon" # pdx_tooltip = "HOME_BASE_TITLE" # pdx_tooltip_delayed = "HOME_BASE_DESC" @@ -627,12 +1010,52 @@ guiTypes = { name = "active_in_regions" position = {x=16 y=140} font = "hoi_18mbs" - maxWidth = 290 + maxWidth = 172 maxHeight = 23 format = left text = "Active in Regions: 4" } + containerWindowType = { + name = "home_base_view" + position = { x=200 y=140 } + + buttonType = { + position = { x=0 y=-5 } + name = "automate_home_base_button" + spriteType = "GFX_naval_automation_base" + clicksound = click_default + shortcut = "shift+s" + } + + buttonType = { + name = "home_base_button" + position = { x=30 y=-5 } + quadTextureSprite = "GFX_naval_deploy_button" + buttonFont = "hoi_16mbs" + clicksound = click_default + } + + iconType = { + name = "home_base_icon" + position = { x=30 y=-6 } + spriteType = "GFX_deploy_port_fleet_icons" + alwaystransparent = yes + } + + instantTextboxType = { + name = "home_base_name" + position = { x = 60 y = 0 } + font = "hoi_18b" + borderSize = {x = 0 y = 0} + text = "Home base" + maxWidth = 90 + maxHeight = 25 + fixedsize = yes + alwaystransparent = yes + } + } + buttonType = { name = "leader_button" position = {x=8 y=47} @@ -795,22 +1218,16 @@ guiTypes = { gridBoxType = { name = "traits_grid" - position = {x=252 y=55} - size = {width=120 height=50} - slotsize = {width=22 height=32} - max_slots_vertical = 2 - Orientation = "UPPER_LEFT" - - background = { - name = "background" - spriteType = "GFX_tiled_window_transparent" - alwaystransparent = yes - } + position = {x=302 y=60} + size = {width=450 height=50} + slotsize = {width=21 height=32} + max_slots_vertical = 1 + format = "UPPER_LEFT" } containerWindowType = { name = "ships_compact" - position = {x=73 y=95} + position = {x=75 y=95} size = { width=300 height=40 } Orientation = upper_left @@ -827,13 +1244,13 @@ guiTypes = { containerWindowType = { name = "compact_fleet_view_entry" position = { x=0 y=0 } - size= { width=72 height=93 } + size= { width=75 height=93 } Orientation = upper_left buttonType = { name = "background" position = { x=0 y=0 } - size = { x=72 y=93 } + size = { x=75 y=93 } spriteType = "GFX_tiled_plain_bg_small" } @@ -899,6 +1316,14 @@ guiTypes = { orientation = left } + iconType = { + name ="naval_headquarter_icon" + quadTextureSprite = "GFX_buildings_strip" + frame = 29 + scale = 0.6 + position = { x = 40 y = 5 } + } + buttonType ={ name ="air_base" quadTextureSprite = "GFX_mapicon_air_base" @@ -909,11 +1334,11 @@ guiTypes = { buttonType = { name = "btn_composition_editor" spriteType = "GFX_NV_btn_composition_editor" - position = {x=450 y=85} + position = {x=450 y=80} pdx_tooltip = "OPEN_TASK_FORCE_COMPOSITION_EDITOR" pdx_tooltip_delayed = "TASK_FORCE_COMPOSITION_EDITOR_DESC" } - + buttonType = { name = "toggle_btn_split_for_repair_indiv" position = {x=389 y=43} @@ -997,7 +1422,7 @@ guiTypes = { containerWindowType = { name = "ships_compact" - position = {x=10 y=80} + position = {x=10 y=75} size = { width=460 height=81 } Orientation = upper_left @@ -1039,7 +1464,7 @@ guiTypes = { spriteType = "GFX_NV_all_activities" frame = 1 } - + iconType = { name = "underway_replenishment_icon" position = {x=330 y=43} @@ -1047,6 +1472,12 @@ guiTypes = { frame = 1 } + iconType = { + name = "dominance" + position = {x=325 y=51} + spriteType = "GFX_naval_dominance_support_strip" + } + iconType = { name = "fuel_stocks_icon" position = {x=355 y=47} @@ -1881,7 +2312,7 @@ guiTypes = { buttonType = { name = "btn_decrease" - position = { x=380 y=10 } + position = { x=372 y=10 } spriteType = "GFX_subtract_one" } @@ -1956,7 +2387,7 @@ guiTypes = { iconType = { name = "ship_icon" - position = {x=80 y=4} # Y is centered in code + position = {x=75 y=4} # Y is centered in code alwaystransparent = yes spriteType = "GFX_navalcombat_ship_icon_unknown" } @@ -1964,7 +2395,7 @@ guiTypes = { instantTextboxType = { name = "name" - position = { x = 180 y = 8 } + position = { x = 172 y = 8 } font = "hoi4_typewriter16" text = "USS Enterprise" maxWidth = 250 @@ -1989,14 +2420,14 @@ guiTypes = { name ="navy_item_bg" quadTextureSprite = "GFX_theatre_army_shield" position = { x = 3 y = 1 } - scale = 0.72 + scale = 0.75 } iconType = { name ="navy_item_frame" quadTextureSprite = "GFX_theatre_army_shield_selected" position = { x = 3 y = 1 } - scale = 0.72 + scale = 0.75 alwaystransparent = yes } @@ -2015,11 +2446,7 @@ guiTypes = { containerWindowType = { name = "home_base_selection_window" - position = { x=-356 y=78} - show_position = { x=500 y=78 } - show_animation_type = decelerated - hide_animation_type = accelerated - animation_time = 300 + position = { x=490 y=78} size = { width=375 height=70%% } background = { @@ -2027,9 +2454,89 @@ guiTypes = { quadTextureSprite ="GFX_tiled_plain_bg" } + instantTextboxType = { + name = "homebase_title" + position = { x = -240 y = 6 } + textureFile = "" + font = "hoi_20b" + borderSize = {x = 0 y = 0} + text = "HOMEBASE_WINDOW_TITLE" + maxWidth = 200 + maxHeight = 20 + format = left + fixedsize = yes + Orientation = "UPPER_RIGHT" + } + + checkboxType = { + name = "show_subject_bases" + position = { x = -350 y = 20 } + quadTextureSprite ="GFX_generic_checkbox" + Orientation = "UPPER_RIGHT" + clicksound = click_checkbox + } + + instantTextboxType = { + name = "subject_title" + position = { x = -310 y = 25 } + textureFile = "" + font = "hoi_20b" + borderSize = {x = 0 y = 0} + text = "SUBJECT_NAVAL_BASES" + maxWidth = 200 + maxHeight = 20 + format = left + fixedsize = yes + Orientation = "UPPER_RIGHT" + } + + checkboxType = { + name = "show_faction_bases" + position = { x = -350 y = 56 } + quadTextureSprite ="GFX_generic_checkbox" + Orientation = "UPPER_RIGHT" + clicksound = click_checkbox + } + + instantTextboxType = { + name = "faction_title" + position = { x = -310 y = 61 } + textureFile = "" + font = "hoi_20b" + borderSize = {x = 0 y = 0} + text = "FACTION_NAVAL_BASES" + maxWidth = 200 + maxHeight = 20 + format = left + fixedsize = yes + Orientation = "UPPER_RIGHT" + } + + checkboxType = { + name = "show_accessible_bases" + position = { x = -350 y = 92 } + quadTextureSprite ="GFX_generic_checkbox" + Orientation = "UPPER_RIGHT" + clicksound = click_checkbox + } + + instantTextboxType = { + name = "accessible_title" + position = { x = -310 y = 97 } + textureFile = "" + font = "hoi_20b" + borderSize = {x = 0 y = 0} + text = "ACCESSIBLE_NAVAL_BASES" + maxWidth = 200 + maxHeight = 20 + format = left + fixedsize = yes + Orientation = "UPPER_RIGHT" + } + containerWindowType = { - name = "deployments" - position = { x=0 y=50 } + name = "home_base_selection" + position = { x=0 y=126 } size = { width=100%% height=100%% } verticalScrollbar = "right_vertical_slider" smooth_scrolling = yes @@ -2041,8 +2548,8 @@ guiTypes = { } gridboxtype = { - name = "deployments_grid" - position = { x = 12 y = 15 } + name = "home_base_selection_grid" + position = { x = 14 y = 0 } size = { width = 100%% height = 100%% } slotsize = { width = 335 height = 36 } format = "UPPER_LEFT" @@ -2063,6 +2570,53 @@ guiTypes = { } + containerWindowType = { + name = "naval_base_selection_item" + position = { x=0 y=0 } + size = { width=272 height=35 } + clipping = no + + background = { + name = "Background" + spriteType ="GFX_deploy_port_fleet_bg" + clicksound = click_default + } + + iconType = { + name = "icon" + position = { x=0 y=4 } + spriteType = "GFX_deploy_port_fleet_icons" + } + + iconType = { + name = "naval_headquarter_icon" + position = { x= 35 y = 4 } + scale = 0.6 + quadTextureSprite ="GFX_buildings_strip" + hide = yes + } + + iconType = { + name = "naval_supply_icon" + position = { x= 60 y = 4 } + scale = 0.6 + quadTextureSprite ="GFX_buildings_strip" + hide = yes + } + + instantTextboxType = { + name = "name" + position = { x = 120 y = 9 } + font = "hoi_18b" + borderSize = {x = 0 y = 0} + text = "somewhere" + maxWidth = 272 + maxHeight = 25 + format = left + alwaystransparent = yes + } + } + containerWindowType = { name = "ship_refit_equipment_view" position = { x=-346 y=81} diff --git a/src/interface/vnr_user_interface_assets.gfx b/src/interface/vnr_user_interface_assets.gfx index 16020f2..b3b2f1b 100755 --- a/src/interface/vnr_user_interface_assets.gfx +++ b/src/interface/vnr_user_interface_assets.gfx @@ -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" diff --git a/src/interface/z_generic_icons.gfx b/src/interface/z_generic_icons.gfx index 4c59b58..b09b3e9 100755 --- a/src/interface/z_generic_icons.gfx +++ b/src/interface/z_generic_icons.gfx @@ -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" + } } \ No newline at end of file diff --git a/src/interface/z_navy_techtree.gfx b/src/interface/z_navy_techtree.gfx index 238faad..c5ea9fc 100755 --- a/src/interface/z_navy_techtree.gfx +++ b/src/interface/z_navy_techtree.gfx @@ -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" diff --git a/src/localisation/english/replace/doctrines_l_english.yml b/src/localisation/english/replace/doctrines_l_english.yml new file mode 100755 index 0000000..f715d8c --- /dev/null +++ b/src/localisation/english/replace/doctrines_l_english.yml @@ -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: "高爆鱼雷战斗部" \ No newline at end of file diff --git a/src/localisation/english/replace/naval_units_l_english.yml b/src/localisation/english/replace/naval_units_l_english.yml index cbde26d..13746fe 100755 --- a/src/localisation/english/replace/naval_units_l_english.yml +++ b/src/localisation/english/replace/naval_units_l_english.yml @@ -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: "舰载鱼雷轰炸机" @@ -32,4 +32,6 @@ gas_leakage: "油气泄露" 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: "甲板受损" \ No newline at end of file + damaged_bb_flight_deck: "甲板受损" + support_ship: "勤务舰" + support_ship_desc: "一类负责舰队日常事务和杂役的舰船。" \ No newline at end of file diff --git a/src/localisation/english/replace/navy_rework_welcome_l_english.yml b/src/localisation/english/replace/navy_rework_welcome_l_english.yml index cf322ac..6111bdc 100755 --- a/src/localisation/english/replace/navy_rework_welcome_l_english.yml +++ b/src/localisation/english/replace/navy_rework_welcome_l_english.yml @@ -4,7 +4,7 @@ navy_rework_welcome_splash_tab_3: "额外信息" navy_rework_welcome_splash_tab_4: "致谢" navy_rework_options_button_text: "继续" - navy_rework_welcome_splash_tab_1_content: "§Hv2.5 “圣克鲁斯”§!\n\n§C重要新增:§!\n\n-新特殊项目:潜艇通气管\n-新科技:归航信标\n-新模块:通气管原型,轻型燃气轮机,巡洋舰燃气轮机\n-降低所有船体的资源消耗到合适的水平\n-增加开局规则,允许美国、英国和日本的开局舰队全部转为专家设计\n\n§C更新:§!\n\n-航母夜战科技被新科技替换\n-移除燃气轮机科技和重型燃气轮机模块,轻型和巡洋舰燃气轮机分别由相关的冷战科技解锁\n-移除护航航母科技,改为1940航母船体科技附赠\n-增加小型机库的造价\n-平衡一些模块的可靠性修正\n-强力甲板现在被重新分类为飞行甲板模块\n-平衡超重型主炮和超重引擎的速度修正\n-水上飞机弹射器会降低更多的航速\n-为航空战列舰增加甲板致命伤效果\n-平衡战列舰防御相关模块的效果\n-增加装甲甲板的造价\n-增加深水炸弹模块的速度惩罚\n-将小型机库和航空战列舰机库单独划为特殊机库种类\n-增加一些小几率出现的致命损伤所造成的伤害\n-增加所有炮弹模块带来的命中率修正(正面或负面皆有)\n-降低一些舰炮科技的科研时间\n-更新部分AI模板\n-略微降低美国AI大规模建造船坞的倾向\n-降低AI海军分配到护航和水雷战相关任务的编队数\n-微调海军条约的吨位限制\n-加强舰队防空对减伤效果的加成\n-改进部分规则文字的描述,指向性更加明确\n-重做设计器中舰炮大类的图标\n\n§C修复:§!\n\n-修复AI科技自动解锁模式开启时AI无法正确获取雷达的问题\n-修复部分国家由于缺少超重型船体项目无法选择国策的问题\n-修复商船航母有民用材料时无法建造的问题\n-修复巡洋舰可以安装两个炮弹模块的问题\n\n感谢你的游玩!" + navy_rework_welcome_splash_tab_1_content: "§Hv2.6 “塔拉瓦雷霆”§!\n\n§C重要新增:§!\n\n-适配抗战到底更新\n-重做所有的海军学说\n-导弹科技树移动到海军武备区域\n\n§C更新:§!\n\n-为海军支援科技增加一些鼠标悬停弹窗的艺术插图\n-降低水上飞机弹射器的反潜\n-删除俯冲轰炸机科技对穿甲炸弹的依赖\n-调高德国登陆挪威的AI倾向\n-意大利AI会试图争夺中地中海\n-AI禁用海域的上限调高\n-下调100%护航效率时对命中率的加成\n-后期的主力舰船体提速\n-调整支援舰船的数值到合理的范畴\n-替换支援船和维修船的立绘\n-重做部分科技图标\n-修改部分海军历史文本\n\n§C修复:§!\n\n-修复代码中的一些重复定义\n\n感谢你的游玩!" navy_rework_welcome_splash_tab_2_content: "§H这里包含了你想知道的关于海军重置的一切。§!\n\n§C设计器-§!\n£white_dot 在设计§Y驱逐舰§!、§Y巡洋舰§!或§Y战列舰§!的时候,§Y主炮§!是和历史唯一的一一对应的装备。由于它们的火力和穿甲据此做了平衡,§R请确保它们的数量和现实中接近§!。诸如§Y副炮§!和§Y鱼雷§!等装备则与原版没有区别。\n£white_dot 一些在原版受限的装备在本模组中是开放的,比如你可以建造超重炮战列舰,轻炮重巡,无甲巡洋舰等等。\n£white_dot 舰船角色在驱逐舰和巡洋舰上是必须的,它们可以提供不同的增益并解锁特殊的部件。\n£white_dot 巡洋舰的主力屏卫之分不由主炮口径为标准。所有巡洋舰(除装甲舰外)都初始默认为屏卫舰,且需要特殊的角色才能让它们成为主力舰。\n£white_dot §Y导弹§!可以安装在晚期的重型或巡洋舰船体上,不过后者需要专门的导弹巡洋舰角色来安装。\n£white_dot 此模组中实现最大屏卫效率的屏卫/主力比例为2\n£white_dot 鱼雷可以对重型舰船造成巨量的伤害,不过重型装甲只能提供非常有限的鱼雷防护,你需要安装§Y鱼雷防御系统§!来避免这一点。\n£white_dot 主炮的穿甲经过一定的平衡。其基础穿深为同时期装甲的1.1倍,这也意味着基础的装甲钢和混合防护方案可以避免被击穿,而下一代主炮则可以击穿使用重点防护的该型战舰。\n£white_dot 海战中的甲弹对抗公式以如下规则计算,穿甲和装甲的比值与伤害权重之间的映射关系为:超过200%为200%伤害,100%到200%为100%伤害,85%到100%为70%伤害,75%到85%为60%伤害,70%到75%为45%伤害,65%到70%为35%伤害,60%到65%为20%伤害,55%到60%为10%伤害,50%到55%为5%伤害,30%到50%为2%伤害,小于30%为1%伤害。\n£white_dot §Y超重型主炮§!根据炮管数量和§Y重型主炮§!归类在一起,但是它们仍然在某些船体上受到安装限制。\n£white_dot 设计器中的舰船分类符号可以帮助你更好地管理舰队。其仅仅表示该国对舰船的分类和定义,没有实际效果。\n£white_dot 辅助船非常脆弱,但是航程极长。由于舰队最大航程是由平均数决定的,因此在舰队中加入一些辅助船可以增加航程。\n\n§C科技树-§!\n£white_dot 尽管科技树的外观变化巨大,但是它的本质仍然和原版类似,你不需要花费大量时间去理解。\n£white_dot 并不是所有科技都是有价值的,请根据你的战略和地缘情况理智选择。\n£white_dot 子科技需要船体科技研究完成才能解锁。其中有一些还需要非海军科技的进步来推动。例如,主动声呐需要被动声呐研究完成,而一些火控系统则需要工程科技的进步作为前提。\n\n§C海战-§!\n£white_dot 海战的最短时间§Y已经被提高到20小时,主力舰在第22小时开火,其他舰艇在第30小时开火§!,而§G航母则可以在刚加入战斗时就参与进攻§!。§Y航母堆叠限制§!被放宽到6。你使用舰载机的方式在本模组中更加重要。\n£white_dot 舰艇的防空和舰载战斗机的伤害与命中率都获得了提升。一支没有战斗机护航的航母舰队可能会在进攻中损失更多的舰载机。\n£white_dot 基础的阵位被削减为50%,但优势的水面探测数值可以带来最多20%的阵位奖励。\n£white_dot 堆叠带来的阵位惩罚为每超过敌方数量的100%时增加30%,最高可达150%。只有舰队规模超过65时才会触发。\n£white_dot 水上飞机弹射器、航母和声呐在反潜战中的表现都更加有用和强力,而§Y潜艇§!基础的§Y可见度§!相较原版被§R增加§!了,在面对有良好反潜能力的舰队时,潜艇不再拥有优势。\n£white_dot AI的设计模板是刻意默认设置为§Y史实向§!的。尽管这些模板比原版要强一些,但是过去的最优设计仍然是有效的。\n\n§C其他-§!\n£white_dot 玩家和AI都享有§G-15%§!海军燃料消耗减免。\n£white_dot 单个船厂的产出已被提高到§G160%§!,一般在没有加成的情况下,建造一艘满配战列舰的时间在1-2年之间。\n£white_dot AI控制的主要国家会分别在1940年,1943年,1945年和冷战时期(如果没有投降的话)获得一批海军科技和独特的舰船设计。\n£white_dot AI会根据历史上的学说选择和战争情况选择不同的海军建造策略(包括舰载机)。例如,原版的§g德国§!会更加专注于潜艇,而§B美国§!则会重视航母。" navy_rework_welcome_splash_tab_3_content: "§H这里罗列关于海军重置的其他信息。§!\n\n§C兼容性-§!\n£white_dot 除非有§Y兼容包§!,本模组与修改科技树的模组不兼容,已有的兼容包链接都会在创意工坊界面列出。\n£white_dot §R所有生成舰船设计的国策/事件/决议都会失效,这是为了兼容性的考量和必要牺牲。§!\n\n§C二次创作-§!\n£white_dot 除了56之路外,不会再有其他的官方兼容包发布,希望社区可以更多地参与此事。目前日共重置与日本史实国策重做已完全兼容本模组。\n£white_dot 所有人都可以随意利用本模组的资源(代码/图标/文本),但在使用中请标明出处并通知我。感谢你的理解。" navy_rework_welcome_splash_tab_4_content: "大家好,海军重置已经走过了艰难的开发阶段,如今史实设计器、初始海军编制和设计、图标和科技树都已经基本完成,整个大框架完成后,剩余的工作便是进一步丰富和扩充,而这相比之前的开拓等等都要简单一些。借此机会我想和大家讲讲这个mod的过去和未来。\n\n我是2016年入的钢4坑,在加里波第的噩梦版本,也就是0.6时期接触到的KR,当时就被它详实有趣的世界观所吸引,之后几年KR一直是我玩的最多的mod之一。KR在0.8发布了海军重做,也是我最喜欢最兴奋的一个版本,由此我开始对海军感兴趣,也越发经常地想象KR世界观中的海军和军舰会是什么样子的。\n\n2021年春节前夕的一个周五下午,我在办公室摸鱼逛reddit,看到了一位外国网友写的对KR中加拿大和日本海军的战舰原型考证,这篇文章深深吸引了我,我用了一个下午翻译后发布到了贴吧上,收获了很多人的支持。尽管后来因为屏蔽的问题我转战知乎,但我始终将KR海军考据的系列坚持了下来,从海军大国到一些特色小国我都查阅了大量资料,也为这个mod打下了基础。\n\n在KR0.22更新之前,开发因为一些原因多次削减了海军的内容,我一直感到很遗憾,0.22的大改给了我这个动力去做之前我不敢想的事情。虽然写代码是我的老本行,但是美工、文案和汉译英等等我都是从头开始学,一次次试错,一个人陆陆续续弄了大半年,发布了KR和KX两版,才做到现在这个地步,我从中也学到了很多。如今,我们也终于迎来了原版海军重置的发布。\n\n我想借这个机会感谢所有在这个过程中帮助我的朋友和玩家,包括启发我的reddit网友Tragic-tragedy,贴吧上对我的史料斧正的朋友,在知乎上追更的朋友,还有许多订阅海军重置的玩家,没有你们的支持就没有这个mod,谢谢你们!\n\n最后,我还想借此机会感谢我的外公,他曾在中国人民解放军海军服役了几十年,在我的孩提时代启发了我对海军的认识。上世纪七八十年代,我的外公分别在几艘海军科考船上服役,担任过气象专家和部门政委等职务,他的大部分军旅生涯是在向阳红10号船上度过的,这也是当时中国自主设计建造的吨位最大的远洋科考船。1980年,向阳红10号作为新中国历史上最大规模远洋舰队的一员参加了中国第一次洲际弹道导弹发射试验,这就是大家熟知的580任务。我的外公当时负责气象部门,为回收导弹黑匣子的时间窗口提供预报支持。四年后,他随船参加了中国第一次南极科考任务,并在乔治王岛参与了长城站的建设。向阳红10号船之后被改装成了远望4号,在2007年遇到事故损坏,最后成了东风21D的靶子,每每说起来,他还是有些惋惜。我能看出来他对曾经的海军生涯有着复杂的情感,一方面为对国家做出贡献而感到骄傲光荣,而另一方面又为错过了孩子们的成长感到缺憾。不过尽管如此,他从小给我讲述的故事仍然点燃了我对海军的兴趣,为这个mod播下了一颗种子。\n\n随着我现在工作生活越来越忙,不知道海军重置还能维持多久,所以我在此也希望成立一个小团队,用半做半学的方式,把这个mod延续下去。\n\n有兴趣加我qq:1245385638,或海军重置群:162239327" \ No newline at end of file diff --git a/src/localisation/english/replace/research_l_english.yml b/src/localisation/english/replace/research_l_english.yml index d2b7571..d628982 100755 --- a/src/localisation/english/replace/research_l_english.yml +++ b/src/localisation/english/replace/research_l_english.yml @@ -175,8 +175,6 @@ high_speed_civilian_engine_desc: "考虑到高速引擎的造价昂贵,民用船舶通常会使用更加经济的设备。但是和海军后勤的效率比起来,这些代价都不算什么。" armed_civilian_ship: "伪装巡洋舰" armed_civilian_ship_desc: "伪装巡洋舰是一种外观酷似民用船的军舰。在世界大战中,这种舰船得到了广泛的应用,长期活跃在反潜和航路袭击等行动中。" - repair_ship: "维修船" - repair_ship_desc: "维修船是舰队中的工蜂,一般在装备和人员层面负责提供广泛的修理服务,包括了严重的机械故障和战斗损伤。" floating_dry_dock: "浮船坞" floating_dry_dock_desc: "浮动干船坞简称浮船坞,是一个以在海上维修舰船为目的建造的可拖动维修平台。\n为了能从下方托起舰船的底部,其被设计为可以半潜入水下,在海水排出后上浮,并将船只托离水面。由此,船只与海水分隔开,也就可以如在陆地上的干船坞一样进行维修作业了。" logistic_system_redundancy: "后勤系统冗余" @@ -268,52 +266,6 @@ naval_tactical_data_system_desc: "海军战术数据系统(NTDS)是20世纪50年代开发的用于战舰的计算机信息处理系统。它可以从不同船只上的多个传感器获取报告,并将其整理以生成一张统一的战场态势图。然后,这些信息可以被转发回船只和​​武器操作员。" tactical_air_navigation_system: "战术空中导航系统" tactical_air_navigation_system_desc: "战术空中导航系统通常简称为TACAN,是军用飞机使用的导航系统,相比过去的单源无线电信标在性能上有了较大提升,它可以为使用者提供到地面机场或航母的方位和距离等航行信息。" - TITLE_FLEET_IN_BEING: "舰队决战" - TITLE_TRADE_INTERDICTION: "交通线破袭" - TITLE_BASE_STRIKE: "空海一体战" - torpedo_groups: "鱼雷战队" - torpedo_groups_desc: "我们的护卫舰艇主要的任务就是运用鱼雷骚扰敌军舰队,打乱他们的阵型,为我方创造有利条件。" - decisive_battle: "舰队决战战略" - decisive_battle_desc: "当合适的时机来临时,我们的舰队将在陆地和空中单位的支援下出击,在一场决战中彻底终结敌人。" - armed_merchantmen: "武装商船" - armed_merchantmen_desc: "为了应对水面上和水下猖獗的破袭战,武装商船将成为护卫舰缺席情况下的合适选项。" - submarine_picket: "潜艇哨戒" - submarine_picket_desc: "通过在敌军港口和重要节点附近部署一队潜艇,我们可以在对方没有注意的情况下监视其一举一动。" - submarine_picket_bs: "潜艇哨戒" - coastal_operations: "近海行动" - coastal_operations_desc: "虽然潜艇在浅海很容易被侦测到,但是在这些区域部署一队潜艇仍然可以对来犯的海上和两栖行动构成严重威胁。\n\n" - ambush_tactics: "伏击战术" - ambush_tactics_desc: "进入伏击位置的潜艇加之广泛的布雷行动会使我们有更高的机会击沉敌军舰船。" - tonnage_war: "吨位战" - tonnage_war_desc: "瘫痪一个国家战争潜力的关键在于摧毁这个国家的商船队。只要我们击沉对方舰船的速度超过他们新建的速度,我们将在这场消耗战中获胜。" - guerrilla_tactics: "游击战术" - guerrilla_tactics_desc: "建立制海权并不是海军的目标,相反,我们应该坚决执行一击脱离的策略。等到敌人发现沉船残骸的时候,我们的船早就离开了。" - adjacent_projection: "毗邻地区力量投射" - adjacent_projection_desc: "当我们的舰队分布在海洋各处时,我们也要确保势力范围内不被侵犯。" - naval_concealment: "隐蔽措施" - naval_concealment_desc: "舰队在任何情况下都不得暴露行踪,但是当它的位置揭晓之时,将是敌人的灭亡之日。" - carrier_task_forces: "制海权优先" - carrier_task_forces_desc: "航母不仅仅是舰队的核心,还是一国最重要的战争资产。摧毁敌人的航母永远是海战中的最高目标。\n\n" - naval_air_force: "以空制海" - naval_air_force_desc: "尽管不被大多数人所接受,但是越来越多的理论证明通过长程陆基飞机确保制空权是海上胜利的基础。\n\n" - frequent_air_raid: "全甲板攻击" - frequent_air_raid_desc: "海战的基本原则在于击沉敌军航母并保存我方航母。通过以较小规模的机群执行多波次高频率的空袭可以同时满足这两个要求。" - mass_air_raid: "大规模空袭" - mass_air_raid_desc: "航母只不过是海上的浮动机场,而恰恰是飞机对水面舰队构成了最重大的威胁。从机场出击的大规模空袭编队在一次攻击中瘫痪敌方航母的起降能力便能夺取制空权,这足以支持我们完成其他战略目标。" - flight_deck_management: "甲板管理" - flight_deck_management_desc: "即使载机量保持不变,一艘有着良好飞行甲板管理规章的航母在起降活动中可以将舰载机的出击效率提升到远超过去的程度,使得航母作战的表现变得更好。" - circle_formation: "轮形阵" - circle_formation_desc: "海军的舰队应该围绕航母组建。如此我们只需要两种船,航母和护航舰。轮形阵会将航母围绕在阵型中央,通过周边舰船防空炮构成的交叉火力保护航母免受攻击。" - cat_fleet_in_being: "舰队决战学说" - cat_trade_interdiction: "交通线破袭学说" - cat_base_strike: "空海一体战学说" - FLEET_IN_BEING_DESC: "舰队决战着眼于利用优势的防御姿态维持存在和恫吓敌人,但是在时机合适的前提下仍然会试图在一场战斗中彻底摧毁敌军舰队。" - TRADE_INTERDICTION_DESC: "交通线破袭将商船作为主要攻击目标,以此削弱敌方的经济和军事工业,在争夺制海权上则常常保持被动。" - BASE_STRIKE_DESC: "空海一体战学派相信制空权是制海权的核心,因此将对空域的控制视为超越一切因素的关键。" - fast_battleship_primacy: "高速战列舰主导" - fast_battleship_primacy_desc: "一支有着统一高航速和全面性能的战列舰舰队足以胜任大海上的所有挑战。\n\n" - scouting_fleet_primacy: "侦察舰队主导" - scouting_fleet_primacy_desc: "高速战列舰的好处被过分夸大了,过去战列舰和战列巡洋舰的分工协作在如今仍然是有意义的,且已经被证明是经济且行之有效的。\n\n" vnr_cruiser_cost_1: "条约巡洋舰" vnr_cruiser_cost_2: "新型材料" vnr_destroyer_cost_1: "驱逐舰大规模生产" @@ -322,7 +274,6 @@ ship_rocket_artillery: "舰载火箭炮" ship_rocket_artillery_desc: "火箭科学的发展推动了火箭弹的出现,除了可以在陆战中应用外,海军也试图将这一威力十足的武器与军舰做结合。火箭炮使用没有制导装置的火箭弹,虽然精度不高,不过一旦击中便会对目标造成不可挽回的损伤,同时近炸引信的发展在一定程度上也可以弥补精度的问题。" modifier_production_cost_max_ship_hull_submarine: "潜艇最大成本" - submarine_picket_bs_desc: "通过在敌军港口和重要节点附近部署一队潜艇,我们可以在对方没有注意的情况下监视其一举一动。" unmanned_gun_turret: "遥控炮塔" unmanned_gun_turret_desc: "从五十年代开始,舰艇的炮塔开始逐步实现无人化,以雷达或其他信号源辅助的舰船控制中心可以使用遥控技术操控火炮。" modern_generic_battery: "海军自动武器系统" @@ -336,16 +287,12 @@ improved_ship_torpedo_launcher: "改进鱼雷发射器" advanced_ship_torpedo_launcher: "先进鱼雷发射器" modern_ship_torpedo_launcher: "现代鱼雷发射器" - wolfpacks: "狼群战术" oxygen_torpedo: "压缩氧气鱼雷" oxygen_torpedo_desc: "鱼雷发动机可以利用的燃料受到其内含的氧气的限制。由于压缩空气只含有21%的氧气,实际的利用率并不高,而氧气鱼雷则使用压缩过的纯氧,其拥有比当代现役鱼雷更强的性能。\n\n" electric_torpedo: "电动鱼雷" electric_torpedo_desc: "不同于会留下一长串容易被观测到的气泡轨迹的蒸汽鱼雷,一枚带有电动引擎的鱼雷在击中目标前几乎是不可见的。这也意味着对方无法通过追踪鱼雷轨迹找到发射它的潜艇。\n\n" advanced_torpedo_ballistics: "先进鱼雷弹道学" advanced_torpedo_ballistics_desc: "世界大战时期,各国的潜艇普遍使用计算尺和机械式计算器等设备辅助鱼雷弹道计算,这一方式主要依靠操作者的计算能力且精度较差。随着流体动力学和鱼雷推进技术的进步,大量对不同水文环境下鱼雷运动轨迹的研究极大地促进了潜艇进攻战术的发展。" - fleet_in_being_tree: "舰队决战学说" - trade_interdiction_tree: "交通线破袭学说" - base_strike_tree: "空海一体战学说" tactical_data_link: "战术数据链" tactical_data_link_desc: "战术数据链是一套利用无线电波或信号线缆进行通信的数据传输标准。接入该标准的所有军用级C3系统都会使用统一的格式进行数据传输、转发和收取,这将保证友方单位之间的数据传输和通信更加安全且有效。\n\n§Y研究完成后,处于你阵营的盟友将会获得一个决议接入你的数据链系统。如果选择接入后,将不能再选择研究自己的数据链。§!" tactical_data_link_for_member: "接入盟友战术数据链" @@ -425,4 +372,17 @@ carrier_radio_range: "归航信标" carrier_radio_range_desc: "随着近些年来舰载机在载荷与航程方面的崛起,航母作战面临着一项重大挑战:任务结束后,飞行员如何在茫茫大海上找到并返回移动中的航母。无线电技术的进步在一定程度上解决了这个问题。在这个构想中,航母会在有限的时间窗口内发送特定频率的无线电信号,就如同一个信标。携带有接收器的战斗机可以据此确定返航的航向以及会合时间表。这项技术对于在恶劣天气和超远距离作战的情况下安全回收起到了至关重要的作用。" escort_carriers_ship: "护航航母" - escort_carriers_ship_desc: "潜艇的进步导致参战国的海上航线受到了严重的威胁,虽然飞机的反潜效率较高,但是无法为大洋深处的商船队提供掩护,正规航母的价值又限制其必须用于正面战场。小巧的护航航母在此时出现,其拥有小型机库,因为使用了部分民船规格的部件,建造成本也非常便宜。" \ No newline at end of file + escort_carriers_ship_desc: "潜艇的进步导致参战国的海上航线受到了严重的威胁,虽然飞机的反潜效率较高,但是无法为大洋深处的商船队提供掩护,正规航母的价值又限制其必须用于正面战场。小巧的护航航母在此时出现,其拥有小型机库,因为使用了部分民船规格的部件,建造成本也非常便宜。" + support_fleet: "支援船队" + support_fleet_desc: "一支支援舰船组成的船队可以让海军的行动更加有可持续性。" + support_fleet_ncns: "支援船队" + support_fleet_ncns_desc: "一支支援舰船组成的船队可以让海军的行动更加有可持续性。" + floating_dry_dock_ncns: "浮船坞" + floating_dry_dock_ncns_desc: "浮动干船坞简称浮船坞,是一个以在海上维修舰船为目的建造的可拖动维修平台。\n为了能从下方托起舰船的底部,其被设计为可以半潜入水下,在海水排出后上浮,并将船只托离水面。由此,船只与海水分隔开,也就可以如在陆地上的干船坞一样进行维修作业了。" + logistic_system_redundancy_ncns: "后勤系统冗余" + logistic_system_redundancy_ncns_desc: "为了保证后勤系统在最坏的情况下仍可以正常运转,在后勤行动展开前保证一些冗余是很有必要的。这一方法是指通过储存和运输两倍甚至三倍于前线需要的补给,来保证任务的成功率,即使是发生意外和不测,也可以有足够的给养交付前线单位。" + bb_tech_11_tt: "\n\n\n\n\n£GFX_bb_tech_11\n\n\n\n\n\n" + ca_tech_12_tt: "\n\n\n\n\n£GFX_ca_tech_12\n\n\n\n\n\n" + dd_tech_10_tt: "\n\n\n\n\n£GFX_dd_tech_10\n\n\n\n\n\n" + dd_tech_11_tt: "\n\n\n\n\n£GFX_dd_tech_11\n\n\n\n\n\n" + dd_tech_12_tt: "\n\n\n\n\n£GFX_dd_tech_12\n\n\n\n\n\n" \ No newline at end of file diff --git a/src/localisation/replace/doctrines_l_english.yml b/src/localisation/replace/doctrines_l_english.yml new file mode 100755 index 0000000..f715d8c --- /dev/null +++ b/src/localisation/replace/doctrines_l_english.yml @@ -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: "高爆鱼雷战斗部" \ No newline at end of file diff --git a/src/localisation/replace/naval_units_l_english.yml b/src/localisation/replace/naval_units_l_english.yml index cbde26d..13746fe 100755 --- a/src/localisation/replace/naval_units_l_english.yml +++ b/src/localisation/replace/naval_units_l_english.yml @@ -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: "舰载鱼雷轰炸机" @@ -32,4 +32,6 @@ gas_leakage: "油气泄露" 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: "甲板受损" \ No newline at end of file + damaged_bb_flight_deck: "甲板受损" + support_ship: "勤务舰" + support_ship_desc: "一类负责舰队日常事务和杂役的舰船。" \ No newline at end of file diff --git a/src/localisation/replace/navy_rework_welcome_l_english.yml b/src/localisation/replace/navy_rework_welcome_l_english.yml index cf322ac..6111bdc 100755 --- a/src/localisation/replace/navy_rework_welcome_l_english.yml +++ b/src/localisation/replace/navy_rework_welcome_l_english.yml @@ -4,7 +4,7 @@ navy_rework_welcome_splash_tab_3: "额外信息" navy_rework_welcome_splash_tab_4: "致谢" navy_rework_options_button_text: "继续" - navy_rework_welcome_splash_tab_1_content: "§Hv2.5 “圣克鲁斯”§!\n\n§C重要新增:§!\n\n-新特殊项目:潜艇通气管\n-新科技:归航信标\n-新模块:通气管原型,轻型燃气轮机,巡洋舰燃气轮机\n-降低所有船体的资源消耗到合适的水平\n-增加开局规则,允许美国、英国和日本的开局舰队全部转为专家设计\n\n§C更新:§!\n\n-航母夜战科技被新科技替换\n-移除燃气轮机科技和重型燃气轮机模块,轻型和巡洋舰燃气轮机分别由相关的冷战科技解锁\n-移除护航航母科技,改为1940航母船体科技附赠\n-增加小型机库的造价\n-平衡一些模块的可靠性修正\n-强力甲板现在被重新分类为飞行甲板模块\n-平衡超重型主炮和超重引擎的速度修正\n-水上飞机弹射器会降低更多的航速\n-为航空战列舰增加甲板致命伤效果\n-平衡战列舰防御相关模块的效果\n-增加装甲甲板的造价\n-增加深水炸弹模块的速度惩罚\n-将小型机库和航空战列舰机库单独划为特殊机库种类\n-增加一些小几率出现的致命损伤所造成的伤害\n-增加所有炮弹模块带来的命中率修正(正面或负面皆有)\n-降低一些舰炮科技的科研时间\n-更新部分AI模板\n-略微降低美国AI大规模建造船坞的倾向\n-降低AI海军分配到护航和水雷战相关任务的编队数\n-微调海军条约的吨位限制\n-加强舰队防空对减伤效果的加成\n-改进部分规则文字的描述,指向性更加明确\n-重做设计器中舰炮大类的图标\n\n§C修复:§!\n\n-修复AI科技自动解锁模式开启时AI无法正确获取雷达的问题\n-修复部分国家由于缺少超重型船体项目无法选择国策的问题\n-修复商船航母有民用材料时无法建造的问题\n-修复巡洋舰可以安装两个炮弹模块的问题\n\n感谢你的游玩!" + navy_rework_welcome_splash_tab_1_content: "§Hv2.6 “塔拉瓦雷霆”§!\n\n§C重要新增:§!\n\n-适配抗战到底更新\n-重做所有的海军学说\n-导弹科技树移动到海军武备区域\n\n§C更新:§!\n\n-为海军支援科技增加一些鼠标悬停弹窗的艺术插图\n-降低水上飞机弹射器的反潜\n-删除俯冲轰炸机科技对穿甲炸弹的依赖\n-调高德国登陆挪威的AI倾向\n-意大利AI会试图争夺中地中海\n-AI禁用海域的上限调高\n-下调100%护航效率时对命中率的加成\n-后期的主力舰船体提速\n-调整支援舰船的数值到合理的范畴\n-替换支援船和维修船的立绘\n-重做部分科技图标\n-修改部分海军历史文本\n\n§C修复:§!\n\n-修复代码中的一些重复定义\n\n感谢你的游玩!" navy_rework_welcome_splash_tab_2_content: "§H这里包含了你想知道的关于海军重置的一切。§!\n\n§C设计器-§!\n£white_dot 在设计§Y驱逐舰§!、§Y巡洋舰§!或§Y战列舰§!的时候,§Y主炮§!是和历史唯一的一一对应的装备。由于它们的火力和穿甲据此做了平衡,§R请确保它们的数量和现实中接近§!。诸如§Y副炮§!和§Y鱼雷§!等装备则与原版没有区别。\n£white_dot 一些在原版受限的装备在本模组中是开放的,比如你可以建造超重炮战列舰,轻炮重巡,无甲巡洋舰等等。\n£white_dot 舰船角色在驱逐舰和巡洋舰上是必须的,它们可以提供不同的增益并解锁特殊的部件。\n£white_dot 巡洋舰的主力屏卫之分不由主炮口径为标准。所有巡洋舰(除装甲舰外)都初始默认为屏卫舰,且需要特殊的角色才能让它们成为主力舰。\n£white_dot §Y导弹§!可以安装在晚期的重型或巡洋舰船体上,不过后者需要专门的导弹巡洋舰角色来安装。\n£white_dot 此模组中实现最大屏卫效率的屏卫/主力比例为2\n£white_dot 鱼雷可以对重型舰船造成巨量的伤害,不过重型装甲只能提供非常有限的鱼雷防护,你需要安装§Y鱼雷防御系统§!来避免这一点。\n£white_dot 主炮的穿甲经过一定的平衡。其基础穿深为同时期装甲的1.1倍,这也意味着基础的装甲钢和混合防护方案可以避免被击穿,而下一代主炮则可以击穿使用重点防护的该型战舰。\n£white_dot 海战中的甲弹对抗公式以如下规则计算,穿甲和装甲的比值与伤害权重之间的映射关系为:超过200%为200%伤害,100%到200%为100%伤害,85%到100%为70%伤害,75%到85%为60%伤害,70%到75%为45%伤害,65%到70%为35%伤害,60%到65%为20%伤害,55%到60%为10%伤害,50%到55%为5%伤害,30%到50%为2%伤害,小于30%为1%伤害。\n£white_dot §Y超重型主炮§!根据炮管数量和§Y重型主炮§!归类在一起,但是它们仍然在某些船体上受到安装限制。\n£white_dot 设计器中的舰船分类符号可以帮助你更好地管理舰队。其仅仅表示该国对舰船的分类和定义,没有实际效果。\n£white_dot 辅助船非常脆弱,但是航程极长。由于舰队最大航程是由平均数决定的,因此在舰队中加入一些辅助船可以增加航程。\n\n§C科技树-§!\n£white_dot 尽管科技树的外观变化巨大,但是它的本质仍然和原版类似,你不需要花费大量时间去理解。\n£white_dot 并不是所有科技都是有价值的,请根据你的战略和地缘情况理智选择。\n£white_dot 子科技需要船体科技研究完成才能解锁。其中有一些还需要非海军科技的进步来推动。例如,主动声呐需要被动声呐研究完成,而一些火控系统则需要工程科技的进步作为前提。\n\n§C海战-§!\n£white_dot 海战的最短时间§Y已经被提高到20小时,主力舰在第22小时开火,其他舰艇在第30小时开火§!,而§G航母则可以在刚加入战斗时就参与进攻§!。§Y航母堆叠限制§!被放宽到6。你使用舰载机的方式在本模组中更加重要。\n£white_dot 舰艇的防空和舰载战斗机的伤害与命中率都获得了提升。一支没有战斗机护航的航母舰队可能会在进攻中损失更多的舰载机。\n£white_dot 基础的阵位被削减为50%,但优势的水面探测数值可以带来最多20%的阵位奖励。\n£white_dot 堆叠带来的阵位惩罚为每超过敌方数量的100%时增加30%,最高可达150%。只有舰队规模超过65时才会触发。\n£white_dot 水上飞机弹射器、航母和声呐在反潜战中的表现都更加有用和强力,而§Y潜艇§!基础的§Y可见度§!相较原版被§R增加§!了,在面对有良好反潜能力的舰队时,潜艇不再拥有优势。\n£white_dot AI的设计模板是刻意默认设置为§Y史实向§!的。尽管这些模板比原版要强一些,但是过去的最优设计仍然是有效的。\n\n§C其他-§!\n£white_dot 玩家和AI都享有§G-15%§!海军燃料消耗减免。\n£white_dot 单个船厂的产出已被提高到§G160%§!,一般在没有加成的情况下,建造一艘满配战列舰的时间在1-2年之间。\n£white_dot AI控制的主要国家会分别在1940年,1943年,1945年和冷战时期(如果没有投降的话)获得一批海军科技和独特的舰船设计。\n£white_dot AI会根据历史上的学说选择和战争情况选择不同的海军建造策略(包括舰载机)。例如,原版的§g德国§!会更加专注于潜艇,而§B美国§!则会重视航母。" navy_rework_welcome_splash_tab_3_content: "§H这里罗列关于海军重置的其他信息。§!\n\n§C兼容性-§!\n£white_dot 除非有§Y兼容包§!,本模组与修改科技树的模组不兼容,已有的兼容包链接都会在创意工坊界面列出。\n£white_dot §R所有生成舰船设计的国策/事件/决议都会失效,这是为了兼容性的考量和必要牺牲。§!\n\n§C二次创作-§!\n£white_dot 除了56之路外,不会再有其他的官方兼容包发布,希望社区可以更多地参与此事。目前日共重置与日本史实国策重做已完全兼容本模组。\n£white_dot 所有人都可以随意利用本模组的资源(代码/图标/文本),但在使用中请标明出处并通知我。感谢你的理解。" navy_rework_welcome_splash_tab_4_content: "大家好,海军重置已经走过了艰难的开发阶段,如今史实设计器、初始海军编制和设计、图标和科技树都已经基本完成,整个大框架完成后,剩余的工作便是进一步丰富和扩充,而这相比之前的开拓等等都要简单一些。借此机会我想和大家讲讲这个mod的过去和未来。\n\n我是2016年入的钢4坑,在加里波第的噩梦版本,也就是0.6时期接触到的KR,当时就被它详实有趣的世界观所吸引,之后几年KR一直是我玩的最多的mod之一。KR在0.8发布了海军重做,也是我最喜欢最兴奋的一个版本,由此我开始对海军感兴趣,也越发经常地想象KR世界观中的海军和军舰会是什么样子的。\n\n2021年春节前夕的一个周五下午,我在办公室摸鱼逛reddit,看到了一位外国网友写的对KR中加拿大和日本海军的战舰原型考证,这篇文章深深吸引了我,我用了一个下午翻译后发布到了贴吧上,收获了很多人的支持。尽管后来因为屏蔽的问题我转战知乎,但我始终将KR海军考据的系列坚持了下来,从海军大国到一些特色小国我都查阅了大量资料,也为这个mod打下了基础。\n\n在KR0.22更新之前,开发因为一些原因多次削减了海军的内容,我一直感到很遗憾,0.22的大改给了我这个动力去做之前我不敢想的事情。虽然写代码是我的老本行,但是美工、文案和汉译英等等我都是从头开始学,一次次试错,一个人陆陆续续弄了大半年,发布了KR和KX两版,才做到现在这个地步,我从中也学到了很多。如今,我们也终于迎来了原版海军重置的发布。\n\n我想借这个机会感谢所有在这个过程中帮助我的朋友和玩家,包括启发我的reddit网友Tragic-tragedy,贴吧上对我的史料斧正的朋友,在知乎上追更的朋友,还有许多订阅海军重置的玩家,没有你们的支持就没有这个mod,谢谢你们!\n\n最后,我还想借此机会感谢我的外公,他曾在中国人民解放军海军服役了几十年,在我的孩提时代启发了我对海军的认识。上世纪七八十年代,我的外公分别在几艘海军科考船上服役,担任过气象专家和部门政委等职务,他的大部分军旅生涯是在向阳红10号船上度过的,这也是当时中国自主设计建造的吨位最大的远洋科考船。1980年,向阳红10号作为新中国历史上最大规模远洋舰队的一员参加了中国第一次洲际弹道导弹发射试验,这就是大家熟知的580任务。我的外公当时负责气象部门,为回收导弹黑匣子的时间窗口提供预报支持。四年后,他随船参加了中国第一次南极科考任务,并在乔治王岛参与了长城站的建设。向阳红10号船之后被改装成了远望4号,在2007年遇到事故损坏,最后成了东风21D的靶子,每每说起来,他还是有些惋惜。我能看出来他对曾经的海军生涯有着复杂的情感,一方面为对国家做出贡献而感到骄傲光荣,而另一方面又为错过了孩子们的成长感到缺憾。不过尽管如此,他从小给我讲述的故事仍然点燃了我对海军的兴趣,为这个mod播下了一颗种子。\n\n随着我现在工作生活越来越忙,不知道海军重置还能维持多久,所以我在此也希望成立一个小团队,用半做半学的方式,把这个mod延续下去。\n\n有兴趣加我qq:1245385638,或海军重置群:162239327" \ No newline at end of file diff --git a/src/localisation/replace/research_l_english.yml b/src/localisation/replace/research_l_english.yml index d2b7571..d628982 100755 --- a/src/localisation/replace/research_l_english.yml +++ b/src/localisation/replace/research_l_english.yml @@ -175,8 +175,6 @@ high_speed_civilian_engine_desc: "考虑到高速引擎的造价昂贵,民用船舶通常会使用更加经济的设备。但是和海军后勤的效率比起来,这些代价都不算什么。" armed_civilian_ship: "伪装巡洋舰" armed_civilian_ship_desc: "伪装巡洋舰是一种外观酷似民用船的军舰。在世界大战中,这种舰船得到了广泛的应用,长期活跃在反潜和航路袭击等行动中。" - repair_ship: "维修船" - repair_ship_desc: "维修船是舰队中的工蜂,一般在装备和人员层面负责提供广泛的修理服务,包括了严重的机械故障和战斗损伤。" floating_dry_dock: "浮船坞" floating_dry_dock_desc: "浮动干船坞简称浮船坞,是一个以在海上维修舰船为目的建造的可拖动维修平台。\n为了能从下方托起舰船的底部,其被设计为可以半潜入水下,在海水排出后上浮,并将船只托离水面。由此,船只与海水分隔开,也就可以如在陆地上的干船坞一样进行维修作业了。" logistic_system_redundancy: "后勤系统冗余" @@ -268,52 +266,6 @@ naval_tactical_data_system_desc: "海军战术数据系统(NTDS)是20世纪50年代开发的用于战舰的计算机信息处理系统。它可以从不同船只上的多个传感器获取报告,并将其整理以生成一张统一的战场态势图。然后,这些信息可以被转发回船只和​​武器操作员。" tactical_air_navigation_system: "战术空中导航系统" tactical_air_navigation_system_desc: "战术空中导航系统通常简称为TACAN,是军用飞机使用的导航系统,相比过去的单源无线电信标在性能上有了较大提升,它可以为使用者提供到地面机场或航母的方位和距离等航行信息。" - TITLE_FLEET_IN_BEING: "舰队决战" - TITLE_TRADE_INTERDICTION: "交通线破袭" - TITLE_BASE_STRIKE: "空海一体战" - torpedo_groups: "鱼雷战队" - torpedo_groups_desc: "我们的护卫舰艇主要的任务就是运用鱼雷骚扰敌军舰队,打乱他们的阵型,为我方创造有利条件。" - decisive_battle: "舰队决战战略" - decisive_battle_desc: "当合适的时机来临时,我们的舰队将在陆地和空中单位的支援下出击,在一场决战中彻底终结敌人。" - armed_merchantmen: "武装商船" - armed_merchantmen_desc: "为了应对水面上和水下猖獗的破袭战,武装商船将成为护卫舰缺席情况下的合适选项。" - submarine_picket: "潜艇哨戒" - submarine_picket_desc: "通过在敌军港口和重要节点附近部署一队潜艇,我们可以在对方没有注意的情况下监视其一举一动。" - submarine_picket_bs: "潜艇哨戒" - coastal_operations: "近海行动" - coastal_operations_desc: "虽然潜艇在浅海很容易被侦测到,但是在这些区域部署一队潜艇仍然可以对来犯的海上和两栖行动构成严重威胁。\n\n" - ambush_tactics: "伏击战术" - ambush_tactics_desc: "进入伏击位置的潜艇加之广泛的布雷行动会使我们有更高的机会击沉敌军舰船。" - tonnage_war: "吨位战" - tonnage_war_desc: "瘫痪一个国家战争潜力的关键在于摧毁这个国家的商船队。只要我们击沉对方舰船的速度超过他们新建的速度,我们将在这场消耗战中获胜。" - guerrilla_tactics: "游击战术" - guerrilla_tactics_desc: "建立制海权并不是海军的目标,相反,我们应该坚决执行一击脱离的策略。等到敌人发现沉船残骸的时候,我们的船早就离开了。" - adjacent_projection: "毗邻地区力量投射" - adjacent_projection_desc: "当我们的舰队分布在海洋各处时,我们也要确保势力范围内不被侵犯。" - naval_concealment: "隐蔽措施" - naval_concealment_desc: "舰队在任何情况下都不得暴露行踪,但是当它的位置揭晓之时,将是敌人的灭亡之日。" - carrier_task_forces: "制海权优先" - carrier_task_forces_desc: "航母不仅仅是舰队的核心,还是一国最重要的战争资产。摧毁敌人的航母永远是海战中的最高目标。\n\n" - naval_air_force: "以空制海" - naval_air_force_desc: "尽管不被大多数人所接受,但是越来越多的理论证明通过长程陆基飞机确保制空权是海上胜利的基础。\n\n" - frequent_air_raid: "全甲板攻击" - frequent_air_raid_desc: "海战的基本原则在于击沉敌军航母并保存我方航母。通过以较小规模的机群执行多波次高频率的空袭可以同时满足这两个要求。" - mass_air_raid: "大规模空袭" - mass_air_raid_desc: "航母只不过是海上的浮动机场,而恰恰是飞机对水面舰队构成了最重大的威胁。从机场出击的大规模空袭编队在一次攻击中瘫痪敌方航母的起降能力便能夺取制空权,这足以支持我们完成其他战略目标。" - flight_deck_management: "甲板管理" - flight_deck_management_desc: "即使载机量保持不变,一艘有着良好飞行甲板管理规章的航母在起降活动中可以将舰载机的出击效率提升到远超过去的程度,使得航母作战的表现变得更好。" - circle_formation: "轮形阵" - circle_formation_desc: "海军的舰队应该围绕航母组建。如此我们只需要两种船,航母和护航舰。轮形阵会将航母围绕在阵型中央,通过周边舰船防空炮构成的交叉火力保护航母免受攻击。" - cat_fleet_in_being: "舰队决战学说" - cat_trade_interdiction: "交通线破袭学说" - cat_base_strike: "空海一体战学说" - FLEET_IN_BEING_DESC: "舰队决战着眼于利用优势的防御姿态维持存在和恫吓敌人,但是在时机合适的前提下仍然会试图在一场战斗中彻底摧毁敌军舰队。" - TRADE_INTERDICTION_DESC: "交通线破袭将商船作为主要攻击目标,以此削弱敌方的经济和军事工业,在争夺制海权上则常常保持被动。" - BASE_STRIKE_DESC: "空海一体战学派相信制空权是制海权的核心,因此将对空域的控制视为超越一切因素的关键。" - fast_battleship_primacy: "高速战列舰主导" - fast_battleship_primacy_desc: "一支有着统一高航速和全面性能的战列舰舰队足以胜任大海上的所有挑战。\n\n" - scouting_fleet_primacy: "侦察舰队主导" - scouting_fleet_primacy_desc: "高速战列舰的好处被过分夸大了,过去战列舰和战列巡洋舰的分工协作在如今仍然是有意义的,且已经被证明是经济且行之有效的。\n\n" vnr_cruiser_cost_1: "条约巡洋舰" vnr_cruiser_cost_2: "新型材料" vnr_destroyer_cost_1: "驱逐舰大规模生产" @@ -322,7 +274,6 @@ ship_rocket_artillery: "舰载火箭炮" ship_rocket_artillery_desc: "火箭科学的发展推动了火箭弹的出现,除了可以在陆战中应用外,海军也试图将这一威力十足的武器与军舰做结合。火箭炮使用没有制导装置的火箭弹,虽然精度不高,不过一旦击中便会对目标造成不可挽回的损伤,同时近炸引信的发展在一定程度上也可以弥补精度的问题。" modifier_production_cost_max_ship_hull_submarine: "潜艇最大成本" - submarine_picket_bs_desc: "通过在敌军港口和重要节点附近部署一队潜艇,我们可以在对方没有注意的情况下监视其一举一动。" unmanned_gun_turret: "遥控炮塔" unmanned_gun_turret_desc: "从五十年代开始,舰艇的炮塔开始逐步实现无人化,以雷达或其他信号源辅助的舰船控制中心可以使用遥控技术操控火炮。" modern_generic_battery: "海军自动武器系统" @@ -336,16 +287,12 @@ improved_ship_torpedo_launcher: "改进鱼雷发射器" advanced_ship_torpedo_launcher: "先进鱼雷发射器" modern_ship_torpedo_launcher: "现代鱼雷发射器" - wolfpacks: "狼群战术" oxygen_torpedo: "压缩氧气鱼雷" oxygen_torpedo_desc: "鱼雷发动机可以利用的燃料受到其内含的氧气的限制。由于压缩空气只含有21%的氧气,实际的利用率并不高,而氧气鱼雷则使用压缩过的纯氧,其拥有比当代现役鱼雷更强的性能。\n\n" electric_torpedo: "电动鱼雷" electric_torpedo_desc: "不同于会留下一长串容易被观测到的气泡轨迹的蒸汽鱼雷,一枚带有电动引擎的鱼雷在击中目标前几乎是不可见的。这也意味着对方无法通过追踪鱼雷轨迹找到发射它的潜艇。\n\n" advanced_torpedo_ballistics: "先进鱼雷弹道学" advanced_torpedo_ballistics_desc: "世界大战时期,各国的潜艇普遍使用计算尺和机械式计算器等设备辅助鱼雷弹道计算,这一方式主要依靠操作者的计算能力且精度较差。随着流体动力学和鱼雷推进技术的进步,大量对不同水文环境下鱼雷运动轨迹的研究极大地促进了潜艇进攻战术的发展。" - fleet_in_being_tree: "舰队决战学说" - trade_interdiction_tree: "交通线破袭学说" - base_strike_tree: "空海一体战学说" tactical_data_link: "战术数据链" tactical_data_link_desc: "战术数据链是一套利用无线电波或信号线缆进行通信的数据传输标准。接入该标准的所有军用级C3系统都会使用统一的格式进行数据传输、转发和收取,这将保证友方单位之间的数据传输和通信更加安全且有效。\n\n§Y研究完成后,处于你阵营的盟友将会获得一个决议接入你的数据链系统。如果选择接入后,将不能再选择研究自己的数据链。§!" tactical_data_link_for_member: "接入盟友战术数据链" @@ -425,4 +372,17 @@ carrier_radio_range: "归航信标" carrier_radio_range_desc: "随着近些年来舰载机在载荷与航程方面的崛起,航母作战面临着一项重大挑战:任务结束后,飞行员如何在茫茫大海上找到并返回移动中的航母。无线电技术的进步在一定程度上解决了这个问题。在这个构想中,航母会在有限的时间窗口内发送特定频率的无线电信号,就如同一个信标。携带有接收器的战斗机可以据此确定返航的航向以及会合时间表。这项技术对于在恶劣天气和超远距离作战的情况下安全回收起到了至关重要的作用。" escort_carriers_ship: "护航航母" - escort_carriers_ship_desc: "潜艇的进步导致参战国的海上航线受到了严重的威胁,虽然飞机的反潜效率较高,但是无法为大洋深处的商船队提供掩护,正规航母的价值又限制其必须用于正面战场。小巧的护航航母在此时出现,其拥有小型机库,因为使用了部分民船规格的部件,建造成本也非常便宜。" \ No newline at end of file + escort_carriers_ship_desc: "潜艇的进步导致参战国的海上航线受到了严重的威胁,虽然飞机的反潜效率较高,但是无法为大洋深处的商船队提供掩护,正规航母的价值又限制其必须用于正面战场。小巧的护航航母在此时出现,其拥有小型机库,因为使用了部分民船规格的部件,建造成本也非常便宜。" + support_fleet: "支援船队" + support_fleet_desc: "一支支援舰船组成的船队可以让海军的行动更加有可持续性。" + support_fleet_ncns: "支援船队" + support_fleet_ncns_desc: "一支支援舰船组成的船队可以让海军的行动更加有可持续性。" + floating_dry_dock_ncns: "浮船坞" + floating_dry_dock_ncns_desc: "浮动干船坞简称浮船坞,是一个以在海上维修舰船为目的建造的可拖动维修平台。\n为了能从下方托起舰船的底部,其被设计为可以半潜入水下,在海水排出后上浮,并将船只托离水面。由此,船只与海水分隔开,也就可以如在陆地上的干船坞一样进行维修作业了。" + logistic_system_redundancy_ncns: "后勤系统冗余" + logistic_system_redundancy_ncns_desc: "为了保证后勤系统在最坏的情况下仍可以正常运转,在后勤行动展开前保证一些冗余是很有必要的。这一方法是指通过储存和运输两倍甚至三倍于前线需要的补给,来保证任务的成功率,即使是发生意外和不测,也可以有足够的给养交付前线单位。" + bb_tech_11_tt: "\n\n\n\n\n£GFX_bb_tech_11\n\n\n\n\n\n" + ca_tech_12_tt: "\n\n\n\n\n£GFX_ca_tech_12\n\n\n\n\n\n" + dd_tech_10_tt: "\n\n\n\n\n£GFX_dd_tech_10\n\n\n\n\n\n" + dd_tech_11_tt: "\n\n\n\n\n£GFX_dd_tech_11\n\n\n\n\n\n" + dd_tech_12_tt: "\n\n\n\n\n£GFX_dd_tech_12\n\n\n\n\n\n" \ No newline at end of file diff --git a/src/localisation/simp_chinese/replace/doctrines_l_simp_chinese.yml b/src/localisation/simp_chinese/replace/doctrines_l_simp_chinese.yml new file mode 100755 index 0000000..173d238 --- /dev/null +++ b/src/localisation/simp_chinese/replace/doctrines_l_simp_chinese.yml @@ -0,0 +1,148 @@ +l_simp_chinese: + 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: "高爆鱼雷战斗部" \ No newline at end of file diff --git a/src/localisation/simp_chinese/replace/naval_units_l_simp_chinese.yml b/src/localisation/simp_chinese/replace/naval_units_l_simp_chinese.yml index ea4067b..6a08a4a 100755 --- a/src/localisation/simp_chinese/replace/naval_units_l_simp_chinese.yml +++ b/src/localisation/simp_chinese/replace/naval_units_l_simp_chinese.yml @@ -1,7 +1,7 @@ l_simp_chinese: submarine: "潜艇" submarine_desc: "§H潜艇§!\n\n\n\n\n£GFX_ss_desc_icon\n\n\n\n\n\n潜艇被称为隐秘的死神,这种舰船可以从水下利用鱼雷发动攻击,或者浮出水面用甲板炮摧毁敌舰。虽然潜艇在未来的战争中扮演的角色已经十分明确,但国际惯例仍然对其猎杀商船的行动方式有着约束效应,这一般要求潜艇在确保商船船员转移到安全位置后再行击沉。与此同时,技术的进步在潜艇的航程、耐力和可靠性方面起到了重要作用,这也使它们成为了舰队侦察的核心力量,如果能够运用得当,也会是一件致命的武器。" - both_cruisers_desc: "§H巡洋舰§!\n\n\n\n\n£GFX_ca_desc_icon\n\n\n\n\n\n轻巡洋舰 - 由防护巡洋舰发展而来的轻型化舰体,其主要目标是为主力舰提供屏卫,驱离灵活的驱逐舰,同时也可以用威力巨大的鱼雷攻击缓慢的主力舰。\n\n重巡洋舰 - 由防护巡洋舰发展而来的重型化舰体,可执行非常多样的任务,包括独自袭扰敌方补给线或者在舰队当中担任斥候的角色。对于无力负担主力舰的国家而言是一个经济的选择。" + both_cruisers_desc: "§HCruiser§!\n\n\n\n\n£GFX_ca_desc_icon\n\n\n\n\n\n轻巡洋舰 - 由防护巡洋舰发展而来的轻型化舰体,其主要目标是为主力舰提供屏卫,驱离灵活的驱逐舰,同时也可以用威力巨大的鱼雷攻击缓慢的主力舰。\n\n重巡洋舰 - 由防护巡洋舰发展而来的重型化舰体,可执行非常多样的任务,包括独自袭扰敌方补给线或者在舰队当中担任斥候的角色。对于无力负担主力舰的国家而言是一个经济的选择。" light_cruiser: "轻型巡洋舰" light_cruiser_desc: "§H轻型巡洋舰§!\n\n\n\n\n£GFX_cl_desc_icon\n\n\n\n\n\n轻型巡洋舰有着防护巡洋舰发展而来的轻量化船体,是舰队中用途多样的中流砥柱,通常配备了6英寸主炮。从前出侦察到指挥鱼雷战队,再到保护舰队免受敌方驱逐舰袭扰,它们负担的任务种类也非常繁多。轻型巡洋舰在各国海军的保有量较多,远超重型巡洋舰,这也使它们成为了巡逻舰队和殖民地舰队的中坚力量。" heavy_cruiser: "重型主力巡洋舰" @@ -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: "舰载鱼雷轰炸机" @@ -32,4 +32,6 @@ gas_leakage: "油气泄露" 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: "甲板受损" \ No newline at end of file + damaged_bb_flight_deck: "甲板受损" + support_ship: "勤务舰" + support_ship_desc: "一类负责舰队日常事务和杂役的舰船。" \ No newline at end of file diff --git a/src/localisation/simp_chinese/replace/navy_rework_welcome_l_simp_chinese.yml b/src/localisation/simp_chinese/replace/navy_rework_welcome_l_simp_chinese.yml index f926dd0..dd31af8 100755 --- a/src/localisation/simp_chinese/replace/navy_rework_welcome_l_simp_chinese.yml +++ b/src/localisation/simp_chinese/replace/navy_rework_welcome_l_simp_chinese.yml @@ -4,7 +4,7 @@ navy_rework_welcome_splash_tab_3: "额外信息" navy_rework_welcome_splash_tab_4: "致谢" navy_rework_options_button_text: "继续" - navy_rework_welcome_splash_tab_1_content: "§Hv2.5 “圣克鲁斯”§!\n\n§C重要新增:§!\n\n-新特殊项目:潜艇通气管\n-新科技:归航信标\n-新模块:通气管原型,轻型燃气轮机,巡洋舰燃气轮机\n-降低所有船体的资源消耗到合适的水平\n-增加开局规则,允许美国、英国和日本的开局舰队全部转为专家设计\n\n§C更新:§!\n\n-航母夜战科技被新科技替换\n-移除燃气轮机科技和重型燃气轮机模块,轻型和巡洋舰燃气轮机分别由相关的冷战科技解锁\n-移除护航航母科技,改为1940航母船体科技附赠\n-增加小型机库的造价\n-平衡一些模块的可靠性修正\n-强力甲板现在被重新分类为飞行甲板模块\n-平衡超重型主炮和超重引擎的速度修正\n-水上飞机弹射器会降低更多的航速\n-为航空战列舰增加甲板致命伤效果\n-平衡战列舰防御相关模块的效果\n-增加装甲甲板的造价\n-增加深水炸弹模块的速度惩罚\n-将小型机库和航空战列舰机库单独划为特殊机库种类\n-增加一些小几率出现的致命损伤所造成的伤害\n-增加所有炮弹模块带来的命中率修正(正面或负面皆有)\n-降低一些舰炮科技的科研时间\n-更新部分AI模板\n-略微降低美国AI大规模建造船坞的倾向\n-降低AI海军分配到护航和水雷战相关任务的编队数\n-微调海军条约的吨位限制\n-加强舰队防空对减伤效果的加成\n-改进部分规则文字的描述,指向性更加明确\n-重做设计器中舰炮大类的图标\n\n§C修复:§!\n\n-修复AI科技自动解锁模式开启时AI无法正确获取雷达的问题\n-修复部分国家由于缺少超重型船体项目无法选择国策的问题\n-修复商船航母有民用材料时无法建造的问题\n-修复巡洋舰可以安装两个炮弹模块的问题\n\n感谢你的游玩!" + navy_rework_welcome_splash_tab_1_content: "§Hv2.6 “塔拉瓦雷霆”§!\n\n§C重要新增:§!\n\n-适配抗战到底更新\n-重做所有的海军学说\n-导弹科技树移动到海军武备区域\n\n§C更新:§!\n\n-为海军支援科技增加一些鼠标悬停弹窗的艺术插图\n-降低水上飞机弹射器的反潜\n-删除俯冲轰炸机科技对穿甲炸弹的依赖\n-调高德国登陆挪威的AI倾向\n-意大利AI会试图争夺中地中海\n-AI禁用海域的上限调高\n-下调100%护航效率时对命中率的加成\n-后期的主力舰船体提速\n-调整支援舰船的数值到合理的范畴\n-替换支援船和维修船的立绘\n-重做部分科技图标\n-修改部分海军历史文本\n\n§C修复:§!\n\n-修复代码中的一些重复定义\n\n感谢你的游玩!" navy_rework_welcome_splash_tab_2_content: "§H这里包含了你想知道的关于海军重置的一切。§!\n\n§C设计器-§!\n£white_dot 在设计§Y驱逐舰§!、§Y巡洋舰§!或§Y战列舰§!的时候,§Y主炮§!是和历史唯一的一一对应的装备。由于它们的火力和穿甲据此做了平衡,§R请确保它们的数量和现实中接近§!。诸如§Y副炮§!和§Y鱼雷§!等装备则与原版没有区别。\n£white_dot 一些在原版受限的装备在本模组中是开放的,比如你可以建造超重炮战列舰,轻炮重巡,无甲巡洋舰等等。\n£white_dot 舰船角色在驱逐舰和巡洋舰上是必须的,它们可以提供不同的增益并解锁特殊的部件。\n£white_dot 巡洋舰的主力屏卫之分不由主炮口径为标准。所有巡洋舰(除装甲舰外)都初始默认为屏卫舰,且需要特殊的角色才能让它们成为主力舰。\n£white_dot §Y导弹§!可以安装在晚期的重型或巡洋舰船体上,不过后者需要专门的导弹巡洋舰角色来安装。\n£white_dot 此模组中实现最大屏卫效率的屏卫/主力比例为2\n£white_dot 鱼雷可以对重型舰船造成巨量的伤害,不过重型装甲只能提供非常有限的鱼雷防护,你需要安装§Y鱼雷防御系统§!来避免这一点。\n£white_dot 主炮的穿甲经过一定的平衡。其基础穿深为同时期装甲的1.1倍,这也意味着基础的装甲钢和混合防护方案可以避免被击穿,而下一代主炮则可以击穿使用重点防护的该型战舰。\n£white_dot 海战中的甲弹对抗公式以如下规则计算,穿甲和装甲的比值与伤害权重之间的映射关系为:超过200%为200%伤害,100%到200%为100%伤害,85%到100%为70%伤害,75%到85%为60%伤害,70%到75%为45%伤害,65%到70%为35%伤害,60%到65%为20%伤害,55%到60%为10%伤害,50%到55%为5%伤害,30%到50%为2%伤害,小于30%为1%伤害。\n£white_dot §Y超重型主炮§!根据炮管数量和§Y重型主炮§!归类在一起,但是它们仍然在某些船体上受到安装限制。\n£white_dot 设计器中的舰船分类符号可以帮助你更好地管理舰队。其仅仅表示该国对舰船的分类和定义,没有实际效果。\n£white_dot 辅助船非常脆弱,但是航程极长。由于舰队最大航程是由平均数决定的,因此在舰队中加入一些辅助船可以增加航程。\n\n§C科技树-§!\n£white_dot 尽管科技树的外观变化巨大,但是它的本质仍然和原版类似,你不需要花费大量时间去理解。\n£white_dot 并不是所有科技都是有价值的,请根据你的战略和地缘情况理智选择。\n£white_dot 子科技需要船体科技研究完成才能解锁。其中有一些还需要非海军科技的进步来推动。例如,主动声呐需要被动声呐研究完成,而一些火控系统则需要工程科技的进步作为前提。\n\n§C海战-§!\n£white_dot 海战的最短时间§Y已经被提高到20小时,主力舰在第22小时开火,其他舰艇在第30小时开火§!,而§G航母则可以在刚加入战斗时就参与进攻§!。§Y航母堆叠限制§!被放宽到6。你使用舰载机的方式在本模组中更加重要。\n£white_dot 舰艇的防空和舰载战斗机的伤害与命中率都获得了提升。一支没有战斗机护航的航母舰队可能会在进攻中损失更多的舰载机。\n£white_dot 基础的阵位被削减为50%,但优势的水面探测数值可以带来最多20%的阵位奖励。\n£white_dot 堆叠带来的阵位惩罚为每超过敌方数量的100%时增加30%,最高可达150%。只有舰队规模超过65时才会触发。\n£white_dot 水上飞机弹射器、航母和声呐在反潜战中的表现都更加有用和强力,而§Y潜艇§!基础的§Y可见度§!相较原版被§R增加§!了,在面对有良好反潜能力的舰队时,潜艇不再拥有优势。\n£white_dot AI的设计模板是刻意默认设置为§Y史实向§!的。尽管这些模板比原版要强一些,但是过去的最优设计仍然是有效的。\n\n§C其他-§!\n£white_dot 玩家和AI都享有§G-15%§!海军燃料消耗减免。\n£white_dot 单个船厂的产出已被提高到§G160%§!,一般在没有加成的情况下,建造一艘满配战列舰的时间在1-2年之间。\n£white_dot AI控制的主要国家会分别在1940年,1943年,1945年和冷战时期(如果没有投降的话)获得一批海军科技和独特的舰船设计。\n£white_dot AI会根据历史上的学说选择和战争情况选择不同的海军建造策略(包括舰载机)。例如,原版的§g德国§!会更加专注于潜艇,而§B美国§!则会重视航母。" navy_rework_welcome_splash_tab_3_content: "§H这里罗列关于海军重置的其他信息。§!\n\n§C兼容性-§!\n£white_dot 除非有§Y兼容包§!,本模组与修改科技树的模组不兼容,已有的兼容包链接都会在创意工坊界面列出。\n£white_dot §R所有生成舰船设计的国策/事件/决议都会失效,这是为了兼容性的考量和必要牺牲。§!\n\n§C二次创作-§!\n£white_dot 除了56之路外,不会再有其他的官方兼容包发布,希望社区可以更多地参与此事。目前日共重置与日本史实国策重做已完全兼容本模组。\n£white_dot 所有人都可以随意利用本模组的资源(代码/图标/文本),但在使用中请标明出处并通知我。感谢你的理解。" navy_rework_welcome_splash_tab_4_content: "大家好,海军重置已经走过了艰难的开发阶段,如今史实设计器、初始海军编制和设计、图标和科技树都已经基本完成,整个大框架完成后,剩余的工作便是进一步丰富和扩充,而这相比之前的开拓等等都要简单一些。借此机会我想和大家讲讲这个mod的过去和未来。\n\n我是2016年入的钢4坑,在加里波第的噩梦版本,也就是0.6时期接触到的KR,当时就被它详实有趣的世界观所吸引,之后几年KR一直是我玩的最多的mod之一。KR在0.8发布了海军重做,也是我最喜欢最兴奋的一个版本,由此我开始对海军感兴趣,也越发经常地想象KR世界观中的海军和军舰会是什么样子的。\n\n2021年春节前夕的一个周五下午,我在办公室摸鱼逛reddit,看到了一位外国网友写的对KR中加拿大和日本海军的战舰原型考证,这篇文章深深吸引了我,我用了一个下午翻译后发布到了贴吧上,收获了很多人的支持。尽管后来因为屏蔽的问题我转战知乎,但我始终将KR海军考据的系列坚持了下来,从海军大国到一些特色小国我都查阅了大量资料,也为这个mod打下了基础。\n\n在KR0.22更新之前,开发因为一些原因多次削减了海军的内容,我一直感到很遗憾,0.22的大改给了我这个动力去做之前我不敢想的事情。虽然写代码是我的老本行,但是美工、文案和汉译英等等我都是从头开始学,一次次试错,一个人陆陆续续弄了大半年,发布了KR和KX两版,才做到现在这个地步,我从中也学到了很多。如今,我们也终于迎来了原版海军重置的发布。\n\n我想借这个机会感谢所有在这个过程中帮助我的朋友和玩家,包括启发我的reddit网友Tragic-tragedy,贴吧上对我的史料斧正的朋友,在知乎上追更的朋友,还有许多订阅海军重置的玩家,没有你们的支持就没有这个mod,谢谢你们!\n\n最后,我还想借此机会感谢我的外公,他曾在中国人民解放军海军服役了几十年,在我的孩提时代启发了我对海军的认识。上世纪七八十年代,我的外公分别在几艘海军科考船上服役,担任过气象专家和部门政委等职务,他的大部分军旅生涯是在向阳红10号船上度过的,这也是当时中国自主设计建造的吨位最大的远洋科考船。1980年,向阳红10号作为新中国历史上最大规模远洋舰队的一员参加了中国第一次洲际弹道导弹发射试验,这就是大家熟知的580任务。我的外公当时负责气象部门,为回收导弹黑匣子的时间窗口提供预报支持。四年后,他随船参加了中国第一次南极科考任务,并在乔治王岛参与了长城站的建设。向阳红10号船之后被改装成了远望4号,在2007年遇到事故损坏,最后成了东风21D的靶子,每每说起来,他还是有些惋惜。我能看出来他对曾经的海军生涯有着复杂的情感,一方面为对国家做出贡献而感到骄傲光荣,而另一方面又为错过了孩子们的成长感到缺憾。不过尽管如此,他从小给我讲述的故事仍然点燃了我对海军的兴趣,为这个mod播下了一颗种子。\n\n随着我现在工作生活越来越忙,不知道海军重置还能维持多久,所以我在此也希望成立一个小团队,用半做半学的方式,把这个mod延续下去。\n\n有兴趣加我qq:1245385638,或海军重置群:162239327" \ No newline at end of file diff --git a/src/localisation/simp_chinese/replace/research_l_simp_chinese.yml b/src/localisation/simp_chinese/replace/research_l_simp_chinese.yml index b026e91..6449162 100755 --- a/src/localisation/simp_chinese/replace/research_l_simp_chinese.yml +++ b/src/localisation/simp_chinese/replace/research_l_simp_chinese.yml @@ -175,8 +175,6 @@ high_speed_civilian_engine_desc: "考虑到高速引擎的造价昂贵,民用船舶通常会使用更加经济的设备。但是和海军后勤的效率比起来,这些代价都不算什么。" armed_civilian_ship: "伪装巡洋舰" armed_civilian_ship_desc: "伪装巡洋舰是一种外观酷似民用船的军舰。在世界大战中,这种舰船得到了广泛的应用,长期活跃在反潜和航路袭击等行动中。" - repair_ship: "维修船" - repair_ship_desc: "维修船是舰队中的工蜂,一般在装备和人员层面负责提供广泛的修理服务,包括了严重的机械故障和战斗损伤。" floating_dry_dock: "浮船坞" floating_dry_dock_desc: "浮动干船坞简称浮船坞,是一个以在海上维修舰船为目的建造的可拖动维修平台。\n为了能从下方托起舰船的底部,其被设计为可以半潜入水下,在海水排出后上浮,并将船只托离水面。由此,船只与海水分隔开,也就可以如在陆地上的干船坞一样进行维修作业了。" logistic_system_redundancy: "后勤系统冗余" @@ -268,52 +266,6 @@ naval_tactical_data_system_desc: "海军战术数据系统(NTDS)是20世纪50年代开发的用于战舰的计算机信息处理系统。它可以从不同船只上的多个传感器获取报告,并将其整理以生成一张统一的战场态势图。然后,这些信息可以被转发回船只和​​武器操作员。" tactical_air_navigation_system: "战术空中导航系统" tactical_air_navigation_system_desc: "战术空中导航系统通常简称为TACAN,是军用飞机使用的导航系统,相比过去的单源无线电信标在性能上有了较大提升,它可以为使用者提供到地面机场或航母的方位和距离等航行信息。" - TITLE_FLEET_IN_BEING: "舰队决战" - TITLE_TRADE_INTERDICTION: "交通线破袭" - TITLE_BASE_STRIKE: "空海一体战" - torpedo_groups: "鱼雷战队" - torpedo_groups_desc: "我们的护卫舰艇主要的任务就是运用鱼雷骚扰敌军舰队,打乱他们的阵型,为我方创造有利条件。" - decisive_battle: "舰队决战战略" - decisive_battle_desc: "当合适的时机来临时,我们的舰队将在陆地和空中单位的支援下出击,在一场决战中彻底终结敌人。" - armed_merchantmen: "武装商船" - armed_merchantmen_desc: "为了应对水面上和水下猖獗的破袭战,武装商船将成为护卫舰缺席情况下的合适选项。" - submarine_picket: "潜艇哨戒" - submarine_picket_desc: "通过在敌军港口和重要节点附近部署一队潜艇,我们可以在对方没有注意的情况下监视其一举一动。" - submarine_picket_bs: "潜艇哨戒" - coastal_operations: "近海行动" - coastal_operations_desc: "虽然潜艇在浅海很容易被侦测到,但是在这些区域部署一队潜艇仍然可以对来犯的海上和两栖行动构成严重威胁。\n\n" - ambush_tactics: "伏击战术" - ambush_tactics_desc: "进入伏击位置的潜艇加之广泛的布雷行动会使我们有更高的机会击沉敌军舰船。" - tonnage_war: "吨位战" - tonnage_war_desc: "瘫痪一个国家战争潜力的关键在于摧毁这个国家的商船队。只要我们击沉对方舰船的速度超过他们新建的速度,我们将在这场消耗战中获胜。" - guerrilla_tactics: "游击战术" - guerrilla_tactics_desc: "建立制海权并不是海军的目标,相反,我们应该坚决执行一击脱离的策略。等到敌人发现沉船残骸的时候,我们的船早就离开了。" - adjacent_projection: "毗邻地区力量投射" - adjacent_projection_desc: "当我们的舰队分布在海洋各处时,我们也要确保势力范围内不被侵犯。" - naval_concealment: "隐蔽措施" - naval_concealment_desc: "舰队在任何情况下都不得暴露行踪,但是当它的位置揭晓之时,将是敌人的灭亡之日。" - carrier_task_forces: "制海权优先" - carrier_task_forces_desc: "航母不仅仅是舰队的核心,还是一国最重要的战争资产。摧毁敌人的航母永远是海战中的最高目标。\n\n" - naval_air_force: "以空制海" - naval_air_force_desc: "尽管不被大多数人所接受,但是越来越多的理论证明通过长程陆基飞机确保制空权是海上胜利的基础。\n\n" - frequent_air_raid: "全甲板攻击" - frequent_air_raid_desc: "海战的基本原则在于击沉敌军航母并保存我方航母。通过以较小规模的机群执行多波次高频率的空袭可以同时满足这两个要求。" - mass_air_raid: "大规模空袭" - mass_air_raid_desc: "航母只不过是海上的浮动机场,而恰恰是飞机对水面舰队构成了最重大的威胁。从机场出击的大规模空袭编队在一次攻击中瘫痪敌方航母的起降能力便能夺取制空权,这足以支持我们完成其他战略目标。" - flight_deck_management: "甲板管理" - flight_deck_management_desc: "即使载机量保持不变,一艘有着良好飞行甲板管理规章的航母在起降活动中可以将舰载机的出击效率提升到远超过去的程度,使得航母作战的表现变得更好。" - circle_formation: "轮形阵" - circle_formation_desc: "海军的舰队应该围绕航母组建。如此我们只需要两种船,航母和护航舰。轮形阵会将航母围绕在阵型中央,通过周边舰船防空炮构成的交叉火力保护航母免受攻击。" - cat_fleet_in_being: "舰队决战学说" - cat_trade_interdiction: "交通线破袭学说" - cat_base_strike: "空海一体战学说" - FLEET_IN_BEING_DESC: "舰队决战着眼于利用优势的防御姿态维持存在和恫吓敌人,但是在时机合适的前提下仍然会试图在一场战斗中彻底摧毁敌军舰队。" - TRADE_INTERDICTION_DESC: "交通线破袭将商船作为主要攻击目标,以此削弱敌方的经济和军事工业,在争夺制海权上则常常保持被动。" - BASE_STRIKE_DESC: "空海一体战学派相信制空权是制海权的核心,因此将对空域的控制视为超越一切因素的关键。" - fast_battleship_primacy: "高速战列舰主导" - fast_battleship_primacy_desc: "一支有着统一高航速和全面性能的战列舰舰队足以胜任大海上的所有挑战。\n\n" - scouting_fleet_primacy: "侦察舰队主导" - scouting_fleet_primacy_desc: "高速战列舰的好处被过分夸大了,过去战列舰和战列巡洋舰的分工协作在如今仍然是有意义的,且已经被证明是经济且行之有效的。\n\n" vnr_cruiser_cost_1: "条约巡洋舰" vnr_cruiser_cost_2: "新型材料" vnr_destroyer_cost_1: "驱逐舰大规模生产" @@ -322,7 +274,6 @@ ship_rocket_artillery: "舰载火箭炮" ship_rocket_artillery_desc: "火箭科学的发展推动了火箭弹的出现,除了可以在陆战中应用外,海军也试图将这一威力十足的武器与军舰做结合。火箭炮使用没有制导装置的火箭弹,虽然精度不高,不过一旦击中便会对目标造成不可挽回的损伤,同时近炸引信的发展在一定程度上也可以弥补精度的问题。" modifier_production_cost_max_ship_hull_submarine: "潜艇最大成本" - submarine_picket_bs_desc: "通过在敌军港口和重要节点附近部署一队潜艇,我们可以在对方没有注意的情况下监视其一举一动。" unmanned_gun_turret: "遥控炮塔" unmanned_gun_turret_desc: "从五十年代开始,舰艇的炮塔开始逐步实现无人化,以雷达或其他信号源辅助的舰船控制中心可以使用遥控技术操控火炮。" modern_generic_battery: "海军自动武器系统" @@ -336,16 +287,12 @@ improved_ship_torpedo_launcher: "改进鱼雷发射器" advanced_ship_torpedo_launcher: "先进鱼雷发射器" modern_ship_torpedo_launcher: "现代鱼雷发射器" - wolfpacks: "狼群战术" oxygen_torpedo: "压缩氧气鱼雷" oxygen_torpedo_desc: "鱼雷发动机可以利用的燃料受到其内含的氧气的限制。由于压缩空气只含有21%的氧气,实际的利用率并不高,而氧气鱼雷则使用压缩过的纯氧,其拥有比当代现役鱼雷更强的性能。\n\n" electric_torpedo: "电动鱼雷" electric_torpedo_desc: "不同于会留下一长串容易被观测到的气泡轨迹的蒸汽鱼雷,一枚带有电动引擎的鱼雷在击中目标前几乎是不可见的。这也意味着对方无法通过追踪鱼雷轨迹找到发射它的潜艇。\n\n" advanced_torpedo_ballistics: "先进鱼雷弹道学" advanced_torpedo_ballistics_desc: "世界大战时期,各国的潜艇普遍使用计算尺和机械式计算器等设备辅助鱼雷弹道计算,这一方式主要依靠操作者的计算能力且精度较差。随着流体动力学和鱼雷推进技术的进步,大量对不同水文环境下鱼雷运动轨迹的研究极大地促进了潜艇进攻战术的发展。" - fleet_in_being_tree: "舰队决战学说" - trade_interdiction_tree: "交通线破袭学说" - base_strike_tree: "空海一体战学说" tactical_data_link: "战术数据链" tactical_data_link_desc: "战术数据链是一套利用无线电波或信号线缆进行通信的数据传输标准。接入该标准的所有军用级C3系统都会使用统一的格式进行数据传输、转发和收取,这将保证友方单位之间的数据传输和通信更加安全且有效。\n\n§Y研究完成后,处于你阵营的盟友将会获得一个决议接入你的数据链系统。如果选择接入后,将不能再选择研究自己的数据链。§!" tactical_data_link_for_member: "接入盟友战术数据链" @@ -425,4 +372,17 @@ carrier_radio_range: "归航信标" carrier_radio_range_desc: "随着近些年来舰载机在载荷与航程方面的崛起,航母作战面临着一项重大挑战:任务结束后,飞行员如何在茫茫大海上找到并返回移动中的航母。无线电技术的进步在一定程度上解决了这个问题。在这个构想中,航母会在有限的时间窗口内发送特定频率的无线电信号,就如同一个信标。携带有接收器的战斗机可以据此确定返航的航向以及会合时间表。这项技术对于在恶劣天气和超远距离作战的情况下安全回收起到了至关重要的作用。" escort_carriers_ship: "护航航母" - escort_carriers_ship_desc: "潜艇的进步导致参战国的海上航线受到了严重的威胁,虽然飞机的反潜效率较高,但是无法为大洋深处的商船队提供掩护,正规航母的价值又限制其必须用于正面战场。小巧的护航航母在此时出现,其拥有小型机库,因为使用了部分民船规格的部件,建造成本也非常便宜。" \ No newline at end of file + escort_carriers_ship_desc: "潜艇的进步导致参战国的海上航线受到了严重的威胁,虽然飞机的反潜效率较高,但是无法为大洋深处的商船队提供掩护,正规航母的价值又限制其必须用于正面战场。小巧的护航航母在此时出现,其拥有小型机库,因为使用了部分民船规格的部件,建造成本也非常便宜。" + support_fleet: "支援船队" + support_fleet_desc: "一支支援舰船组成的船队可以让海军的行动更加有可持续性。" + support_fleet_ncns: "支援船队" + support_fleet_ncns_desc: "一支支援舰船组成的船队可以让海军的行动更加有可持续性。" + floating_dry_dock_ncns: "浮船坞" + floating_dry_dock_ncns_desc: "浮动干船坞简称浮船坞,是一个以在海上维修舰船为目的建造的可拖动维修平台。\n为了能从下方托起舰船的底部,其被设计为可以半潜入水下,在海水排出后上浮,并将船只托离水面。由此,船只与海水分隔开,也就可以如在陆地上的干船坞一样进行维修作业了。" + logistic_system_redundancy_ncns: "后勤系统冗余" + logistic_system_redundancy_ncns_desc: "为了保证后勤系统在最坏的情况下仍可以正常运转,在后勤行动展开前保证一些冗余是很有必要的。这一方法是指通过储存和运输两倍甚至三倍于前线需要的补给,来保证任务的成功率,即使是发生意外和不测,也可以有足够的给养交付前线单位。" + bb_tech_11_tt: "\n\n\n\n\n£GFX_bb_tech_11\n\n\n\n\n\n" + ca_tech_12_tt: "\n\n\n\n\n£GFX_ca_tech_12\n\n\n\n\n\n" + dd_tech_10_tt: "\n\n\n\n\n£GFX_dd_tech_10\n\n\n\n\n\n" + dd_tech_11_tt: "\n\n\n\n\n£GFX_dd_tech_11\n\n\n\n\n\n" + dd_tech_12_tt: "\n\n\n\n\n£GFX_dd_tech_12\n\n\n\n\n\n" \ No newline at end of file