
//
// Mosquito F.B. Mk.VI ser.2
//

[performance]
    MaxSpeed           = 604.0
    MaxClimbRate       = 9.8
    ServiceCeiling     = 8700.0
    MinStructureHealth = 0.863
    MinEngineHealth    = 0.6
    EngineWarming      = true
    TurnRate           = 310.0, 31.0

    ////// ClimbTime = <float ALTITUDE>, <float TIME> // Стандартное вооружение, 100% топлива, 1225.4 мм рт.ст. ("+9"), RPM 2850, радиаторы открыты
    ClimbTime = 0,0
    ClimbTime = 1000,106
    ClimbTime = 2000,210
    ClimbTime = 3000,312
    ClimbTime = 4000,423
    ClimbTime = 5000,556
    ClimbTime = 6000,693
    ClimbTime = 7000,871
    ClimbTime = 8000,1167

    ////// MaxAltTAS = <float ALTITUDE>, <float TAS> // Стандартное вооружение, 100% топлива, 1690.9 мм рт.ст. ("+18"), RPM 3000, радиаторы закрыты
    MaxAltTAS = 0,548
    MaxAltTAS = 1000,571
    MaxAltTAS = 2000,577
    MaxAltTAS = 3000,585
    MaxAltTAS = 4000,604
    MaxAltTAS = 5000,602
    MaxAltTAS = 6000,598
    MaxAltTAS = 7000,589
    MaxAltTAS = 8000,574

    ////// turn time at altitude (m/s) = <float ALTITUDE>, <float TIME> // Стандартное вооружение, 100% топлива, 1690.9 мм рт.ст. ("+18"), RPM 3000, радиаторы открыты
    TurnTimeAlt = 0,26.4
    TurnTimeAlt = 1000,28.4
    TurnTimeAlt = 2000,32.5
    TurnTimeAlt = 3000,35.5
    TurnTimeAlt = 4000,39.7
    TurnTimeAlt = 5000,46.3

    ////// optimal turn CAS at altitude= <float ALTITUDE>, <float CAS> // Стандартное вооружение, 100% топлива, 1690.9 мм рт.ст. ("+18"), RPM 3000, радиаторы открыты
    TurnOptimal_CAS_Alt = 0,270 // 330
    TurnOptimal_CAS_Alt = 1000,270 // 325
    TurnOptimal_CAS_Alt = 2000,270 // 310
    TurnOptimal_CAS_Alt = 3000,270 // 305
    TurnOptimal_CAS_Alt = 4000,260 // 295
    TurnOptimal_CAS_Alt = 5000,250 // 280

    MaxClimbCAS = 276
    MaxClimbRate = 9.8
    MaxAltitude = 8700.0
    CruiseFuelRate = 5.16     //[л./мин.] 280 км/ч (MinCruiseCAS); 1000 м; 50% бака, без бомб, стандартная атмосфера
    PriorityType = 2				//FIGHTER=1,HEAVY_FIGHTER=2,LIGHT_BOMBER=3,BOMBER=4,LIGHT_RECON=5,RECON=6,SHTURMOVIK=7,CARGO=8
[end]

[cruise]
    RefAngle               = 90.0
    RefRoll                = 85.0
    MaxRoll                = 60.0
    MaxRollClimb           = 6.0
    RefRollFactor          = 0.5
    RefAltError            = 100.0
    RefClimb               = 9.0
    RefClimbFactor         = 1.5
    RefDive                = 20.0
    RefDiveFactor          = 1.5
    TurnOffError           = -5
    TurnOnError            = -2
    MinRPM                 = 550
    MinCruiseCAS           = 280.0
    MinWingmanCAS          = 250.0
    WingLeaderLagCorrectionK = 1.0		// коэфицент от 0.0 до 1.0(default), уменьшающий степень сброса скорости лидером при ожидании ведомых
    PursueWingmanDist      = 350.0		// пороговое расстояние до места в формации с которого начинает падать заданное превышение скорости
    WingLeaderThrottleLowLimit = 0.35	// ограничение минимума газа ведущего в снижении и торможении
    WingLeaderThrottleUpLimit  = 0.90	// ограничение максимума газа ведущего в наборе высоты и разгоне
    LandRoundCAS0          = 280		// Скорость на подходе к аэродрому, уходе на 2й круг, ко 2му и 3му разворотам
    LandRoundCAS1          = 270		// Скорость на подходе к 4му развороту
    LandRoundCAS2          = 240		// Скорость на подходе к точке входа в глиссаду
    LandingApproachCAS     = 210.0
    LandingTouchDownCAS    = 190.0
    TouchDownDistance      = 200.0	// Расстояние от точки начала выравнивания  до торца ВПП
    TouchDownPitch         = 14.0
    LandingApproachCAS_NoFuel  = 190.0 	//для маленького(выработано топливо) веса
    LandingTouchDownCAS_NoFuel = 170.0	//для маленького(выработано топливо) веса
    TouchDownDistance_NoFuel   = 200.0		//для маленького(выработано топливо) веса
    TouchDownPitch_NoFuel      = 14.0		//для маленького(выработано топливо) веса
    StartTurnBeforeGlissadeDistance = 500.0 // расстояние от оси ВПП на котором начинается 4-й разворот подбирается т.о. чтобы после завершения 4-го разворота самолёт оказался на оси ВПП
    TouchDownPitchUpSpeed  = 140.0	// скорость с которой на посадке начинается интенсивное дотягивание ручки на себя для торможения после касания
    TouchDownAlignHeight   = 50.0 // высота начала выравнивания (по умолчанию - 15.0)
    SmoothTouchDownHeight  = 3.0	// высота начала "мягкого касания(выдерживания)" по умолчанию - 2.0
    LandingThrottleLimit   = false
    BrakePitchMax          = 12.0	// тангаж при котором начинается приотпускание тормозов
    BrakePitchMin          = 10.0	// тангаж при котором тормоза не зажмутся больше BrakeLimMin
    BrakeLimMin            = 1.0	// множитель заданного сигнала тормозов при тангаже BrakePitchMin (защита от капотирования)
    ApproachLowering       = false
    ApproachIgnition       = false
    LandingRoundIgnition   = false
    TouchDownCYRFactor     = 0.0
    RestrictAttackAngle    = true
    MinAttackAngle         = 15.0
    MaxAttackAngle         = 18.0
    MinNegativeAttackAngle = -8.0
    MaxNegativeAttackAngle = -10.0
    MinSlipAngle           = 15.0
    MaxSlipAngle           = 20.0
    TaxiD1                 = 2.0
    TaxiD2                 = 8.0
    TaxiD3                 = 80.0
    TaxiD4                 = 300.0
    TaxiSpeedD1            = 15.0	// заданная скорость руления до дистанции D1, к D2 линейно интерполируется
    TaxiSpeedD2D3          = 25.0	// заданная скорость руления от дистанции D2 до D3, к D2 линейно интерполируется
    TaxiSpeedD4            = 60.0	// заданная скорость руления от дистанции D4
    TaxiMaxAngle           = 90.0	// угол отклонения от заданного направления руления, при котором заданная скорость снизится до TaxiSpeedD1
    TaxiMaxAside           = 50.0	// боковое отклонение от заданного направления руления, при котором заданная скорость снизится до TaxiSpeedD1
    TaxiBrakingThrottleUp  = 0.5	// насколько подгазовывать при использовании тормоза для подруливания на скорости менее TaxiSpeedD1
    TaxiingPitch           = false	// управление фиксатором хвостового колеса по взятию ручки управления на себя, тянет ручку когда до точки руления далеко и на взлете. Если выключено - тянет всегда.
    TaxiingPIDSpeed        = 40.0	// скорость переключения PID с [pid_taxiing] в [pid_0] при взлёте, при посадке обратное переключение при скорости 0,75*TaxiingPIDSpeed по умолчанию = TakeOffCAS+10
    Switch_2_TaxiingPIDSpeed = 120.0	// скорость переключения PID с [pid_0] в [pid_taxiing] при посадке. По умолчанию = LandingTouchDownCAS - 20.0
    TakeOffCAS             = 220.0	//целевая скорость , достигнув которой бот начинает пытаться оторвать самолёт от полосы. 
    TakeoffPitch           = 15.0	// угол тангажа до заданной высоты завершения маневра взлета
    TakeoffElevatorSafe    = true
    TakeoffSafePitch       = 0.0
    TakeoffSurfaceSlope    = false
    TakeoffCriticalSlope   = 0.0
    CriticalTakeoffRoll    = 10
    TakeoffYawFactor       = 0
    TakeOffBrakingMax      = 0.0	// значение торможения при отклонении на взлете по курсу на TakeOffBrakingAngle (до скорости pid_taxiing)
    TakeOffBrakingAngle    = 10.0	// отклонение по курсу на взлете, при котором осуществляется торможение на TakeOffBrakingMax
    StallRollRate          = 160.0
    StallYawRate           = 60.0
    StructureAlert         = true
    StructureAlertNy       = 5		// ограничение по пилоту, по самолёту =8
    StructureAlertTAS      = 690.0
    AttackIgnitionControl  = false
    TakeoffRefAngle        = 5.0
    MaxFlapsCAS            = 5.0
    MinFlapsCAS            = 10.0
    TakeOFFFlapsAngle      = 0.33  // 0..1 позиция закрылков при взлёте
    LandingFlapsAngle      = 1.0   // 0..1 позиция закрылков в посадочной конфигурации
    FlapsPosQuantity       = 0
    DifferentialBrakes     = false  // "true", если управление тормозами раздельное(мессер), "false" - общее (ЛаГГ)
    OpenCocpitWhileTaxi    = false   //  true - рулим на взлёт с открытым фонарём
    NeedFilter             = true	// нужно ли применять фильтр управления
    MinStickMoveTime       = 0.1	//минимальное время за которое ручка перебрасывается из крайнего положения в крайнее положение
    MaxStickMoveTime       = 0.1	// максимальное время за которое ручка перебрасывается из крайнего положения в крайнее положение
    MinStickMoveCAS        = 300.0	// скорость на которой время переброски m_MinStickMoveTime
    MaxStickMoveCAS        = 400.0	// скорость на которой время переброски m_MaxStickMoveTime
    CruiseThrottleLimit    = 1.0	// ограничитель положения РУД-а в крейсерских режимах полёта, 0..1 , по умолчанию - 1
    taxiWindLimit          = 10.5		// скорость ветра(м/с) выше которой самолёт не может рулить по земле и приземлившись выключается и дестроится на полосе (дефолт - 15.0 м/с)
	HoldFormationParamA    = 30.0
	HoldFormationParamB    = 50.0
[end]

[dogfight]
    [novice]
        RefNoseAngle      = 30.0
        MinCAS1           = 200.0
        MaxCAS2           = 650.0
        MaxPitchRate      = 180.0
        AttackDistance    = 700.0
        EngageDistance    = 1700.0
        MinFireDistance   = 100.0
        MaxFireDistance   = 800.0
        MinOpenFireAngle  = 13.0
        MaxOpenFireAngle  = 1.0
        MinStopFireAngle  = 26.0
        MaxStopFireAngle  = 2.0
        CollisionTimeTreshold  = 3.0
        HBTNegativeRoll        = -60.0
        HBTPositiveBTRoll      = 60.0
        InterceptAltitudeAdvance = 0.0
    [end]
    [normal]
        RefNoseAngle      = 30.0
        MinCAS1           = 200.0
        MaxCAS2           = 600.0
        MaxPitchRate      = 180.0
        AttackDistance    = 1000.0
        EngageDistance    = 2200.0
        MinFireDistance   = 70.0
        MaxFireDistance   = 600.0
        MinOpenFireAngle  = 10.7
        MaxOpenFireAngle  = 3.67
        MinStopFireAngle  = 18.57
        MaxStopFireAngle  = 5.51
        CollisionTimeTreshold  = 3.0
        HBTNegativeRoll        = -70.0
        HBTPositiveBTRoll      = 70.0
        InterceptAltitudeAdvance = 0.0
    [end]
    [high]
        RefNoseAngle      = 30.0
        MinCAS1           = 200.0
        MaxCAS2           = 500.0
        MaxPitchRate      = 180.0
        AttackDistance    = 1400.0
        EngageDistance    = 2700.0
        MinFireDistance   = 50.0
        MaxFireDistance   = 500.0
        MinOpenFireAngle  = 8.5
        MaxOpenFireAngle  = 4.0
        MinStopFireAngle  = 12.7
        MaxStopFireAngle  = 5.99
        CollisionTimeTreshold  = 3.0
        HBTNegativeRoll        = -75.0
        HBTPositiveBTRoll      = 75.0
        InterceptAltitudeAdvance = 300.0
    [end]
    [ace]
        RefNoseAngle      = 30.0
        MinCAS1           = 200.0
        MaxCAS2           = 450.0
        MaxPitchRate      = 180.0
        AttackDistance    = 2200.0
        EngageDistance    = 3200.0
        MinFireDistance   = 30.0
        MaxFireDistance   = 400.0
        MinOpenFireAngle  = 5.61
        MaxOpenFireAngle  = 3.64
        MinStopFireAngle  = 6.93
        MaxStopFireAngle  = 4.47	
        CollisionTimeTreshold  = 1.5
        HBTNegativeRoll        = -80.0
        HBTPositiveBTRoll      = 80.0
        InterceptAltitudeAdvance = 1000.0
    [end]

    MinSafeAltitude0  = 50.0
    MaxSafeAltitude0  = 100.0
    MinSafeAltitude45 = 80.0
    MaxSafeAltitude45 = 250.0
    MinSafeAltitudeVP = 600.0
    MaxSafeAltitudeVP = 1200.0

    CASPitchLimit  = false
    MinPitchCAS    = 200.0
    MaxPitchCAS    = 565.0
    STVOffset      = -1.5 // -5.5
    YawAimingAngle = 7.0

    AirTargetToLeaderCriticalDistance = 10000,15000

    DiveCAS   = 700.0
    CruiseCAS = 400.0
    ClimbCAS  = 320.0

    RestrictPitchBySSA = true
    MinPitchSSA = 10.0
    MaxPitchSSA = 15.0

    GunAirAimSmooth = 0.4    // Сглаживание наведения пушками в воздушном бою (нужно при расколбасе). [0..1], 0 - максимально, 1 - минимально, -1 - выключено
[end]

[approach]
    GroundTargetToLeaderCriticalDistance = 10000,15000
    VFAngle              = 0.0
    ApproachCAS          = 350.0
    ApproachRadius       = 600.0
    ApproachDistance     = 2800.0
    ApproachAltitude     = 500.0
    GroundAttackExitAltitude = 100.0   // минимальная высота выхода из пикирования при атаке ракетами и пушками (настроить над верхушками деревьев, а потом +40м)
    GroundAttackDistance = 300.0
    GroundEngageDistance = 1600.0
    GroundEngageRocketK  = 1.2			// к-т на который умножается m_GroundEngageDistance при атаке ракетами
    SpiralAttackApproach = true
    DiveBombAltitude     = 2500.0		// минимальная высота начала отвесного пикирования, если самолёт ниже и есть команда на атаку - будет набирать эту высоту перед бомбёжкой
    DiveBombExitAltitude = 750.0		// минимальная высота выхода из отвесного пикирования
    DeepDiveWeaponSet    = -1			// набор payloads подходящий для бомбёжки отвесным пикированием, -1 не используется, до 15 значений в строке
    ShallowDiveWeaponSet = 2,3,4,5,6,7,8,9,10,11,12,13	// набор payloads подходящий для бомбёжки пологим пикированием, -1 не используется, до 15 значений в строке
    ShallowDiveWeaponSet = 18,19,20,21,22,23,24,25		// набор payloads подходящий для бомбёжки пологим пикированием, -1 не используется, до 15 значений в строке
    ShallowDiveWeaponSet = 30,31,32,33,34,35,36,37		// набор payloads подходящий для бомбёжки пологим пикированием, -1 не используется, до 15 значений в строке
    ShallowDiveWeaponSet = 42,43,44,45,46,47,48,49		// набор payloads подходящий для бомбёжки пологим пикированием, -1 не используется, до 15 значений в строке
    ShallowDiveWeaponSet = 52,53,54,55,70,71,72,73		// набор payloads подходящий для бомбёжки пологим пикированием, -1 не используется, до 15 значений в строке

    OwerWingDive         = false		// вход в отвесное пикирование , true - переворотом через крыло, false - отдачей ручки от себя
    DiveSoftness         = 10.0			// "мягкость" выбирания ручки в пикировании большее значение - медленнее подводится к точке сброса, при этом планее, если число большое - может не успевать на низких высотах
    PushDiveEntranceDistance = 3000.0	// горизонтальное расстояние(м) до цели с которого начинается ввод в пике "ручкой от себя", подбирать таким образом, чтобы самолёт успевал занять положение для бомбардировки в пике, чем меньше, тем угол пике - выше
    PushDiveEntranceK    = 0.5			// Коэфф. интенсивности ввода в пике "ручкой от себя",при увеличении - более интенсивный ввод,  грубо, (Гориз.расстояние - PushDiveEntranceDistance)*PushDiveEntranceK = требуемый угол тангажа
    ShallowDiveAngle     = 20.0			// угол в пологом пикировании
    ShallowExitAltitude  = 210.0		// минимальная высота выхода из пологого пикирования (настроить над верхушками деревьев, а потом +40м)
    ShallowDiveEnterKoef = 1.35			// коэффициент на который умножается расчётная дальность начала ввода в пикирование, >1 - самолёт пикировать начинает раньше, < 1 - позже, подбирать под инд. особенности самолёта
    Salvo2WeaponSet      = 8,9,10,11,12,13	// набор payloads, при которых происходит залповый сброс/пуск бомб/ракет по 2 штуки, -1 не используется, до 15 значений в строке
    Salvo4WeaponSet      = -1			// набор payloads, при которых происходит залповый сброс/пуск бомб/ракет по 4 штуки, -1 не используется, до 15 значений в строке
    SalvoAllWeaponSet    = 2,3,4,5,6,7,14,15,16,17,18,19,20,21,22		// набор payloads, при которых происходит залповый сброс/пуск бомб/ракет по 2 штуки, -1 не используется, до 15 значений в строке
    SalvoAllWeaponSet    = 23,24,25,26,27,28,29,30,31,32,33,34,35,36	// набор payloads, при которых происходит залповый сброс/пуск бомб/ракет всех сразу, -1 не используется, до 15 значений в строке
    SalvoAllWeaponSet    = 37,38,39,40,41,42,43,44,45,46,47,48,49,52	// набор payloads, при которых происходит залповый сброс/пуск бомб/ракет всех сразу, -1 не используется, до 15 значений в строке
    SalvoAllWeaponSet    = 53,54,55,56,57,58,59,60,61,62,63,64,65,66	// набор payloads, при которых происходит залповый сброс/пуск бомб/ракет всех сразу, -1 не используется, до 15 значений в строке
    SalvoAllWeaponSet    = 67,70,71,72,73,74,75,76,77,78,79,80,81,82	// набор payloads, при которых происходит залповый сброс/пуск бомб/ракет всех сразу, -1 не используется, до 15 значений в строке
    SalvoAllWeaponSet    = 83,84,85										// набор payloads, при которых происходит залповый сброс/пуск бомб/ракет всех сразу, -1 не используется, до 15 значений в строке
    NearRocketAimError   = 15			//  Допустимая ошибка прицеливания по неподвижной цели на дистанции 300м и менее
    FarRocketAimError    = 10			//  Допустимая ошибка прицеливания по неподвижной цели на дистанции 600м и менее
    RocketAimSmooth      = 0.8			//  Резкость наведения ракетами. При <1 плавнее, при >1 резче
    GunAimSmooth         = 5.0  //  Резкость наведения пушками по наземным целям. При <1 плавнее, при >1 резче. Дефолт =1.8
[end]

[adapt_pid_0]
    CAS     = 200.0
    Roll    = 27.0,  0.0,  8.0, 0.05
    Pitch   =100.0,  0.0, 12.0, 0.02
    PitchVy = 50.0,  0.0, 35.0, 0.05
    Yaw     = 35.0,  0.0, 14.0, 0.05
    Speed   = 20.0, 50.0, 15.0, 0.2
[end]
[adapt_pid_1]
    CAS     = 300.0
    Roll    = 18.0,  0.0,  4.5, 0.05
    Pitch   = 16.0, 10.0,  4.5, 0.02
    PitchVy = 18.0,  0.0, 12.0, 0.05
    Yaw     = 21.0,  0.0,  9.0, 0.05
    Speed   = 20.0, 50.0, 15.0, 0.2
[end]
[adapt_pid_2]
    CAS     = 500.0
    Roll    = 11.5,  0.0,  2.3, 0.05
    Pitch   =  8.0,  6.0,  2.0, 0.02
    PitchVy = 13.0,  0.0,  8.0, 0.02
    Yaw     = 20.0,  0.0,  4.0, 0.05
    Speed   = 20.0, 50.0, 15.0, 0.2
[end]
[pid_taxiing]
    Roll    = 20.0,  0.0,  0.0, 0.03
    Pitch   =  4.0,  0.0,  0.0, 0.05
    Yaw     = 15.0,  0.0,  0.0, 0.05
    Speed   = 40.0, 30.0,  0.0, 0.2
    WheelBrakes = 2.0, 0.0, 0.0
[end]