Битва вызывается по "$scene=Scene_LBS.new(1)" (Из эвента - я пока не знаю, как заменить моей битвой стандартную рандомную), где вместо 1 ставится номер troop'а.
Битва может протекать в одном из трёх режимов - Attack Mode (Обычный), Blood Mode(Вызывается клавишей B - по умолчанию это Esc или X) и Special Mode (Вызывается клавишей A - по умолчанию шифт - и заканчивается по истечении таймера или нажатия B ).
Игровой экран примерно выглядит так:
1 - Множитель или Коэффициент
2 - HP
3 - Руны, которые нужны для Special Mode
4 - Шкала урона
5 - Линейка Special Mode
Attack Mode
Врагов изображают эвенты. Действие происходит на локации под номером 1. Кнопкой C (Я их так и буду называть, т.к. они переназначаемые) - происходит атака (при этом может произойти смена цели), кнопкой B - переход в Blood Mode, кнопкой A - переход в Special Mode. Кнопками X/Y/Z (A/S/D соответственно), нажатыми в правильное время, можно заблокироваться (уменьшить урон) от специальной/кровавой/обычной (A/B/C) атаки соответственно. Кнопки L/R (Q/W) переключают цель - урон от цели снижен.
Формулы:
Xh/Xe - Коэффициент героя/врага соответственно
HPh/HPe - HP героя/врага
Mh/Me - вес оружия героя/врага
mh/me - вес (или какой-нибудь другой термин для этого) брони
A - некоторый неизвестный коэффициент, который ещё надо будет найти - в каждом случае разный
At - Атака, вычисляемая из характеристик
Hit - единичный урон
Dmg - Общий урон (Всякие комбы)
Line - красная линия на шкале урона.
При ударе Xh=Xh-Mh*A, вне зависимости от урона
При защите Xh=Xh-(Me-mh)*A
если Xh<1.0, то со временем Xh увеличивается
Если Dmg>Line (Dmg - суммарный урон одному противнику в течение времени. Line может варьироваться для каждого противника), то Xh=Xh+(Dmg-Line)*A
При ударе Hit=At*(Xe/Xh)*A
Также, может, стоит изменять показатель защиты в зависимости от Xh. Не знаю пока
Blood Mode
Моя первая идея, привёдшая к созданию этой концепции - сделать игру без MaxHP. MaxHP=9999(Или сколько там можно установить максимум). В игре не будет ни одного лечащего предмета/отдыха/магии. Вместо этого потерянные HP восстанавливаются в Blood Mode. Во время Blood Mode действуют другие формулы атаки (защита та же):
Hit=At
Тут есть разные варианты. Либо:
HPe=HPe-Hit*A*Xe
HPh=HPh+Hit*A*Xh
Либо:
HPe=HPe-Hit
HPh=HPh+Hit*A*Xh/Xe
Я больше склоняюсь к первому варианту.
И, в конце, Xh=0 (возможно, вне зависимости от результата, хотя, может, это слишком жёстко будет)
После одного удара, вне зависимости от результата происходит выход из Blood Mode и игрок некоторое время не может атаковать. Blood Mode может быть включен снова только спустя нек-ое время
Special Mode
В Special Mode время останавливается и начинает работать таймер. Выход из этого режима осуществляется при его истечении либо нажатии B. Потом клавишами L/R выбирается противник, после чего вводятся руны клавишами A/C/X/Y/Z/L/R. Команды можно повторять или вводить разные- например, если есть скиллы S1:XZZACA, S2:ZZXCA и S3:ZXCRZXCRZXC (Который наносит удары трём противникам, считая от выделенного), то если ввести XZZACAXZZACA, то дважды скастуется S1. Если ввести XZZACARXZZACA, то S1 скастуется на двух разных врагах (если их два). Если ввести XZZACAZZXCA, то на одном противнике произойдёт вначале S1, потом S2. ZXCRZXCRZXCZZXCA: S3 по трём разным противникам, потом S2 на последнего. Каждая руна отнимает от Xh свою стоимость. После каждого использования стоимость увеличивается в геометрической прогрессии. При нажатии B/истечении таймера происходит выход из Special Mode. Но время ещё не запускается - и герой совершает специальную атаку (Если необходимо - то подпрыгивает ко врагу/перемещается между врагами(Возможно, с каким-нибудь шлейфом) и после возвращается на место, где стоял в начале SMode). И только теперь остановка времени проходит. Стоимость рун спустя время восстанавливается до изначальной.
Вроде всё