[матчасть](< base_url >/index.php?/topic/36273-voprosy-razrabotchikam-igry-star-conflict-za-avgust-2013-g/?p=765835#entry765835)
Извините, но матчасть (механика модификаторов) - кривая.
В матчасти сказано:
Правила сложения влияния модулей (кроме модулей на сопротивление урону) таковы: сначала все модификаторы складываются , а затем к результату применяется одна из формул:
ЕСЛИ mod < 0 ТОГДА newValue = baseValue / ( 1 - mod )
ЕСЛИ mod > 0 ТОГДА newValue = baseValue * ( 1 + mod )
Давайте посмотрим, к чему это приводит.
Базовое значение максимальной дальности ионного излучателя - 2950 м.
Есть 3 модификатора максимальной дальности
-
нейроконтроллер «Альбатрос» +20%
-
модуль горизонт +35,8%
-
дуговой рефлектор -50%
Расчитаем mod (в соответствии с матчастью) для каждого модификатора в отдельности:
-
нейроконтроллер «Альбатрос» 0.2
-
модуль горизонт 0.358
-
дуговой рефлектор -1
Суммируем mod
0.2 + 0.358 + (-1) = -0.442
Матчасть предписывает использовать формулу для варианта mod < 0
2950 / (1 - (-0.442)) = 2950 / 1.442 = 2045.76976
Вроде бы всё в соответствии с матчастью, но где же логика?! А она отсутствует напрочь.
Чтобы понять это, достаточно представить, что у нас 2 модификатора:
-
+50%
-
-50%
Расчитаем mod для каждого модификатора в отдельности:
-
0.5
-
-1
Суммируем mod
0.5 + (-1) = -0.5
Т.е. для того, чтобы скомпенсировать -50% нужен повышающий модификатор +100%.