Логика боев

Материал из 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 прочности за ничью/поражение:
- С 1-го до 10-го уровня включительно - за каждые 300 входящего/заблокированного урона
- С 11-го до 14-го уровня включительно - за каждые 500 входящего/заблокированного урона
- С 15-го до 18-го уровня включительно - за каждые 1000 входящего/заблокированного урона

Урон распределяется рандомно по тем предметам, которые участвовали в блоке зоны.
При этом считается следующее количество урона, за которое снимается прочность:

+ Урон, что заблокирован броней берем полностью.
+ Урон, который заблокирован блоком берется с коэффициентом 10% от возможного урона (без учета брони на данной зоне)