Логика боев

Материал из Fireofsteel
Перейти к: навигация, поиск
Интерфейс боя
Бои в игре организованы пошагово. У каждого игрока по умолчанию существует 2 блока и 1 удар. Количество ударов и блоков за один ход увеличивается от того, какое оружие, предмет амуниции или щит вы берете с собой в бой. 

В меню выбора удара и блока вы можете видеть свободное количество блоков/ударов. В случае, если вы не выберете все блоки или удары, при нажатии клавиши удар, система выдаст вам сообщение - напоминание о свободных блоках ударах.

Для удобства количество жизни отображается не только в полоске хп сверху персонажа, но и на образе персонажа. В зависимости от количество оставшейся жизни фон изменит свой цвет последовательно с зеленого на желтый и затем на красный.

В бою вам доступны такие опции как Автобой, в случае наличия у вас премиум аккаунта. При включенном автобое блоки и удары ставятся рандомно, без вашего участия. Вам необходимо только клавишу Автобой.

Так же для всех игроков доступны быстрые клавиши. Вы можете поставить мышкой удар и блок одновременно на одной зоне, просто кликнув клавишей посередине между блоком и ударом.

Логика расчета в бою

  • шаг 1

все значения на этапе вычисления округляем - урон = базовый начальный рандомный (мин - макс) урон + урон от значения силы у игрока + рандом от оружия дамаг (мин - макс) + урон от изученных приемов + урон от мастера оружия
считаем броню (от противника) броня - массив - 6 значений

  • шаг 2

Считаем вероятность критического удара как разность между производной характеристикой "крит" атакующего и "антикрит" обороняющегося, полученное значение не должно выходить за пределы 0-80%
Считаем сам критический удар
Значения коэффициента рандомно от 1.5 до 2.5 (с шагом 0,1)
Затем, если у игрока есть "Снижение урона от критического удара" - снижаем на данное значение, но не более, чем на 50%

  • шаг 3

корректируем урон на значение брони
урон = урон - броня (если отрицательное или = 0, то считаем минимальное значение как рандом от 0 до 1)
При наличии крита уменьшать влияние брони на данном участке на рандомное значение от 10% до 50% с шагом 1%

  • шаг 4 уворот

считаем вероятность как разницу характеристик "уворот" защищающегося и "антиуворот" нападающего
полученное значение не должно превышать 80%

  • шаг 5

если есть блок на этой зоне:
1. не было крита, тогда полностью блокируется, итог - урон 0
2. был крит, значит делим урон на 2.5
если блока нет, то просто проходит урон

эти шаги повторяются для всех зон ударов

6й шаг логически обрабатывается суммарно по всем зонам и в логах не присутствует

пропуск хода в боях 1 на 1 - это пустой удар, 3 пропуска хода скинет hp в 0 (3 за бой)


За победу в бою с оружия и щита снимается -1 прочности.
За проигрыш с оружия и щита снимается -3 прочности.
За ничью с оружия и щита снимается -3 прочности.
С остальной одежды снимаются -1 за победу, и -3 прочности за каждые 300 входящего/заблокированного урона в случае ничьей/поражения. Распределение у какого предмета упадет прочность после боя - рандомное.
Пример: победный бой, вам нанесли 1000 урона, значит прочность вещей (не оружие, не щит) может упасть следующим образом:
-1, -1, -1 у трех случайных предметов.
-2 у одного предмета и -1.
-3 у одного предмета.