добавил интерфейс IDamagable для Player
добавил конструктор каждому классу
добавил exeption
исправил стилистические ошибки
https://gist.github.com/NoNameDeleted/e5d55a42c1e45c0800e9bf083ef71553
Ответ ментора:
1) Fire, конструктор Bot, OnSeePlayer - для всех публичных методов и конструкторов, которые принимают данные нужно делать проверку на их корректность и сразу выкидывать исключение, ArgumentNullException если прилетел null и ArgumentOutOfRangeException если отрицательное количество или условный урон
2) private Weapon _weapon; зависимости должны быть readonly, так как они необходимы объекту все время его жизни
3) HasBullets - нарушен порядок класса, должно быть 1. поля 2. конструкторы 3. события 4. свойства 5. Методы https://stackoverflow.com/questions/150479/order-of-items-in-classes-fields-properties-constructors-methods
4) в методе Fire должен произойти выстрел, если достаточного количества пуль нет, то мы стрелять не можем, но если метод вызван значит нужно, из-за невозможности выполнения с точки зрения логики, нужно кидать исключение InvalidOperationException
5) во всех местах где вы бросаете ArgumentOutOfRangeException, у вас ошибки которые не позволяют скомпилировать этот код, пожалуйста