Арена

Начал делать реализацию боев на арене с противником человеком.
Алгоритм делаю следующим:

  • Игрок заходит на арену, и если стэк заявок пуст, то регистрируется новая заявка
  • Если стэк заполнен - то двое переносятся в лабиринт
  • Далее думаю сделать следующую проверку - победителем будет тот, кто останется в лабиринте один, т.е. второй игрок (а может еще и третий с четвертым и пятым) может попросту выйти из лабиринта - и того победа засчитывается последнему.
    Ну и противника можно вывести из лабиринта против его воли :)

    Изменения в игровой механике - минимальные:
    В структуру TMazeMap добавил переменную tp, определяющую тип лабиринта:
    #define TP_MAZE_NONE 0x01
    #define TP_MAZE_LAST_ONE 0x02

    Ну и само-собой в функцию makeMaze добавил параметр tp - типа лабиринта.
    А в функцию makeAction в самый конец добавил вызов функции checkMaze, как раз функцию которая будет определять условия победы.

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