i have class hero
class Hero:
def __init__(self):
self.positive_effects = []
self.negative_effects = []
self.stats = {
"HP": 128,
"MP": 42,
"SP": 100,
"Strength": 15,
"Perception": 4,
"Endurance": 8,
"Charisma": 2,
"Intelligence": 3,
"Agility": 8,
"Luck": 1
}
def get_positive_effects(self):
return self.positive_effects.copy()
def get_negative_effects(self):
return self.negative_effects
def get_stats(self):
return self.stats.copy()
i need to create decorator spell, for example:
class AbstractEffect(Hero):
def __init__(self, base):
self.base = base
def get_stats(self):
self.base.get_stats()
def get_positive_effects(self):
self.base.get_positive_effects()
def get_negative_effects(self):
self.base.get_negative_effects()
class Berserk(AbstractEffect):
def __init__(self):
self.positive_effects.append('Berserk')
self.stats.HP += 50
self.stats.Strength += 7
self.stats.Endurance += 7
self.stats.Agility += 7
self.stats.Luck += 7
self.stats.Intelligence -= 3
self.stats.Perception -= 3
self.stats.Charisma -= 3
but when i use it, i recive error
man = Hero()
man = Berserk(man)
TypeError Traceback (most recent call last) in () ----> 1 man = Berserk(man)
TypeError: __init__() takes exactly 1 argument (2 given)
What is wrong?