Git Product home page Git Product logo

game's Introduction

Retro Game

demo: [Github Pages]

Концепция игры

Двухмерная игра в стиле фэнтези, где игроку предстоит выставлять своих персонажей против персонажей нечисти. После каждого раунда, восстанавливается жизнь уцелевших персонажей игрока и повышается их уровень. Максимальный уровень - 4.

Механика

Размер поля фиксирован (8x8). Персонажи разного типа могут ходить на разное расстояние (в базовом варианте можно перескакивать через других персонажей - т.е. как конь в шахматах):

  • Мечники/Скелеты - 4 клетки в любом направлении
  • Лучники/Вампиры - 2 клетки в любом направлении
  • Маги/Демоны - 1 клетка в любом направлении

Дальность атаки также ограничена:

  • Мечники/Скелеты - могут атаковать только соседнюю клетку
  • Лучники/Вампиры - на ближайшие 2 клетки
  • Маги/Демоны - на ближайшие 4 клетки

Клетки считаются "по радиусу", допустим для мечника зона поражения будет выглядеть вот так:

Для лучника(отмечено красным):

Игрок и компьютер последовательно выполняют по одному игровому действию, после чего управление передаётся противостоящей стороне. Как это выглядит:

  1. Выбирается собственный персонаж (для этого на него необходимо кликнуть левой кнопкой мыши)
  2. Далее возможен один из трёх вариантов:
    1. Перемещение: выбирается свободное поле, на которое можно передвинуть персонажа (для этого на поле необходимо кликнуть левой кнопкой мыши)
    2. Атака: выбирается поле с противником, которое можно атаковать с учётом ограничений по дальности атаки (для этого на персонаже противника необходимо кликнуть левой кнопкой мыши)
    3. Отмена: отмена выделения по нажатию клавиши Esc

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

Уровень завершается выигрышем игрока тогда, когда все персонажи компьютера погибли.

Баллы, которые набирает игрок за уровень, равны сумме жизней оставшихся в живых персонажей.

Генерация персонажей

Персонажи генерируются рандомно в столбцах 1 и 2 для игрока и в столбцах 7 и 8 для компьютера:

Уровни

Level 1: prairie

У игрока генерируются два персонажа: (случайным образом - типов Bowman и Swordsman) с уровнем 1, характеристики соответствуют таблице характеристик (см. раздел ниже).

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

Level 2: desert

У игрока повышается level игроков на 1 + восстанавливается здоровье выживших. Дополнительно случайным образом добавляется новый персонаж уровня 1.

У компьютера случайным образом генерируются персонажи в количестве, в 2 раза большем, чем изначально с уровнем от 1 до 2. Показатели атаки и защиты увеличиваются пропорционально уровню персонажа.

Level 3: arctic

У игрока повышается level игроков на 1 + восстанавливается здоровье выживших. Дополнительно случайным образом добавляется два новых персонаж уровня 1 или 2.

У компьютера случайным образом генерируются персонажи в количестве, в 3 раза большем, чем изначально с уровнем от 1 до 3. Показатели атаки и защиты увеличиваются пропорционально уровню персонажа.

Level 4: mountain

У игрока повышается level игроков на 1 + восстанавливается здоровье выживших. Дополнительно случайным образом добавляется два новых персонаж уровня от 1 до 3.

У компьютера случайным образом генерируются персонажи в количестве, в 2 раза большем, чем изначально с уровнем от 1 до 4. Показатели атаки и защиты увеличиваются пропорционально уровню персонажа.

Персонажи

Валидные строковые идентификаторы (к которым привязаны изображения):

  • swordsman
  • bowman
  • magician
  • daemon
  • undead
  • vampire

Стартовые характеристики (атака/защита)

  • Bowman - 25/25
  • Swordsman - 40/10
  • Magician - 10/40
  • Undead - 25/25
  • Vampire - 40/10
  • Daemon - 10/40

Level Up

  • На 1 повышает поле level автоматически после каждого раунда
  • Показатель health приводится к значению: текущий уровень + 80 (но не более 100). Т.е. если у персонажа 1 после окончания раунда уровень жизни был 10, а персонажа 2 - 80, то после levelup:
    • персонаж 1 - жизнь станет 90
    • персонаж 2 - жизнь станет 100
  • Повышение показателей атаки/защиты также привязаны к оставшейся жизни по формуле: attackAfter = Math.max(attackBefore, attackBefore * (1.8 - life / 100), т.е. если у персонажа после окончания раунда жизни осталось 50%, то его показатели улучшатся на 30%. Если же здоровье осталось на уровне 1%, то показатели никак не увеличатся.

game's People

Contributors

meldoniy13 avatar

Watchers

Сергей  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.