Боты ходят по карте и когда видят игрока стреляют в него.
Систему обнаружения игрока оставим за кадром и ограничимся публичным методом OnSeePlayer который условно кто-то будет вызывать.
Разберитесь с инкапсуляцией в этом коде - https://gist.github.com/HolyMonkey/9290ed63c38fc732ed8f58693077095d
Моё первое решение:
Сделал поля приватными
Добавил проверки и условия для здоровья и пуль чтобы они не оказались меньше нуля
Оружие не должно получать игрока целиком это не его ответственность
https://gist.github.com/NoNameDeleted/e5d55a42c1e45c0800e9bf083ef71553
Ответ ментора на это решение:
Оружие может получать IDamageable
В кодстайле не принято писать if в одну строку if (damage <= 0) return;
А фигурные скобки пишутся на отдельных строках if (_health < 0) {
У классов должны быть конструкторы.
Нужно валидировать все параметры публичным методов и конструкторов. Если значения некорректны, бросай исключение, а не делай return