немного не то, но тоже изучу, мало чего то игрового на руби, игры развивают хорошо
У тебя есть класс Abilities и он знает про custer и opponent, что довольно странно. Почему не сделать у Player поле abilities, в котором будут хранится его способности ?
у каждого ребенка класса хиро есть такая константа) просто класс абилитис сделан так потому что у каждого заклинания есть кастер и оппонент, а когда идет следующий ход, они меняются местами, оппонент кастером, кастер оппонентом
это что касается баффов, которые применяются к статам, а заклинания боевые они просто делают урон, и есть в классе хирос метод получение магического урона