добавил интерфейс IDamagable для Player
добавил конструктор каждому классу
добавил exeption
исправил стилистические ошибки
https://gist.github.com/NoNameDeleted/e5d55a42c1e45c0800e9bf083ef71553
Самый главный вывод из этого задания:
Нельзя передавать объекту другой объект целиком, особенно если он не использует все его методы, а нужно передавать только интерфейс в котором определены только те методы которые получатель будет использовать. Ну и в этом модуле теперь требуют создавать проверки для каждого получаемого значения и выкидывать ошибки. В модуле по С# этого вообще не требовали и я не написал там ни одного эксепшена, а теперь эти эксепшены занимают в коде больше места чем сама логика. Буквально методы принимают условно два значения для каждого значения нужно создать свой эксепшен каждый из которых занимает 4 строки итого 8 строк для обработки ошибок и всего одна строка для логики. Это сильно понижает читаемость кода, так что мне это вообще не нравится...