Skip to content

Latest commit

 

History

History
 
 

classes-inheritance

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Домашнее задание к лекции «Классы, наследование»

Важно: каждая задача выполняется в виде отдельного проекта с собственным GitHub репозиторием.

Важно: код должен проходить ESLint без ошибок.

Важно: тесты должны обеспечивать 100% покрытие тестируемых функций по строкам.

Важно: решения должны быть построены на базе шаблона Webpack.

В личном кабинете на сайте netology.ru в поле комментария к домашней работе вставьте ссылки на ваш GitHub-проекты.


Классы, наследование

Легенда

Вы решили перейти на классы и реализовать нормальную иерархию, выделив в качестве базового класса класс Character, а для остальных персонажей создать классы, наследующиеся от него.

Описание

Реализуйте описанную иерархию классов: класс Character является родительским для всех остальных, 6 дочерних классов Bowerman, Swordsman, Magician, Daemon, Undead, Zombie от него наследуются, сами задавая свои характеристики.

Атака/защита:

  1. Bowman - 25/25
  2. Swordsman - 40/10
  3. Magician - 10/40
  4. Undead - 25/25
  5. Zombie - 40/10
  6. Daemon - 10/40

Методы

Легенда

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

Описание

Реализуйте в классе Character метод levelUp, который работает следующим образом:

  1. На 1 повышает поле level;
  2. На 20% повышает показатели attack и defence;
  3. Приводит показатель health к значению 100.

Метод должен работать только если показатель жизни не равен 0. В противном случае генерируется ошибка (нельзя повысить левел умершего).

Не забудьте написать unit-тесты, которые обеспечивают 100% покрытие функций и классов, которые вы тестируете.


get/set (задача со звёздочкой)

Важно: данная задача не является обязательной

Легенда

Ваша команда решила внедрить в игру новую функцию - конкретному персонажу можно единожды включить режим powerMode. Что это значит? Показатели attack/defence/health персонажа увеличиваются вдвое, но ровно на три атаки.

Описание

Реализуйте получение показателей attack/defence/health через get так, чтобы они учитывали включен ли режим powerMode. При этом powerMode тоже нужно реализовать через get/set так, чтобы включить его можно было только один раз.

Не забудьте написать unit-тесты, которые обеспечивают 100% покрытие функций и классов, которые вы тестируете.