Ладно. Остался последний этап - расчет боя перед рубкой. Рассчитываем показатели защиты с учетом того, что для ксенонов формула изменилась в сравнении с той, что использовалась при расчете боя на палубах.
| статья писал(а):Для ксенонов:
| DefenceLevel = BaseDefenceLevel × 2 + 85 × MaxMarines - 50 × <количество палуб> |
| |
- Наличие на корабле внутренних сторожевых лазеров и вражеского десанта по-прежнему не учитывается.
Для землян и АОГ:
| DefenceLevel = BaseDefenceLevel × 4 + <суммарный боевой уровень вражеских десантников> |
| |
- При наличии на корабле внутренних сторожевых лазеров DefenceLevel увеличивается на 200.
Для всех остальных:
| DefenceLevel = BaseDefenceLevel + <суммарный боевой уровень вражеских десантников> |
| |
- При наличии на корабле внутренних сторожевых лазеров DefenceLevel увеличивается на 200.
|
| |
Снова считаем AttackLevel - суммарный боевой навык атакующих десантников (или берем уже сосчитанный ранее для палубного боя) и высчитываем пределы изменений обоих параметров (здесь они у нас "гуляют" вверх-вниз не на 10%, а на 6,66%).
DefenceLevelmax = DefenceLevel + [DefenceLevel / 15] - 1 /// 6,66% = 1 / 15 DefenceLevelmin = DefenceLevel - [DefenceLevel / 15]
AttackLevelmax = AttackLevel + [AttackLevel / 15] - 1 AttackLevelmin = AttackLevel - [AttackLevel / 15]
Ну а дальше начинаем быстренько считать. После заморочек с палубным боем здесь все совсем просто:
1. Если (AttackLevelmax - DefenceLevelmin) =< 0, то Шанс = 0, goto 11
2. Если (AttackLevelmin - DefenceLevelmax) > 0, то Шанс = 1, goto 11
3. А1 = DefenceLevelmax - AttackLevelmin + 1
4. А2 = (DefenceLevelmin - AttackLevelmin + |DefenceLevelmin - AttackLevelmin|) / 2
5. А3 = (DefenceLevelmax - AttackLevelmax + |DefenceLevelmax - AttackLevelmax|) / 2
6. S = (DefenceLevelmax - DefenceLevelmin + 1) * (AttackLevelmax - AttackLevelmin + 1)
7. Тр1 = (А12 - A1) / 2
8. Тр2 = (А22 - A2) / 2
9. Тр3 = (А32 - A3) / 2
10. Шанс = (Тр1 - Тр2 - Тр3) / S
11. Конец.
Шанс - это вероятность того, что оставшиеся противники выпрыгнут в космос, а мы приступим к хаку. В случае же неудачи наш десант гибнет полностью в полном составе.
И рассчитаем сразу же минимально требуемые навыки для гарантированной победы и для того, чтобы на нее хотя бы был один шанс из миллиона.
| AttackLevel(min needed) = DefenceLevelmin + 2 - [(DefenceLevelmin + 2) / 16]
AttackLevel(guarranteed) = DefenceLevelmax + [DefenceLevelmax / 14] |
| |
|