Напишу, чем по итогу сердце успокоилось в моём вопросе по поводу создания наследников Action-ов. Я использовал главный цимус паттерна "Фабрика", что создание новых экземпляров фактически оторвано от класса-клиента, использующего их. Собственно, так и сделал, но пока без лишних прибамбасов - создал новый класс ActionFactory, который на входе получает все те же вводные: одного из наследников ActionData и экземпляры Character, и возвращает новый экземпляр нужного наследника Action. А внутри тупо перебирает ActionDat-ы через "if is". Грубо, но работает. А сам факт того, что процесс вынесен в отдельный класс, во-первых, нормально воспринимается визуально, и во-вторых, позволит мне позднее вернуться к этому вопросу и сделать лучше. Наверное, большего пока и не требуется. Можно двигаться дальше.
[offtopic] Я от всей души поздравляю с наступающим новым годом всех форумчан и особенно дорогих и уважаемых экспертов. Удачи вам, ребята, успехов и хорошей имплементации всех ваших идей и жизнь. Чтобы наследовалось всё самое лучшее, проблемы делегировались кому-то на сторону, а исключения возникали только приятные, и не в коде, а в жизни
Я искренне рад, что в уходящем году познакомился с вами. [/offtopic]