4 Старые наброски поединков
Ivor Barhansky edited this page 2022-02-18 13:06:57 +00:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Общий урон

Формула расчёта урона: (Base Damage)*(1+Elemental Bonus%)*(1+Attribute Bonus%+Weapon Skill Bonus%+Misc Bonuses%)

Например (всё от балды):

Урон оружия: 10-20
Берсерк: +55%
Одноручное оружие: +50%
Сила персонажа: 19
Вмажем побольнее: +40%

Base Damage = rand(10,20) = 14
Attribute Bonus: 19 сила {10 base + 9 added}, 9 added = 5% * 9 = 45%, 14+45% = 20.3
Elemental Bonus: 0
Weapon Skill Bonus: 50%, 14+50% = 21
Misc Bonuses: 55% + 40% = 95%, 14+95% = 27.3
Total Damage = 14 * (1 + 0) * (1 + 20.3 + 21 + 27.3) = 14 * 1 * 69.6 = что-то дохрена…

О поединках

# [fightroll]
if ($comb_act == "magic_attack") {
  $char_attack = round(($this->wisdom+$rollthedice)/2);
} else {
  $char_attack = round(($this->dexterity+rand(
                    (int)($this->attack_skill_min()*$fight_reduction),
                    (int)($this->attack_skill_max()*$fight_reduction)
                )
                +$rollthedice)/8); 

# [defenseroll]
if ($comb_act == "magic_attack") {
  $char_defence= (int)(($this->wisdom+$rollthedice)/2+rand(0,99)*0.01);
  } else {
  $char_def = rand($this->defense_skill_min(),$this->defense_skill_max());
  $char_defence = (int)(($this->dexterity+$char_def+$rollthedice)/10 +rand(0,99)*0.01);
} 

Немного про интуицию

Everyone takes turn to attack, following a priority queue system. Each unit has a ''priority'' number and a ''speed'' factor that decides when their next turn will be. The idea is each one will have a priority number. Each attack bumps up the attackers priority number to the max and every cycle(meaning every attack scene we perform) we decrease each units priority number with their speed. The unit with the lowest number attacks next. We will use a priority queue to store these information.

Steps are as follows:

  1. create() - Create the queue and put everyone in, with all but one heros priority number randomly set to simulate combat initiative.
  2. create() - One hero will have his priority number initially set to 1 so our player goes to attack first.
  3. updateQueue() or in onInputDown() - When an attack plays out, we take out the first one in the queue.
  4. attack() - Perform the attack scene and increase the priority of the attacker.
  5. updateQueue() - When we update the queue, we decrease each units priority.
  6. updateQueue() - Add the one we took out earlier back into the queue.

Подробно с примерами: https://www.programmingmind.com/phaser/turn-based-battle

pg

'udar' => rand(floor($this->user['sila'] / 3) + 1 + $this->user_dress[0], floor($this->user['sila'] / 3) + 5 + $this->user_dress[1]) - mt_rand(0, $this->enemy_dress[5 + $myattack] / 1.25)

min = floor($this->user['sila'] / 3) + 1 + $this->user_dress[0]
max = floor($this->user['sila'] / 3) + 5 + $this->user_dress[1]) - mt_rand(0, $this->enemy_dress[5 + $myattack] / 1.25)

min = 1 + Мин Урон Оружия + Сила / 3
max = 5 + Макс Урон Оружичя + Сила / 3 - рандом (0, Броня в которую я бью / 1.25)

Свежие мысли

Подробно описано в таске №2.

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

Когда боец наносит удар часть урона поглощает броня. Если брони много она может поглотить весь урон. При этом каждый удар по противнику и его броне понижает долговечность этой брони. То есть можно потерять броню прямо посреди поединка.

Каждый удар снимает единицу долговечности из предмета у которого есть параметр броня. Если на персонаже не осталось предметов с броней удары начинают ломать предметы остальные. Смерть в поединке дополнительно понижает долговечность каждого предмета одетого на персонаже.

Совсем старые идеи

Удар [ToHIT] Процентник от числа. [Если ToHIT > 1d100 : удар прошел]. min5 - max95
Урон Зависит от дайса. Бонусы суммируются к броску. Потом отнимаются штрафы. И только потом идут расчёты с защитой.
Физ. Защита [ число50 = 50% уменьшение урона] но минимум 1 урон. Только вещи + Баффы.
Маг. Защита [ число50 = -1% к броску дайса 1d100]

Баффы

11 / 9 Не прокачиваются вообще. Применяются только в бросках поединка. Повышаются только лутом.

Название Описание
Крит: Процентник от числа. Дублирует урон. max100
Слабость: Процентник от числа. Модификатор урона -1. (накапливается) max100
Воровство маны: Процентник от числа. Своровать 20% текущей маны противника. max100
Бонус урона: + Процент к урону после всех рассчётов. unlimited
Бонус магии: + Процент к урону после всех рассчётов. unlimited
Воровство жизни: Процентник от числа. Вылечиться на 20% от текущего урона. max100
Пробив брони: - Число к ФЗ. unlimited
Воровство: Мифический шанс спиздить деньги у противника при ударе. (Процентник от числа. Если успех, то украсть [процент от финального урона]). max100
Бонус ФЗ: + Число к ФЗ. unlimited
Бонус маны: + Число к максимальной мане. unlimited
Бонус здоровья: + Число к максимальному здоровью. unlimited
Бонус МЗ: + Число к МЗ. [То есть: Если МЗ=10%, а Бонус МЗ=5%, то на финише МЗ=15%] unlimited
Усвоение зелья: + Процент к броску зелья. (Например с УЗ-5 бросок зелья: 1d2+5) unlimited
Свитко-мастер: + Процент к броску свитка. unlimited
Оглушить: Процентник от числа. Противник пропускает ход. (несколько?) max100
Ранение: Процентник от числа. Противник теряет 5% от текущего здоровья 3 хода. (больше?) max100
Яд: Процентник от числа. Противник теряет 5% от текущей маны 3 хода. (больше?) max100
Чума: Процентник от числа. Противник теряет 5% от текущего максимального здоровья 3 хода. (больше?) max100
Выжигание: Процентник от числа. Противник теряет 5% от текущей максимальной маны 3 хода. (больше?) max100
Пробив брони: Процентник от числа. Понищает ФЗ противника на 20% в следующий ход. max100
Бонус попадания. + Процент к ToHIT. (50%ToHIT + 10%Bonus = 55%ToHIT !!!!!!)
Бонус уворота - Процент к ToHIT противника.
Бонус блока щитом + Процент к блоку щитом.

Статы

Здоровье, Мана. Прокачиваются только зельями\свитками +MaxXP +MaxMP. Понижаются чумой и выжиганием. unlimited

Скиллы

А вот их нужно как-то прокачивать (в процессе применения?).

Название Описание
Атака оружием: + ToHIT оружием. (auvorot)
Защита от оружия: -ToHIT противника. На магию не влияет. Снижает шанс попадания, в отличие от верхнего, который снижает полученный урон. (uvorot)
Атака магией: + ToHIT магией. Не влияет на свитки и зелья!! (mag_auvorot)
Защита от магии: -ToHIT противника. Не влияет на оружие. (mag-uvorot)
Знание магии: + Модификатор к Маг. Урону от Маг. оружия и Заклинаний. Не влияет на свитки и зелья! (mag-uron)
Знание анатомии: + Модификатор к Физ. Урону. (fiz-uron)
Тактика: + абсолютный ToHIT. (absolute-auvorot)
Блок щитом: Процентник от числа. Бросается после успешного ToHIT противника. Отменяет Физ. Урон. Только при наличии щита.
Уворот: - абсолютный ToHIT. (absolute-uvorot)
Астральный блок: Процентник от числа. Бросается после атаки Заклинанием. Отменяет его.
Бартер: Снижает цену покупки, повышает цену продажи. И до номинала. (Продумать торговлю, чтобы замаксить скилл было сложно.)

Теория поединка

Бой пошаговый. За ход игрок может выполнить одно действие:

  1. Ударить (возможны вариации ударов) (тип удара зависит от типа оружия в руках - физическое или магическое).
  2. Использовать заклинание из списка.
  3. Прочесть свиток.
  4. Выпить зелье.
  5. Уйти в защиту (де факто - пропуск хода) (актуально для PvP таймаута).