WarriorJS Docs
  • Игрок
  • Разработчик
  • Сообщество
  • Русский
    • English
    • العربية
    • Català
    • Čeština
    • Deutsch
    • Ελληνικά
    • Español
    • Français
    • Italiano
    • Polskie
    • Српски језик (Ћирилица)
    • Svenska
    • Türkçe
    • 中文
    • 繁體中文
    • Помочь с переводом
  • GitHub

›Руководство

Руководство

  • Введение
  • Создание Своей Башни
  • Добавление Уровней
  • Добавление Способностей
  • Добавление Существ
  • Рефакторинг
  • Testing
  • Публикация Башни

API разработчика

  • API Областей
  • Unit API
Translate

Добавление Уровней

Уровень это ещё один JavaScript объект:

const Level1 = {
  // Level definition.
};

Начнём с того, что придумаем описание и подсказки для нашего уровня:

const Level1 = {
  description:
    "You've entered the ancient castle of Eastwatch to escape from a blizzard. But it's deadly cold inside too.",
  tip:
    "Call `warrior.walk()` to walk forward in the Player's `playTurn` method.",
};

Также, нам необходимо определить два числовых параметра для очков бонуса времени и "очков высшего балла". Очки бонуса за время, начисляются игроку в зависимости от того, на сколько быстро он справился с уровнем (бонус уменьшается с каждым ходом, пока не достигнет нуля). "Очки высшего балла", напротив, вычисляются в зависимости от сложности уровня (только в "epic mode"). Набранные очки большие или равные "очкам высшего балла", получают категорию "S". Давайте присвоим эти значения:

const Level1 = {
  description:
    "You've entered the ancient castle of Eastwatch to escape from a blizzard. But it's deadly cold inside too.",
  tip:
    "Call `warrior.walk()` to walk forward in the Player's `playTurn` method.",
  timeBonus: 15,
  aceScore: 10,
};

Эти два числовых параметра должны быть хорошо отлажены при тестировании "tower". Но для этого руководства мы удовлетворимся этими значениями.

Следующее, что необходимо сделать, это разметить уровень, начиная с его размера:

const Level1 = {
  description:
    "You've entered the ancient castle of Eastwatch to escape from a blizzard. But it's deadly cold inside too.",
  tip:
    "Call `warrior.walk()` to walk forward in the Player's `playTurn` method.",
  timeBonus: 15,
  aceScore: 10,
  floor: {
    size: {
      width: 8,
      height: 1,
    },
  },
};

Затем, мы должны определить место для лестницы, чтобы наш Воин смог перейти на следующий уровень:

const Level1 = {
  description:
    "You've entered the ancient castle of Eastwatch to escape from a blizzard. But it's deadly cold inside too.",
  tip:
    "Call `warrior.walk()` to walk forward in the Player's `playTurn` method.",
  timeBonus: 15,
  aceScore: 10,
  floor: {
    size: {
      width: 8,
      height: 1,
    },
    stairs: {
      x: 7,
      y: 0,
    },
  },
};

Кстати о Воине... Давайте разместим его на этом уровне:

const Level1 = {
  description:
    "You've entered the ancient castle of Eastwatch to escape from a blizzard. But it's deadly cold inside too.",
  tip:
    "Call `warrior.walk()` to walk forward in the Player's `playTurn` method.",
  timeBonus: 15,
  aceScore: 10,
  floor: {
    size: {
      width: 8,
      height: 1,
    },
    stairs: {
      x: 7,
      y: 0,
    },
    warrior: {
      character: '@',
      maxHealth: 20,
      position: {
        x: 0,
        y: 0,
        facing: 'east',
      },
    },
  },
};

Со всем этим, можно считать что проектирование уровня завершено. Но перед тем, как продолжить, как на счёт того, чтобы сделать ещё один:

const Level2 = {
  description:
    'The cold became more intense. In the distance, you see a pair of deep and blue eyes, a blue that burns like ice.',
  tip:
    "Use `warrior.feel().isEmpty()` to see if there's anything in front of you, and `warrior.attack()` to fight it. Remember, you can only do one action per turn.",
  clue:
    'Add an if/else condition using `warrior.feel().isEmpty()` to decide whether to attack or walk.',
  timeBonus: 20,
  aceScore: 26,
  floor: {
    size: {
      width: 8,
      height: 1,
    },
    stairs: {
      x: 7,
      y: 0,
    },
    warrior: {
      character: '@',
      maxHealth: 20,
      position: {
        x: 0,
        y: 0,
        facing: 'east',
      },
    },
  },
};

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

Теперь нам нужно добавить наши два уровня в Башню. Уровни добавлятся в массив Башни levels:

module.exports = {
  name: 'Game of Thrones',
  description:
    'There is only one war that matters: the Great War. And it is here.',
  levels: [Level1, Level2],
};

Превосходно! Но, как вы могли заметить, мы предлагаем игроку вызывать способности warrior.attack(), warrior.feel(), и warrior.walk(), но мы ещё не объяснили нашему Воину, как их использовать. Давайте сделаем это нашим следующим шагом!

← Создание Своей БашниДобавление Способностей →
WarriorJS Docs
Docs
PlayerMaker
Community
SpectrumTwitterFollow WarriorJS on Twitter
More
DonateGitHubStar