Наверняка, считать можно несколькими способами. Также для удобства везде будем использовать бросок меткости 80%. Это значит, что весь базовый урон кораблей будет равен 80% от номинального.
Флот 1:
Флот 2:
Урон, наносимый Флотом 1.
Номинальный урон Валькирии 50 единиц ракетного урона. От 80% меткости получаем 40 урона.
5000 Валькирий нанесут 5000 * 40 = 200000 ракетного урона.
Номинальный урон Джавелина 45 единиц плазменного урона. С меткостью будет 36 урона.
100000 Джавелинов нанесут 100000 * 36 = 3600000 плазменного урона.
Модуль даст нам ещё +10%.
Итого:
220000 ракетного урона
3960000 плазменного урона
Урон, наносимый Флотом 2.
Номинальный урон Раптора 150 единиц кинетического урона. С меткостью будет 120 урона.
33333 Рапторов нанесут 33333 * 120 = 3999960 урона.
Модуля на урон нет.
Итого:
3999960 кинетического урона.
Механика Превосходства.
Замечание: далее мы используем все защиты от каждого типа урона. В текущем контексте все эти защиты на 40%, 20% больше или меньше чем "средняя" защита (от того типа урона, который корабль сам наносит). Следовательно можно было бы упростить выражение, так как сумма всех защит 0,6*х+0,8*х+х+1,2*х+1,4*х равна 5*х, где х - номинальная или средняя защита. Но если в игре будет произведена ребалансировка и защиты будут отвязаны от процентов, то придётся использовать сумму всех защит вместо средней защиты, умноженной на пять.
Итак, сначала надо вычислить суммарную защиту для каждого типа корабля:
Валькирия: 90+110+120+100+80 = 500
Джавелин: 55+33+44+66+77 = 275
Раптор: 180+210+150+90+120 = 750
Затем считаем суммарную защиту Флота 1 и 2:
Флот 1: 5000 Валькирий * 500 + 100000 Джавелинов * 275 = 30000000
Флот 2: 33333 Рапторов * 750 = 24999750
У Флота 1 суммарная защита больше, следовательно механика Превосходства будет действовать на него. Сам бонус даётся за превышение одной суммы над другой.
Вычитаем из большего меньшее: 30000000 - 24999750 = 5000250
И делим на меньшее: 5000250 / 24999750 = 0,200012
Константа: 12,5% бонуса за каждые 100% превышения.
Умножаем 0,200012 на константу в долях 0,125 = 0,0250015
Это финальный бонус в долях или 2,5% к защите даст Превосходство.
Защита Флота.
Для Флота 1 вся номинальная защита будет умножена на 1,0250015 (от Превосходства)
Для Флота 2 вся номинальная защита будет умножена на 1,3 (от Модуля)
Получение Урона Флотом 2.
В его составе только один корабль, поэтому начнём с него. Напомню про сравнение Защиты с очками Здоровья в других играх.
Финальная защита Раптора:
117 от ракетного урона
234 от плазменного урона
Урон наносится последовательно каждому кораблю. Математически это можно описать как Вычитание из Защиты всех кораблей входящего Урона:
(33333 * 234) защиты от плазмы - 3960000 урона плазмы = 3839922 защиты от плазмы осталось.
Приводим обратно к кол-ву кораблей: 3839922 / 234 = 16409,92 Рапторов осталось.
Округление происходит в конце боя.
Переходим к следующему урону:
(16409,92 * 117) защиты от ракет - 220000 ракетного урона = 1699961 защиты от ракет осталось.
Приводим обратно к кол-ву кораблей: 1699961 / 117 = 14529,58 Рапторов осталось.
Теперь можно округлить. По механике игры, если у одного корабля осталось хотя бы 50% здоровья, то он выживает.
14530 Рапторов осталось после боя.
Получение Урона Флотом 1.
Здесь будет посложнее, так как корабля тут два и ещё будет избыточный урон, который надо будет перераспределить.
Начнём с Приоритетов, они нам дадут в итоге доли урона по кораблям.
У Валькирии в атаке Приоритет 5000, у Джавелина 1000.
Суммарный Приоритет Флота: 5000 * 5000 Валькирий + 1000 * 100000 Джавелинов = 125000000
Доля Валькирий: (5000 * 5000) / 125000000 = 0,2
Доля Джавелинов: (1000 * 100000) / 125000000 = 0,8
Собственно, на первой итерации распределения Урона Валькирии получат 20%, а Джавелины 80% входящего урона.
Можно сделать вывод, что несмотря на разницу в приоритетах (5000 против 1000), бо́льшая часть урона ушла Джавелинам из-за их бо́льшего количества.
Валькирии: 3999960 * 0,2 = 799992 кинетического урона
Джавелины: 3999960 * 0,8 = 3199968 кинетического урона
Финальная защита с учётом Превосходства (2,5%).
Валькирии: 123,00018 от кинетики
Джавелины: 45,100066 от кинетики
Урон Валькириям:
Аналогично Рапторам вычитаем из Здоровья Урон:
(5000 * 123,00018) - 799992 = −184991,1
Это значит, что все Валькирии будут уничтожены в первой итерации и избыточный урон равен 184991,1 кинетики. Он будет перераспределён далее.
Урон Джавелинам:
(100000 * 45,100066) - 3199968 = 1310038,6 защиты от кинетики осталось.
Приводим обратно к кол-ву кораблей: 1310038,6 / 45,100066 = 29047,38 Джавелинов осталось.
Вторая итерация.
Урон Джавелинам:
(29047,38 * 45,100066) - 184991,1 = 1125047,66 защиты от кинетики осталось.
Приводим обратно к кол-ву кораблей: 1125047,66 / 45,100066 = 24945,59 Джавелинов осталось.
24946 Джавелинов осталось после боя.
Отчёт.
Если бы в реальном бою выпал бросок меткости в 80%, то в отчёте мы бы увидели (потери / всего):
Флот 1:
Джавелин: 75.05k / 100.00k
Валькирия: 5000 / 5000
Флот 2:
Раптор: 18.80k / 33.33k
Тут сражение между атакующим флотом и уже имеющейся Блокадой будет аналогично бою в космосе, с той лишь разницей, что у Блокады будет использоваться Приоритет в Защите.
Но в Блокаде ещё возможен запуск Ракет, но его мы расмотрим в Атаке Планеты.
Флот 1:
Флот 2:
Первой фазой будет Запуск Ракет.
Так как тут нет второго флота, то механика Превосходства естественно не работает.
У Ракет есть параметры: кол-во боеголовок и урон от одной боеголовки. Тип урона у них - ракетный, не зависимо от вида.
А распределение Урона происходит через распределение Ракет. Если у корабля защиты меньше, чем урона у боеголовки, то она нанесёт урон равный защите и не больше.
Приоритет тут считается так же, значения у имеющихся кораблей 1000.
Итак, считаем долю каждого корабля в общем кол-ве:
Экскалибры: 100000 * 1000 / (100000 * 1000 + 70000 * 1000) = 0,5882
Абаддоны: 70000 * 1000 / (100000 * 1000 + 70000 * 1000) = 0,4117
Ракета - есть сущность неделимая, поэтому распределение ракет обязательно идёт с округлением и проверкой остатка. А также последовательно, ведь после выстрела одних ракет кол-во флота изменится.
Распределение. Кобры.
Кобр на экскалибры:
1000 * 0,5882 = 588,2 = 589
Тут мне неизвестно как именно округляются ракеты, но я всегда округляю вверх до целого.
Кобр на абаддоны: 1000 - 589 = 411
Это последний корабль, поэтому вычитаем всё, что использовали, чтобы не появилось "лишней" ракеты.
Защита экскалибров от ракет 275, а с учётом Модуля 357,5.
Защита абаддонов 540, с Модулем 655,2
У Кобр 1 боеголовка, её урон 150.
Урон Экскалибрам.
589 ракет Кобра = 589 * 1 боеголовок по 150 урона = 88350 ракетного урона
(100000 * 357,5) - 88350 = 35661650 защиты от ракет осталось.
Приводим обратно к кол-ву кораблей: 35661650 / 357,5 = 99752,87 Экскалибров осталось.
Урон Абаддонам.
411 * 150 = 61650 ракетного урона
(70000 * 655,2) - 61650 = 45802350 защиты от ракет осталось.
Приводим обратно к кол-ву кораблей: 45802350 / 655,2 = 69905,91 Абаддонов осталось.
Авроры.
Заново считаем долю каждого корабля в общем кол-ве:
Экскалибры: 99752,87 / (99752,87 + 69905,91) = 0,587962
Абаддоны: 69905,91 / (99752,87 + 69905,91) = 0,412038
Аврор на экскалибры: 30000 * 0,587962 = 17638,86 = 17639
Аврор на абаддоны: 30000 - 17639 = 12361
У Аврор 4 боеголовки, урон одной 75.
Урон Экскалибрам.
17639 ракет Аврора = 17639 * 4 боеголовки по 75 урона = 5291700 ракетного урона
(99752,87 * 357,5) - 5291700 = 30369951,025 защиты от ракет осталось.
Приводим обратно к кол-ву кораблей: 30369951,025 / 357,5 = 84950,91 Экскалибров осталось.
Урон Абаддонам.
12361 * 4 * 75 = 3708300 ракетного урона
(69905,91 * 655,2) - 3708300 = 42094052,232 защиты от ракет осталось.
Приводим обратно к кол-ву кораблей: 42094052,232 / 655,2 = 64246,11 Абаддонов осталось.
Второй фазой будет "пассивный" урон от Ракетных Башен.
Урон одного уровня Ракетной Башни равен 100, далее он умножается на планетарный коэффициент. У Минтериума на 5 шахт он 3,6. Получим 100 * 3,6 = 360 урона.
Урон Ракетной Башни изменяется линейно с уровнем здания. Таким образом полный урон всех Ракетных Башен на данной планете будет равен:
360 * 100 уровней = 36000 рельсотронного урона (такой тип урона у Башен)
Распределяется всё так же, 1000 - значение приоритета у кораблей:
Экскалибры: 84950,91 * 1000 / (84950,91 * 1000 + 64246,11 * 1000) = 0,5694
Абаддоны: 64246,11 * 1000 / (84950,91 * 1000 + 64246,11 * 1000) = 0,4306
Защита экскалибров от рельсотрона 165, а с учётом Модуля 214,5.
Защита абаддонов 360, с Модулем 468
Урон Экскалибрам.
(84950,91 * 214,5) - 36000 * 0,5694 = 18201471,795 защиты осталось
Приводим обратно к кол-ву кораблей: 18201471,795 / 214,5 = 84855,35 Экскалибров осталось.
Урон Абаддонам.
(64246,11 * 468) - 36000 * 0,4306 = 30051677,88 защиты осталось
Приводим обратно к кол-ву кораблей: 30051677,88 / 468 = 64212,99 Абаддонов осталось.
Третьей фазой будет бой с флотом на планете.
Урон, наносимый Флотом 1.
Экскалибры: 84855,35 * 225 * 0,8 (меткость) = 15273963 ракетного урона
Абаддоны: 64212,99 * 440 * 0,8 = 22602972,48 рельсотронного урона
Урон, наносимый Флотом 2.
Хорнеты: 10000 * 110 * 0,8 = 880000 лазерного урона
Превосходство.
Повторно проводить рассчёты не станем, ибо тут невооружённым глазом видно достаточное превышение Флота 1 над Флотом 2. Будет максимальный бонус в 50%.
Распределение урона.
Экскалибры: 84855,35 * 1000 / (84855,35 * 1000 + 64212,99 * 1000) = 0,5692
Абаддоны: 64212,99 * 1000 / (84855,35 * 1000 + 64212,99 * 1000) = 0,4308
Защита экскалибров от лазера 330, бонусы от Модуля и Превосходства складываются, 594
Защита абаддонов 288, с бонусами 518,4
Защита хорнетов от ракет 72, от рельсотрона 108
Получение Урона Флотом 1.
(84855,35 * 594) - 880000 * 0,5692 = 49903181,9 защиты осталось
Приводим обратно к кол-ву кораблей: 49903181,9 / 594 = 84012,09 экскалибров осталось.
(64212,99 * 518,4) - 880000 * 0,4308 = 32908910,016 защиты осталось
Приводим обратно к кол-ву кораблей: 32908910,016 / 518,4 = 63481,69 абаддонов осталось.
В итоге после боя осталось 84012 Экскалибров и 63482 Абаддона.
Получение Урона Флотом 2.
Ракетный урон.
(10000 * 108) - 15273963 = −14193963
Это означает, что все Хорнеты были уничтожены и что осталось 14193963 ракетного урона. Напомню, что если бы в защите был ещё один тип кораблей и они не были бы уничтожены за первую итерацию, то этот урон был бы распределён далее.
Отчёт.
Если бы в реальном бою выпал бросок меткости в 80%, то в отчёте мы бы увидели (потери / всего):
Флот 1:
Экскалибр: 15.99k / 100.00k
Абаддон: 6.52k / 70.00k
Флот 2:
Хорнет: 10.00k / 10.00k
Предлагаю читателю самостоятельно провести несколько подсчётов на выбор.
Джавелины в Блокаде на Квесте, модуль Ореол, +25% к защите.
Атака Планеты Ториум на 3 шахты, планетарный коэффициент 0,8;
одна Ракетная Башня первого уровня, 100 Кобр (1 боеголовка по 150 урона)
Заметка: урон боеголовки не будет превышать защиту корабля.
Атака Планеты Ториум на 3 шахты, планетарный коэффициент 0,8;
одна Ракетная Башня первого уровня, 100 Кобр (1 боеголовка по 150 урона), 300 Аврор (4 боеголовки по 75 урона);
Модуль Усилитель Щита, +30% к защите.
Атака Планеты без ракет и башен;
Модуль Усилитель Щита, +30% к защите.
Тут есть бросок меткости, предлагаю посчитать два варианта: меткость 80% и 100%. И сравнить отчёт с границами: результат 80% <= отчёт <= результат 100%.
Заметка: все бонусы суммируются.
Атака Планеты без ракет и башен;
Тут есть бросок меткости, предлагаю посчитать два варианта: меткость 80% и 100%. И сравнить отчёт с границами: результат 80% <= отчёт <= результат 100%.
Заметка: влияние Приоритета и типа атаки на распределение урона.