AL
На основе оной иерархии (отнюдь не случайной) строится большая часть игровой логики и описательного движка
Меч, зачарованный на огонь, яд или и то и другое — инстанс какого-нибудь из классов мечей с со списком зачарований в соответствующем поле
Пламенный меч — класс, описывающий вундервафлю, представляющую из себя меч, клинок которого является пламенем и который, кстати, запрещает себя зачаровывать.
Когда я пытаюсь сделать подобное компонентами — выходит несколько трешовенько.
Вот что с точки зрения компонент должен из себя представлять короткий меч?
— (Wearon(), Sword(type='short'))?
— (ShortSword)?
— (Wearon(), ShortSword())?

