Ошибка NWC: стек всегда стек.
Posted: Wed Jul 06, 2005 00:30
Общие рассуждения.
Развивая идею п.4.5. темы "Двадцать пять пожеланий" утверждаю: "стек НЕ всегда стек". Ошибочность подхода "стек всегда стек" ясно выражена именно в Heroes IV в явлении, называемом "качки", но след его начался с King's Bounty. Сама по себе идея NWC прекрасна: сделать героя не просто активным болельщиком армии, но и полноценным и честным участником в ходе битвы; не просто оказывающим воздействие на изменение характеристик юнитов или кастующим на вражин спеллы, но и подвергающимся прямому риску быть убитым (захваченным в плен) врагом. Идея великолепна, но NWC нечто подвело в ее реализации. В общих чертах реализация NWC мне очень напоминает попытку применить методы классической, непрерывной механики к квантовым объектам. Но нельзя всегда применять хорошо работающие правила для стеков "классических" к герою или стекам "квантовым". Вводим понятия: стек "классический" и стек "квантовый" (по ассоциации/аналогии с классической и квантовой механикой). Определить их нужно согласно условию: "если разница в количестве юнитов сравниваемых/анализируемых стеков превосходит некоторое критическое число", то это однозначно будет влиять на схему их взаимодействия друг с другом. Обратите внимание на слово "разница" - т.е. например: герой vs герой можно рассматривать как вариант ("классический" стек) vs ("классический" стек), но по отношению к сотне орков герой будет являться "квантовым" стеком; стек из 11 драконов по отношению к легиону орков так же будет "квантовым" (примечание: легион равен 10000).
Повторюсь: в Героях любой версии возможна ситуация, когда единственным юнитом можно замочить до сотни юнитов другого стека или наоборот - всю громадную мощь стека растратить на 1-го хилого юнита. Так вот, что дает введение "квантового" стека: "квантовый" стек не может уничтожить количества юнитов стека "классического", превосходящее то самое "критическое число". И этим:
1. Автоматически приговаривается такое явление в Heroes IV как "качки";
2. Автоматически возрастает важность low-level юнитов на боле боя;
3. Сама мат. модель проведения боя будет точнее соответствует реалу или нашему человеческому восприятию;
4. Возрастет важность стратегии развития городов и планирования походов.
Пример: положим, для героя 15-го уровня "критическое число" ((3 за lvl)+(3 за Грандмастер Melee))*(2 опять за Грандмастер Melee)*(поправка на размер юнитов стеков=1) равно 12. Тогда, если он дерзнет таки атаковать 300 спрайтов, то выносить каждую атаку будет не более 12, а получать от 288, 276, 264 ... и т.д. Где храбрый герой? - покойся с миром. Где спрайтики? - вьют погребальные венки. Но если он будет атаковать 3-х черных драконов, то получат последние по полной катушке, т.к. между ними взаимодействие по схеме "классической" - к-во черных драконов не превышает "критическое число": ((3 за lvl)+(3 за Грандмастер Melee))*(2 опять за Грандмастер Melee)*(поправка на размер юнитов стеков=1/4) равно 3. Т.е. - и спрайты целы, и на кольчужку шкура появилась; есть место подвигу героя и здравый смысл не попрали. p.s. Все приведенные схемы расчета "критического числа", "поправки на размер" и т.д. конечно надо обсуждать и несут прежде всего иллюстративный характер.
Идею "квантого" стека не нужно ограничивать лишь физическими атаками. Под нее можно подвести и действие любых спеллов, и способность ставить блок у минотавров - исходя из вероятности выпадения блока у каждого атакуемого минотавра определять проваливших и ранить/убивать их. Например, если дамажд достаточен для уничтожения 10 минотавров из стека и ранения одного и, при этом блок провалили 5 из них (6 из 11 поставили), то 4 минотавра точно мертвы и 1 убит или ранен (если провалившему повезло - выпало ранение вместо смерти). Здесь применим "квантовый" метод для "классического" стека. Эффективность спеллов высокого уровня может моментально возрасти, если "критическое число" для них сделать достаточно большим. Для цепной молнии оно будет не меньше ("критическое число" молнии)*4. Для Армагеддона - вообще неограниченное.
В конечном счете - любые стеки можно рассматривать как "квантовые" (просчитывать их не по "классике"), оставив от "классического" лишь внешнее отображение. В самом деле, если уж учитываем, что в рассматриваемом выше примере атаковать герой может не более "критического числа" спрайтов, то честно учитывать, что и героя в течении раунда может атаковать не более некоторого к-ва спрайтов, а не все 288. Только "критическое число" героя должно быть не больше к-ва спрайтов, способных атаковать в данном раунде (Вполне допустимо, что спрайтам необязательно вплотную подлетать к герою, но для атаки они используют сосредоточенный писк на расстоянии. И более крупных существ, чем герой в течении раунда сможет атаковать большее количество спрайтов). Но это - как получится у создателей Equilibrisа.
Зачем это все? - чтоб восстановить баланс в игре; дать ей новую степень и глубину развития; не повредить прекрасной идеи NWC равноправного объединения под одной "крышей" героев и стека монстров => сделать более привлекательной.
-----
Все комментарии участников форума, высказанные до 9 июля 2005 относятся к первой части темы: "Общие рассуждения". Предлагаемое ниже в топике содержит попытку развития идеи квантового стека.
1. "Критическое попадание" и "критический промах".
2. "Критическое число".
3. "Прозрачность" стека.
4. Улучшенное маневрирование и параметр Movement.
5. "Гидроподобность" стека.
6. Броня.
1. "Критическое попадание" и "критический промах".
Сама идея "критического попадания" не нова. Точно помню, что в 1-х Героях "Удача" интерпретировалась именно как критический удар - над стеком появлялась радуга и его дамадж удваивался. Идея "критического промаха" взята из D&D. Предлагаю эти идеи реализовать следующим образом.
1.1. "Критическое попадание" в случае физической атаки.
1.1.1. У каждой атаки для каждого монстра стека (не всех сразу, а одного, анализируемого движком комбата в данный момент) или героя существует возможность нанесения критического удара - с вероятностью 1/17. При этом для вычисления дамаджа параметр Defence у атакуемых существ стека считать поделенным: на 2 - в случае обычного критического попадания; на 3 - в случае редкого критического попадания (параметр "атака" атакующего и "защита" атакуемого использовать текущий, с текущими бонусами/пенальти) и результирующий дамадж увеличивать в 2 или 3 раза. Увеличение дамаджа можно определять так: с вероятностью 1/3 увеличивать в три раза, иначе - в два раза. Параметр броня (см. п.6) уменьшать в случае двукратного увеличения дамаджа на единицу, в случае трехкратного - на двойку (отрицательное значение брони приведет к еще большему увеличению дамаджа - формулы п.6.1). Если параметр Defence у атакуемого стека при делении получается менее 10, то присвоить ему значение 10. Если параметр Defence у атакуемого стека до деления был менее 10, то оставить его как есть.
1.1.2. У каждого "критического попадания" есть вероятность 1/17 превращения его в "редкое критическое попадание". Деля параметр Defence у атакуемого стека на 3 дамадж "редкого" увеличиваем не в 2 или 3 раза, а в 5 или 7 раз. Вероятность увеличения дамаджа в 7 раз положить равной 2/7 (в случае "невыпадения" - увеличиваем в 5 раз). Броня при пятикратном увеличении дамаджа уменьшается на две, при семикратном - на три единицы. В случае отрицательной брони дамадж еще больше увеличивается (п.6.1).
1.1.3. У каждого "редкого критического попадания" есть вероятность превращения его в "эпическое критическое попадание" - мгновенная смерть. В случае существ/героев, имунных к мгновенной смерти - игнорировать броню, уменьшать параметр "защита" в пять раз (но не меньше 10) и увеличивать результирующий дамадж в 11 раз (вариант: в 17 раз с вероятностью 6/17, иначе - в 11 раз).
1.1.4. Например, у одного из 4913 орков "эпическое критическое попадание" выпадет при первой же аттаке (если я конечно правильно считаю, что при таком количестве их вероятность "эпического" равна единице), - даже если они будут аттаковать героя какого-нибудь 99 уровня (оговорка к этому - ниже). Впрочем, герою возможно и обычных критикалов хватит. Вывод: экономящий на бутылочках Immortality долго не протянет.
1.1.5. Некоторых существ можно сделать имунных к критикалу (это не значит, что сами они его сотворить не могут). Например: ghostов и элементалей. Если считать, что по достижении некоего уровня (скажем, 40-го) герой становится полубогом в игре, то его так же можно сделать иммунным к критикалу. Также можно сделать некоторых существ или героев (начиная с левела N) иммуными к инсталл-киллу, но не имунных к критикалу вообще.
1.1.6. Количество убитых в случае "редкого" и "эпического" критического попадания считать исходя из "критического числа" для "монстра-счастливчика" стека.
1.2. "Критический промах" в случае физической атаки.
1.2.1. У каждого монстра стека существует вероятность (1/17) критического промаха - т.е. монстр/герой "мажет", и его атака в конечном расчете не учитывается.
1.2.2. У каждого "критический промаха" существует вероятность (1/17) превращения его в "редкий критический промах" - дамадж наносится по соседу (в стеке монстров) или себе, в случае героя.
1.2.3. У каждого "редкого критического промаха" существует вероятность (1/17) превращения его в "смертельный критический промах" - мгновенная смерть соседа (в стеке монстров) или для себя, в случае героя. Последнее невозможно для полубогов и критикал-иммуных. Но лупануть по себе - то же не очень приятно.
1.2.4. К-во убитых в случае "редкого" и "смертельного" критического промаха считать исходя из "критического числа" для "монстра-подлянщика" стека. ("Разъяренный behemoth сорвал башку трем своим собратьям").
1.3. Параметр (1/17) можно сделать зависящим от удачи/неудачи стека. Скажем, за каждые 3 пункта параметра "удача" увеличивать/уменьшать число 17 вероятности на единицу. Например, при удаче в 3 пункта вероятность для критического попадания всех видов станет (1/16) вместо (1/17) и для критического промаха всех видов (1/18 ) вместо (1/17). При неудаче наоборот - вероятность критического попадания будет уменьшаться, критического промаха - возрастать.
1.4. "Критическое попадание" и "критический промах" так же можно развить для случая кастинга спеллов, а не только для физических атак.
2. "Критическое число".
В начале темы вводилось понятие "критического числа" (кч), которое определялось как максимальное к-во существ, которое способен вынести "квантовый" стек со стека "классического", даже если стек "квантовый" потенциально несет в себе больший дамадж.
Забегая вперед, предлагаю степени свободы для нелетающих установить в 2, как двигающихся на плоскости; для летающих 3 - как двигающихся в пространстве; для телепортящихся 5 - как способных использовать четвертое измерение для перемещения/атаки и появляющихся там, где не ждут.
2.1. "Критическое число" в случае физической атаки.
2.1.1. Предлагаю расчитывать кч для героя vs монстры по формуле: (h+s)*(w/g)*(v/u)*(a/f), где h равно 1 для 1-7 уровня героя, возрастая на 1 за каждые след. 7 уровней; s - зависит от уровня мастерства учитываемого скилла (Melee, Archery, Spirituality, Wizardry, Demonology, Pyromancy, Meditation) и равен 1 для basic и advanced, 2 для expert и master, 3 для grandmaster; (w/g) - отношение показателя эффективности типа оружия атакующего к показателю эффективности защиты от данного типа оружия монстров атакуемого стека; (v/u) - отношение параметра "скорость"(speed) атакующего (v) к параметру "скорость" атакуемого (u); (a/f) - отношение к-ва степеней свободы атакующего героя (a) к к-ву степеней свободы монстров атакуемого стека (f). Размеры монстров учитывать не стал. Частично их учитывает (w/g).
2.1.1.1. Например, герой 14-го уровня с грандмастер Melee атакует стек волков Melee. Тогда его кч: (2+3)*(2/3)*(9/7)*(2/2) равен 4 целых и 2/7. Иначе сказать, его оружие за один проход может зацепить 4-х волков и 5-го - с вероятностью 2/7. Но таких прохода он сделает два за счет грандмастера Melee. Итого: за одну аттаку угрозе подвергаются 8(с вероятностью 100%)+1(с вер. 2/7)+1(с вер. 2/7) волков стека. Почему "подвергаются угрозе"? - потому что если дать волкам возможность избежать удар (или в случае "критического промаха"), то нужно будет учесть это у 8 точно попавших под удар и у каждого из двух, если они таки оказались под ударом. В случае минотавров это будет их способность к блокировке удара, каждого из атакуемых минотавров. Составляющие a и f (2/2) в этом примере учитывают возможность перемещения на плоскости. Составляющие w и g (2/3) просчитаны для длинного меча. Для рук это будет (1/3). Для молота и топора (3/5). Для двуручного меча (2/5). Для лука и арбалета - (5/3), для метательного копья - (3/2). Откуда цифры? - они просто предлагаются.
2.1.1.2. Герой 15 уровня с эксперт Archery атакует стек вампиров Ranged пращей. Тогда его кч: (3+2)*(3/2)*(9/9)*(3/3) равно 5 целых 5/8. (3/3) еще одно преимущество Ranged атаки - 3 степени свободы.
1.1.1.3. Герой 15 уровня с эксперт Archery аттакует стек нагов Ranged луком. Тогда его кч: (3+2)*(5/3)*(9/7)*(3/2) равно 16 целых 3/42. (3/2) разрешаем нагам перемещение на плоскости и учитываем возможность стрельбы "навесом" (т.к. вверх-вниз наги не летают, пока behemothа не встретят ).
2.1.2. Расчет кч для случая монсты vs монстры по формуле: m*n*(w/g)*(v/u)*(a/f), где n - к-во существ стека; m - использует таблицу: существа 1-уровня (например - пираты, импы, хафлинги): 2 2 1 1; 2-уровня (големы, эльфы, минотавры): 3 2 2 1; 3-го уровня (вампиры, монки): 3 3 2 2; 4-го уровня (фениксы, дьяволы): 5 3 3 2. Для расшифровки коэффициентов (w/g), (v/u), (a/f) - п.2.1.1.
2.1.2.1. Стек из 3-х фениксов атакует стек минотавров. Тогда кч стека фениксов 3*3*(3/1)*(12/6)*(3/2) равно 81.
2.1.2.2. Стек из 2-х behemothов атакует стек вампиров. Тогда кч стека behemothов 3*2*(2/1)*(7/9)*(2/3) равно 6 и 2/9.
2.1.3 Коэффициенты для расчета "Критического числа" можно положить равным 1.
2.1.4 Коэффициенты (w/g) - отношение показателя эффективности типа оружия атакующего к показателю эффективности защиты от данного типа оружия монстров атакуемого стека проще/гибче брать из квадратной таблицы. Это также создаст потенциальную возможность для более тонкой настройки баланса в монстрятнике Героев.
3. "Прозрачность" стека.
3.1. "Прозрачность" стека - это возможность стеку соперника игнорировать его. Т.е. вести себя так, как будто его ("прозрачного" стека) нет.
3.2. Условием, при котором стек относится к "прозрачным", предлагаю считать: если теоретически для уничтожения стека в среднем достаточно не более 15% юнитов атакующего стека.
4. Улучшенное маневрирование и параметр Movement.
4.1. Сейчас действия на поле боя выглядят так: перемещение+атака или просто атака, если стек атакуемый соприкасается с атакующим. Причем, если перемещается стек с ранджед атакой, то ранджед атаку он после перемещения производить не может. Предлагаю изменить эту схему и сделать возможным следующее: перемещение+атака+перемещение для всех возможных видов атаки, например - ранджед, мелее, кастинг.
4.2. Предлагаю параметр Movement использовать так же и атакой, т.е. атаку возможно провести только, если у стека осталось не менее (1/3)*(эффективная величина Movement) move поинтов. Если перемещаемый стек использовал большее к-во move поинтов, чем необходимо для проведения атаки, то он может провести только ответную атаку по обычной схеме и вполне может стать "пушечным мясом" для противника, стеки которого смогут его интенсивно атаковать всеми силами в течении текущего раунда.
4.3. Телепортящимся существам разрешить лишь телепорт+атака или просто телепорт (только под "атакой" здесь понимается не только атака, но и кастинг спелла).
4.4. Предлагаемый подход к параметру стека Movement так же делает возможной схему осторожного перемещения. Если передвигаемый стек не полностью израсходовал доступное количество move-поинтов, то параметр <u>Speed</u> стека на следующий комбат раунд модифицируется следующим образом: Speed = Speed*((отношение доступного количества move-поинтов)+1)/ ((количество израсходованных move-поинтов текущего комбат-раунда)+1). Т.е. он может возрасти <u>в</u> несколько раз, если игрок не перемещал стек вообще.
5. "Гидроподобность" стека.
5.1. Особенностью гидры в Героях является ее свойство атаковать все доступные атаке отряды. По аналогии/ассоциации с этим ее свойством и названо предлагаемое свойство: если для атаки стека противника задействовано не все количество юнитов атакующего стека, то атакующий стек может атаковать любой другой стек, находящийся в пределах его досягаемости. Эту атаку назовем "свободной атакой".
5.2. Пример. Стек тигров, с текущим значением Movement равном 14 (учитываем все кумулятивные бонусы от тактики, артефактов, спеллов) совершает перемещение к стеку противника (ценой 5 поинта Movement) и атакует его. На атаку тратится пять (14*1/3 = 4(2/3) = 5 округленно) move поинтов и на нее задействовано 30% юнитов "тигриного" стека. Следовательно, этому стеку тигров разрешено провести свободную атаку против любого другого стека, находящихся в радиусе не более четырех оставшихся move поинтов с силой оставшихся 70% юнитов тигриного стека для следующей цели. Либо отступить на четыре move поинта назад к более медленным стекам.
6. Броня.
6.1. Если воплощение в игре "критического числа", "критического попадания и промаха" представляются резко усиливающими юнитов 1-го левела, то этому усилению можно противопоставить броню. Броня - это способность поглощения дамаджа, наносимого юниту. Т.е. при броне, равной единице, из <u>базового текущего</u> дамаджа атакующего юнита вычитается единица. Например, юнит с базовым дамаджем 5-10 и атакой 20 атакует юнит с броней 1 и защитой 10. Тогда результирующий дамадж, получаемый атакуемым: (5-1)*20/10 = 8, (10-1)*20/10 = 18. Или 8-18 вместо 10-20, если броня отсутствует. Если тот же юнит наносит "обычный" критикал и коэффициент деления защиты выпал равным двум, а коэффициент увеличения дамаджа выпал равным трем, то: (5*3-(1-2))*(20/(10/2 < 10 => 10/2 "равно" 10)) = 32, (10*3-(1-2))*(20/(10/2 < 10 => 10/2 "равно" 10)) = 62. В последнем случае, если атака проводится юнитом 3-го уровня против юнитов 1-го уровня с 10 хит поинтами, то убить атакующий критикалом сможет не более критического числа последних. Но если атака проводится против героя, то ему достанется сполна.
6.2. Предлагаю юнитам 1-2 уровня значение брони положить равным единице; юнитам 3 уровня - двойке; юнитам 4-го уровня - тройке. Базовому и улучшенному комбату дать значение брони 1; Эксперт и Мастер - 2; Грандмастер - 3. Кожанному доспеху - 1; кольчуге обычной и эльфийской - 2; gold plate, обычным латам, dragonscale, scale of strength - 3; всем мажорным латам - 4; адамантиновым латам - 5. Всем щитам и шлемам - 1.
Развивая идею п.4.5. темы "Двадцать пять пожеланий" утверждаю: "стек НЕ всегда стек". Ошибочность подхода "стек всегда стек" ясно выражена именно в Heroes IV в явлении, называемом "качки", но след его начался с King's Bounty. Сама по себе идея NWC прекрасна: сделать героя не просто активным болельщиком армии, но и полноценным и честным участником в ходе битвы; не просто оказывающим воздействие на изменение характеристик юнитов или кастующим на вражин спеллы, но и подвергающимся прямому риску быть убитым (захваченным в плен) врагом. Идея великолепна, но NWC нечто подвело в ее реализации. В общих чертах реализация NWC мне очень напоминает попытку применить методы классической, непрерывной механики к квантовым объектам. Но нельзя всегда применять хорошо работающие правила для стеков "классических" к герою или стекам "квантовым". Вводим понятия: стек "классический" и стек "квантовый" (по ассоциации/аналогии с классической и квантовой механикой). Определить их нужно согласно условию: "если разница в количестве юнитов сравниваемых/анализируемых стеков превосходит некоторое критическое число", то это однозначно будет влиять на схему их взаимодействия друг с другом. Обратите внимание на слово "разница" - т.е. например: герой vs герой можно рассматривать как вариант ("классический" стек) vs ("классический" стек), но по отношению к сотне орков герой будет являться "квантовым" стеком; стек из 11 драконов по отношению к легиону орков так же будет "квантовым" (примечание: легион равен 10000).
Повторюсь: в Героях любой версии возможна ситуация, когда единственным юнитом можно замочить до сотни юнитов другого стека или наоборот - всю громадную мощь стека растратить на 1-го хилого юнита. Так вот, что дает введение "квантового" стека: "квантовый" стек не может уничтожить количества юнитов стека "классического", превосходящее то самое "критическое число". И этим:
1. Автоматически приговаривается такое явление в Heroes IV как "качки";
2. Автоматически возрастает важность low-level юнитов на боле боя;
3. Сама мат. модель проведения боя будет точнее соответствует реалу или нашему человеческому восприятию;
4. Возрастет важность стратегии развития городов и планирования походов.
Пример: положим, для героя 15-го уровня "критическое число" ((3 за lvl)+(3 за Грандмастер Melee))*(2 опять за Грандмастер Melee)*(поправка на размер юнитов стеков=1) равно 12. Тогда, если он дерзнет таки атаковать 300 спрайтов, то выносить каждую атаку будет не более 12, а получать от 288, 276, 264 ... и т.д. Где храбрый герой? - покойся с миром. Где спрайтики? - вьют погребальные венки. Но если он будет атаковать 3-х черных драконов, то получат последние по полной катушке, т.к. между ними взаимодействие по схеме "классической" - к-во черных драконов не превышает "критическое число": ((3 за lvl)+(3 за Грандмастер Melee))*(2 опять за Грандмастер Melee)*(поправка на размер юнитов стеков=1/4) равно 3. Т.е. - и спрайты целы, и на кольчужку шкура появилась; есть место подвигу героя и здравый смысл не попрали. p.s. Все приведенные схемы расчета "критического числа", "поправки на размер" и т.д. конечно надо обсуждать и несут прежде всего иллюстративный характер.
Идею "квантого" стека не нужно ограничивать лишь физическими атаками. Под нее можно подвести и действие любых спеллов, и способность ставить блок у минотавров - исходя из вероятности выпадения блока у каждого атакуемого минотавра определять проваливших и ранить/убивать их. Например, если дамажд достаточен для уничтожения 10 минотавров из стека и ранения одного и, при этом блок провалили 5 из них (6 из 11 поставили), то 4 минотавра точно мертвы и 1 убит или ранен (если провалившему повезло - выпало ранение вместо смерти). Здесь применим "квантовый" метод для "классического" стека. Эффективность спеллов высокого уровня может моментально возрасти, если "критическое число" для них сделать достаточно большим. Для цепной молнии оно будет не меньше ("критическое число" молнии)*4. Для Армагеддона - вообще неограниченное.
В конечном счете - любые стеки можно рассматривать как "квантовые" (просчитывать их не по "классике"), оставив от "классического" лишь внешнее отображение. В самом деле, если уж учитываем, что в рассматриваемом выше примере атаковать герой может не более "критического числа" спрайтов, то честно учитывать, что и героя в течении раунда может атаковать не более некоторого к-ва спрайтов, а не все 288. Только "критическое число" героя должно быть не больше к-ва спрайтов, способных атаковать в данном раунде (Вполне допустимо, что спрайтам необязательно вплотную подлетать к герою, но для атаки они используют сосредоточенный писк на расстоянии. И более крупных существ, чем герой в течении раунда сможет атаковать большее количество спрайтов). Но это - как получится у создателей Equilibrisа.
Зачем это все? - чтоб восстановить баланс в игре; дать ей новую степень и глубину развития; не повредить прекрасной идеи NWC равноправного объединения под одной "крышей" героев и стека монстров => сделать более привлекательной.
-----
Все комментарии участников форума, высказанные до 9 июля 2005 относятся к первой части темы: "Общие рассуждения". Предлагаемое ниже в топике содержит попытку развития идеи квантового стека.
1. "Критическое попадание" и "критический промах".
2. "Критическое число".
3. "Прозрачность" стека.
4. Улучшенное маневрирование и параметр Movement.
5. "Гидроподобность" стека.
6. Броня.
1. "Критическое попадание" и "критический промах".
Сама идея "критического попадания" не нова. Точно помню, что в 1-х Героях "Удача" интерпретировалась именно как критический удар - над стеком появлялась радуга и его дамадж удваивался. Идея "критического промаха" взята из D&D. Предлагаю эти идеи реализовать следующим образом.
1.1. "Критическое попадание" в случае физической атаки.
1.1.1. У каждой атаки для каждого монстра стека (не всех сразу, а одного, анализируемого движком комбата в данный момент) или героя существует возможность нанесения критического удара - с вероятностью 1/17. При этом для вычисления дамаджа параметр Defence у атакуемых существ стека считать поделенным: на 2 - в случае обычного критического попадания; на 3 - в случае редкого критического попадания (параметр "атака" атакующего и "защита" атакуемого использовать текущий, с текущими бонусами/пенальти) и результирующий дамадж увеличивать в 2 или 3 раза. Увеличение дамаджа можно определять так: с вероятностью 1/3 увеличивать в три раза, иначе - в два раза. Параметр броня (см. п.6) уменьшать в случае двукратного увеличения дамаджа на единицу, в случае трехкратного - на двойку (отрицательное значение брони приведет к еще большему увеличению дамаджа - формулы п.6.1). Если параметр Defence у атакуемого стека при делении получается менее 10, то присвоить ему значение 10. Если параметр Defence у атакуемого стека до деления был менее 10, то оставить его как есть.
1.1.2. У каждого "критического попадания" есть вероятность 1/17 превращения его в "редкое критическое попадание". Деля параметр Defence у атакуемого стека на 3 дамадж "редкого" увеличиваем не в 2 или 3 раза, а в 5 или 7 раз. Вероятность увеличения дамаджа в 7 раз положить равной 2/7 (в случае "невыпадения" - увеличиваем в 5 раз). Броня при пятикратном увеличении дамаджа уменьшается на две, при семикратном - на три единицы. В случае отрицательной брони дамадж еще больше увеличивается (п.6.1).
1.1.3. У каждого "редкого критического попадания" есть вероятность превращения его в "эпическое критическое попадание" - мгновенная смерть. В случае существ/героев, имунных к мгновенной смерти - игнорировать броню, уменьшать параметр "защита" в пять раз (но не меньше 10) и увеличивать результирующий дамадж в 11 раз (вариант: в 17 раз с вероятностью 6/17, иначе - в 11 раз).
1.1.4. Например, у одного из 4913 орков "эпическое критическое попадание" выпадет при первой же аттаке (если я конечно правильно считаю, что при таком количестве их вероятность "эпического" равна единице), - даже если они будут аттаковать героя какого-нибудь 99 уровня (оговорка к этому - ниже). Впрочем, герою возможно и обычных критикалов хватит. Вывод: экономящий на бутылочках Immortality долго не протянет.
1.1.5. Некоторых существ можно сделать имунных к критикалу (это не значит, что сами они его сотворить не могут). Например: ghostов и элементалей. Если считать, что по достижении некоего уровня (скажем, 40-го) герой становится полубогом в игре, то его так же можно сделать иммунным к критикалу. Также можно сделать некоторых существ или героев (начиная с левела N) иммуными к инсталл-киллу, но не имунных к критикалу вообще.
1.1.6. Количество убитых в случае "редкого" и "эпического" критического попадания считать исходя из "критического числа" для "монстра-счастливчика" стека.
1.2. "Критический промах" в случае физической атаки.
1.2.1. У каждого монстра стека существует вероятность (1/17) критического промаха - т.е. монстр/герой "мажет", и его атака в конечном расчете не учитывается.
1.2.2. У каждого "критический промаха" существует вероятность (1/17) превращения его в "редкий критический промах" - дамадж наносится по соседу (в стеке монстров) или себе, в случае героя.
1.2.3. У каждого "редкого критического промаха" существует вероятность (1/17) превращения его в "смертельный критический промах" - мгновенная смерть соседа (в стеке монстров) или для себя, в случае героя. Последнее невозможно для полубогов и критикал-иммуных. Но лупануть по себе - то же не очень приятно.
1.2.4. К-во убитых в случае "редкого" и "смертельного" критического промаха считать исходя из "критического числа" для "монстра-подлянщика" стека. ("Разъяренный behemoth сорвал башку трем своим собратьям").
1.3. Параметр (1/17) можно сделать зависящим от удачи/неудачи стека. Скажем, за каждые 3 пункта параметра "удача" увеличивать/уменьшать число 17 вероятности на единицу. Например, при удаче в 3 пункта вероятность для критического попадания всех видов станет (1/16) вместо (1/17) и для критического промаха всех видов (1/18 ) вместо (1/17). При неудаче наоборот - вероятность критического попадания будет уменьшаться, критического промаха - возрастать.
1.4. "Критическое попадание" и "критический промах" так же можно развить для случая кастинга спеллов, а не только для физических атак.
2. "Критическое число".
В начале темы вводилось понятие "критического числа" (кч), которое определялось как максимальное к-во существ, которое способен вынести "квантовый" стек со стека "классического", даже если стек "квантовый" потенциально несет в себе больший дамадж.
Забегая вперед, предлагаю степени свободы для нелетающих установить в 2, как двигающихся на плоскости; для летающих 3 - как двигающихся в пространстве; для телепортящихся 5 - как способных использовать четвертое измерение для перемещения/атаки и появляющихся там, где не ждут.
2.1. "Критическое число" в случае физической атаки.
2.1.1. Предлагаю расчитывать кч для героя vs монстры по формуле: (h+s)*(w/g)*(v/u)*(a/f), где h равно 1 для 1-7 уровня героя, возрастая на 1 за каждые след. 7 уровней; s - зависит от уровня мастерства учитываемого скилла (Melee, Archery, Spirituality, Wizardry, Demonology, Pyromancy, Meditation) и равен 1 для basic и advanced, 2 для expert и master, 3 для grandmaster; (w/g) - отношение показателя эффективности типа оружия атакующего к показателю эффективности защиты от данного типа оружия монстров атакуемого стека; (v/u) - отношение параметра "скорость"(speed) атакующего (v) к параметру "скорость" атакуемого (u); (a/f) - отношение к-ва степеней свободы атакующего героя (a) к к-ву степеней свободы монстров атакуемого стека (f). Размеры монстров учитывать не стал. Частично их учитывает (w/g).
2.1.1.1. Например, герой 14-го уровня с грандмастер Melee атакует стек волков Melee. Тогда его кч: (2+3)*(2/3)*(9/7)*(2/2) равен 4 целых и 2/7. Иначе сказать, его оружие за один проход может зацепить 4-х волков и 5-го - с вероятностью 2/7. Но таких прохода он сделает два за счет грандмастера Melee. Итого: за одну аттаку угрозе подвергаются 8(с вероятностью 100%)+1(с вер. 2/7)+1(с вер. 2/7) волков стека. Почему "подвергаются угрозе"? - потому что если дать волкам возможность избежать удар (или в случае "критического промаха"), то нужно будет учесть это у 8 точно попавших под удар и у каждого из двух, если они таки оказались под ударом. В случае минотавров это будет их способность к блокировке удара, каждого из атакуемых минотавров. Составляющие a и f (2/2) в этом примере учитывают возможность перемещения на плоскости. Составляющие w и g (2/3) просчитаны для длинного меча. Для рук это будет (1/3). Для молота и топора (3/5). Для двуручного меча (2/5). Для лука и арбалета - (5/3), для метательного копья - (3/2). Откуда цифры? - они просто предлагаются.
2.1.1.2. Герой 15 уровня с эксперт Archery атакует стек вампиров Ranged пращей. Тогда его кч: (3+2)*(3/2)*(9/9)*(3/3) равно 5 целых 5/8. (3/3) еще одно преимущество Ranged атаки - 3 степени свободы.
1.1.1.3. Герой 15 уровня с эксперт Archery аттакует стек нагов Ranged луком. Тогда его кч: (3+2)*(5/3)*(9/7)*(3/2) равно 16 целых 3/42. (3/2) разрешаем нагам перемещение на плоскости и учитываем возможность стрельбы "навесом" (т.к. вверх-вниз наги не летают, пока behemothа не встретят ).
2.1.2. Расчет кч для случая монсты vs монстры по формуле: m*n*(w/g)*(v/u)*(a/f), где n - к-во существ стека; m - использует таблицу: существа 1-уровня (например - пираты, импы, хафлинги): 2 2 1 1; 2-уровня (големы, эльфы, минотавры): 3 2 2 1; 3-го уровня (вампиры, монки): 3 3 2 2; 4-го уровня (фениксы, дьяволы): 5 3 3 2. Для расшифровки коэффициентов (w/g), (v/u), (a/f) - п.2.1.1.
2.1.2.1. Стек из 3-х фениксов атакует стек минотавров. Тогда кч стека фениксов 3*3*(3/1)*(12/6)*(3/2) равно 81.
2.1.2.2. Стек из 2-х behemothов атакует стек вампиров. Тогда кч стека behemothов 3*2*(2/1)*(7/9)*(2/3) равно 6 и 2/9.
2.1.3 Коэффициенты для расчета "Критического числа" можно положить равным 1.
2.1.4 Коэффициенты (w/g) - отношение показателя эффективности типа оружия атакующего к показателю эффективности защиты от данного типа оружия монстров атакуемого стека проще/гибче брать из квадратной таблицы. Это также создаст потенциальную возможность для более тонкой настройки баланса в монстрятнике Героев.
3. "Прозрачность" стека.
3.1. "Прозрачность" стека - это возможность стеку соперника игнорировать его. Т.е. вести себя так, как будто его ("прозрачного" стека) нет.
3.2. Условием, при котором стек относится к "прозрачным", предлагаю считать: если теоретически для уничтожения стека в среднем достаточно не более 15% юнитов атакующего стека.
4. Улучшенное маневрирование и параметр Movement.
4.1. Сейчас действия на поле боя выглядят так: перемещение+атака или просто атака, если стек атакуемый соприкасается с атакующим. Причем, если перемещается стек с ранджед атакой, то ранджед атаку он после перемещения производить не может. Предлагаю изменить эту схему и сделать возможным следующее: перемещение+атака+перемещение для всех возможных видов атаки, например - ранджед, мелее, кастинг.
4.2. Предлагаю параметр Movement использовать так же и атакой, т.е. атаку возможно провести только, если у стека осталось не менее (1/3)*(эффективная величина Movement) move поинтов. Если перемещаемый стек использовал большее к-во move поинтов, чем необходимо для проведения атаки, то он может провести только ответную атаку по обычной схеме и вполне может стать "пушечным мясом" для противника, стеки которого смогут его интенсивно атаковать всеми силами в течении текущего раунда.
4.3. Телепортящимся существам разрешить лишь телепорт+атака или просто телепорт (только под "атакой" здесь понимается не только атака, но и кастинг спелла).
4.4. Предлагаемый подход к параметру стека Movement так же делает возможной схему осторожного перемещения. Если передвигаемый стек не полностью израсходовал доступное количество move-поинтов, то параметр <u>Speed</u> стека на следующий комбат раунд модифицируется следующим образом: Speed = Speed*((отношение доступного количества move-поинтов)+1)/ ((количество израсходованных move-поинтов текущего комбат-раунда)+1). Т.е. он может возрасти <u>в</u> несколько раз, если игрок не перемещал стек вообще.
5. "Гидроподобность" стека.
5.1. Особенностью гидры в Героях является ее свойство атаковать все доступные атаке отряды. По аналогии/ассоциации с этим ее свойством и названо предлагаемое свойство: если для атаки стека противника задействовано не все количество юнитов атакующего стека, то атакующий стек может атаковать любой другой стек, находящийся в пределах его досягаемости. Эту атаку назовем "свободной атакой".
5.2. Пример. Стек тигров, с текущим значением Movement равном 14 (учитываем все кумулятивные бонусы от тактики, артефактов, спеллов) совершает перемещение к стеку противника (ценой 5 поинта Movement) и атакует его. На атаку тратится пять (14*1/3 = 4(2/3) = 5 округленно) move поинтов и на нее задействовано 30% юнитов "тигриного" стека. Следовательно, этому стеку тигров разрешено провести свободную атаку против любого другого стека, находящихся в радиусе не более четырех оставшихся move поинтов с силой оставшихся 70% юнитов тигриного стека для следующей цели. Либо отступить на четыре move поинта назад к более медленным стекам.
6. Броня.
6.1. Если воплощение в игре "критического числа", "критического попадания и промаха" представляются резко усиливающими юнитов 1-го левела, то этому усилению можно противопоставить броню. Броня - это способность поглощения дамаджа, наносимого юниту. Т.е. при броне, равной единице, из <u>базового текущего</u> дамаджа атакующего юнита вычитается единица. Например, юнит с базовым дамаджем 5-10 и атакой 20 атакует юнит с броней 1 и защитой 10. Тогда результирующий дамадж, получаемый атакуемым: (5-1)*20/10 = 8, (10-1)*20/10 = 18. Или 8-18 вместо 10-20, если броня отсутствует. Если тот же юнит наносит "обычный" критикал и коэффициент деления защиты выпал равным двум, а коэффициент увеличения дамаджа выпал равным трем, то: (5*3-(1-2))*(20/(10/2 < 10 => 10/2 "равно" 10)) = 32, (10*3-(1-2))*(20/(10/2 < 10 => 10/2 "равно" 10)) = 62. В последнем случае, если атака проводится юнитом 3-го уровня против юнитов 1-го уровня с 10 хит поинтами, то убить атакующий критикалом сможет не более критического числа последних. Но если атака проводится против героя, то ему достанется сполна.
6.2. Предлагаю юнитам 1-2 уровня значение брони положить равным единице; юнитам 3 уровня - двойке; юнитам 4-го уровня - тройке. Базовому и улучшенному комбату дать значение брони 1; Эксперт и Мастер - 2; Грандмастер - 3. Кожанному доспеху - 1; кольчуге обычной и эльфийской - 2; gold plate, обычным латам, dragonscale, scale of strength - 3; всем мажорным латам - 4; адамантиновым латам - 5. Всем щитам и шлемам - 1.