Есть такой анекдот что на 100 строк разработки Java приходится 10 строк Clojure с точно таким-же
алгоримическим смыслом. Так вот мне кажется что в данном исходнике этот коэффицент еще худе.
Код - по большей части ничего не делает. Он настолько формален и общ, что мне кажется что 50% callbacks можно заинлайнить и кода станет меньше а читаемость пострадает не сильно. Вобщем - редкий случай когда SOLID вместо помощи разработчику - создаёт ненужные абстракции.
У кода - очень неравномерная плотность информации. Например в Weapons/Bow.cs есть метод BallisticVel который резко контрастирует с другим кодом. Тут - как будто клавиатуру взял другой человек и написал в Haskell-style формулу. У меня возникает вопрос. Почему автор так старался декомпозировать всякий формализм а сложную функцию не декомпозировал? Вобщем такая резкая смена плотности информации на квадратный метр исходников - очень настораживает.
В качестве метрики "полезности" - я-бы спросил автора
- Ты бы сам себе заплатил-бы за такой код?