Важно: каждая задача выполняется в виде отдельного проекта с собственным GitHub репозиторием.
Важно: код должен проходить ESLint без ошибок.
Важно: тесты должны обеспечивать 100% покрытие тестируемых функций по строкам.
Важно: решения должны быть построены на базе шаблона Webpack.
В личном кабинете на сайте netology.ru в поле комментария к домашней работе вставьте ссылки на ваш GitHub-проекты.
Поскольку вы создавали классы для того, чтобы хранить в одном месте свойства объекта и его поведение, то пришла пора реализовать соответствующие методы.
Реализуйте в классе Character
метод levelUp
, который работает следующим образом:
- На 1 повышает поле
level
; - На 20% повышает показатели
attack
иdefence
; - Приводит показатель
health
к значению 100.
Метод должен работать только если показатель жизни не равен 0. В противном случае генерируется ошибка (нельзя повысить левел умершего).
Реализуйте в класса Character
метод damage(points)
, который меняет внутреннее состояние объекта (points
- это урон, наносимый персонажу). Метод damage(points)
ничего не возвращает и рассчитывает итоговое изменение жизни персонажа (health
) по формуле: health -= points * (1 - defence / 100)
, учитывая, что значение health >= 0
.