# BTN4 military generator. ROOT/controller remains the player; creation runs in the recipient country.
# Only Victoria 3 interfaces are used. Army counts are literal battalion counts.
# Existing army append is intentionally unavailable: no supported unit-transfer effect was found.

sakuya_b4_gen_land_state_effect = {
    capital = { save_scope_as = sakuya_b4_gen_state }
    if = {
        limit = { any_scope_state = { OR = { has_decree = decree_sakuya_mark_state has_variable = sakuya_mark_foreign_state_target } } }
        random_scope_state = {
            limit = { OR = { has_decree = decree_sakuya_mark_state has_variable = sakuya_mark_foreign_state_target } }
            save_scope_as = sakuya_b4_gen_state
        }
    }
}

sakuya_b4_gen_navy_state_effect = {
    if = {
        limit = { any_scope_state = { is_coastal = yes OR = { has_decree = decree_sakuya_mark_state has_variable = sakuya_mark_foreign_state_target } } }
        random_scope_state = {
            limit = { is_coastal = yes OR = { has_decree = decree_sakuya_mark_state has_variable = sakuya_mark_foreign_state_target } }
            save_scope_as = sakuya_b4_gen_state
        }
    }
    else_if = {
        limit = { capital = { is_coastal = yes } }
        capital = { save_scope_as = sakuya_b4_gen_state }
    }
    else = {
        random_scope_state = { limit = { is_coastal = yes } save_scope_as = sakuya_b4_gen_state }
    }
}

sakuya_b4_gen_land_create_type_effect = {
    random_list = {
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_1 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_2 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_3 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_4 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_5 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_6 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_7 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_8 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_9 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_10 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_11 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_12 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_13 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_14 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_15 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_16 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_17 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_18 } }
        1 = { sakuya_b4_gen_land_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_ARMY_NAME_19 } }
    }
}

sakuya_b4_gen_land_create_named_effect = {
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 0 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 1 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 1 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 2 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 2 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 5 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 3 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 10 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 4 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 15 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 5 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 20 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 6 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 30 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 7 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 50 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 8 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 75 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 9 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 100 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 10 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 150 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 11 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 200 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 12 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 300 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 13 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 500 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 14 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 750 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_amount = 15 }
        create_military_formation = {
            type = army
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            combat_unit = { type = unit_type:$TYPE$ service_type = regular state_region = scope:sakuya_b4_gen_state.state_region count = 1000 }
        }
    }
}

sakuya_b4_gen_land_create_selected_effect = {
    sakuya_b4_gen_land_state_effect = yes
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 1 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_irregular_infantry } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 2 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_line_infantry } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 3 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_skirmish_infantry } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 4 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_trench_infantry } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 5 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_squad_infantry } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 6 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_mechanized_infantry } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 7 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_cannon_artillery } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 8 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_mobile_artillery } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 9 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_shrapnel_artillery } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 10 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_siege_artillery } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 11 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_heavy_tank } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 12 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_hussars } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 13 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_dragoons } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 14 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_cuirassiers } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 15 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_lancers } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 16 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_light_tanks } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 17 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_low_tier_marines } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 18 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_mid_tier_marines } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_land_type = 19 } sakuya_b4_gen_land_create_type_effect = { TYPE = combat_unit_type_high_tier_marines } }
    sakuya_b4_gen_recovery_record_effect = { DOMAIN = land }
}

sakuya_b4_gen_navy_create_type_effect = {
    random_list = {
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_1 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_2 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_3 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_4 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_5 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_6 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_7 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_8 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_9 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_10 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_11 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_12 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_13 } }
        1 = { sakuya_b4_gen_navy_create_named_effect = { TYPE = $TYPE$ NAME = SKY_B4_GEN_FLEET_NAME_14 } }
    }
}

sakuya_b4_gen_navy_create_named_effect = {
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 0 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 1 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 1 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 2 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 2 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 5 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 3 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 10 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 4 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 15 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 5 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 20 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 6 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 30 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 7 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 50 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 8 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 75 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 9 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 100 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 10 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 150 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 11 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 200 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 12 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 300 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 13 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 500 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 14 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 750 }
        }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 15 }
        create_military_formation = {
            type = fleet
            name = $NAME$
            hq_region = scope:sakuya_b4_gen_state.region
            ship = { type = ship_type:$TYPE$ count = 1000 }
        }
    }
}

sakuya_b4_gen_navy_create_selected_effect = {
    sakuya_b4_gen_navy_state_effect = yes
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 1 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_ship_of_the_line } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 2 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_monitor } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 3 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_early_ironclad } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 4 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_coastal_defense_ship } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 5 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_modern_ironclad } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 6 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_pre_dreadnought } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 7 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_dreadnought } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 8 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_super_dreadnought } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 9 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_frigate } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 10 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_iron_frigate } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 11 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_troop_ship } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 12 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_protected_cruiser } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 13 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_armored_cruiser } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 14 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_light_cruiser } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 15 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_seaplane_tender } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 16 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_aircraft_carrier } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 17 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_torpedo_boat } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 18 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_torpedo_boat_destroyer } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 19 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_submarine } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 20 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_destroyer } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 21 } sakuya_b4_gen_navy_create_type_effect = { TYPE = ship_type_early_troop_ship } }
    sakuya_b4_gen_recovery_record_effect = { DOMAIN = navy }
}

# Called in the owner of the already-resolved fleet; never uses the player's country as an implicit owner.
sakuya_b4_gen_navy_add_type_effect = {
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 0 }
        while = { count = 1 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 1 }
        while = { count = 2 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 2 }
        while = { count = 5 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 3 }
        while = { count = 10 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 4 }
        while = { count = 15 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 5 }
        while = { count = 20 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 6 }
        while = { count = 30 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 7 }
        while = { count = 50 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 8 }
        while = { count = 75 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 9 }
        while = { count = 100 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 10 }
        while = { count = 150 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 11 }
        while = { count = 200 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 12 }
        while = { count = 300 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 13 }
        while = { count = 500 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 14 }
        while = { count = 750 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
    if = {
        limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_amount = 15 }
        while = { count = 1000 create_ship = { type = ship_type:$TYPE$ fleet = scope:sakuya_b4_gen_fleet } }
    }
}

sakuya_b4_gen_navy_add_selected_effect = {
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 1 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_ship_of_the_line } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 2 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_monitor } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 3 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_early_ironclad } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 4 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_coastal_defense_ship } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 5 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_modern_ironclad } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 6 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_pre_dreadnought } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 7 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_dreadnought } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 8 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_super_dreadnought } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 9 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_frigate } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 10 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_iron_frigate } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 11 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_troop_ship } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 12 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_protected_cruiser } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 13 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_armored_cruiser } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 14 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_light_cruiser } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 15 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_seaplane_tender } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 16 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_aircraft_carrier } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 17 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_torpedo_boat } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 18 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_torpedo_boat_destroyer } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 19 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_submarine } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 20 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_destroyer } }
    if = { limit = { scope:sakuya_b4_gen_controller.var:sakuya_b4_gen_navy_type = 21 } sakuya_b4_gen_navy_add_type_effect = { TYPE = ship_type_early_troop_ship } }
    sakuya_b4_gen_recovery_record_effect = { DOMAIN = navy }
}

# 保存最近一次成功生成的所属国家，陆海军各自记录。
sakuya_b4_gen_recovery_record_effect = {
    save_scope_as = sakuya_b4_gen_recipient
    scope:sakuya_b4_gen_controller = {
        add_to_variable_list = { name = sakuya_b4_gen_$DOMAIN$_recovery_targets target = scope:sakuya_b4_gen_recipient }
    }
}

sakuya_b4_gen_recovery_clear_effect = {
    remove_modifier = sakuya_b4_gen_recovery_10000
    remove_modifier = sakuya_b4_gen_recovery_1000
    remove_modifier = sakuya_b4_gen_recovery_50
}
