На вас жестоко напали , передавая по ссылке .
В вашем коде у вас есть self.stats = self.base.stats
.Это не делает копию.Следовательно, self.stats
для brs1
и brs2
относятся к одинаковым dict
.Когда вы создаете экземпляр brs2
, вы изменяете его, и это изменение отражается в brs1
.
self.stats = self.base.stats.copy()
будет хорошим началом, , если вы не хотите, чтобы этослучиться.
Тем не менее, я нахожу довольно странным, что вы хотите закодировать эффекты состояния таким образом ... если бы это был я, я бы имел каждый эффект состояния, содержащий только модификатор, и это было бык классу символов для обработки разрешения этих модификаторов по очереди.