вражеский класс в RPG-игре - PullRequest
0 голосов
/ 04 февраля 2020

Я нахожусь в процессе создания RPG-игры в Python. Я делал разные уроки, но у меня проблемы с одним из типов врагов. Это паук, и, чтобы оживить ситуацию, я попытался заставить паука делать точки (урон со временем). Урон от яда не гарантирован, но когда он отравляет вас, он складывается. Это мой родительский класс (враг):

class Enemy():
    def __init__(self, number_of, name):
        self.number_of = int(number_of)
        self.name = name
        self.hp = 20 * self.number_of
        self.dmg = 2 * self.number_of
    def attack(self):
        print(f"you now have {round(class1.hp)} health" + "\n")
    def appearing(self):
        if self.number_of > 1:
            print (f"{self.number_of} {self.name}s have appeared")
        else:
            print(f"A {self.name} has appeared")
        print (f"They have {self.hp} health")

Примечание: class1 - это игрок

Это мой класс пауков:

class Spider(Enemy):
    posion_dmg = 0
    def __init__(self, number_of, name):
        Enemy.__init__(self, number_of, name)
        self.posion_dmg = 0
    def attack(self,player):
        if self.posion_dmg > 0:
            dot = 2 ** (self.poison_dmg + 1)
            player.hp -= dot
            print ("you are posioned" + "\n")
            print (f"it deals {round(dot)} damage")
        dmg = random.uniform(1.2 * self.dmg, 1.8* self.dmg)
        player.hp -= dmg
        print ("The spider(s) bite(s) you. ")
        print(f"It deals {round(dmg)} damage")
        if randint(1,4) == 1:
            self.poison_dmg += 1
            if self.number_of == 1:
                print ("The spider poisons you")
            else:
                print ("The spiders poison you")
        return Enemy.attack(self)
    def appearing(self):
        print ("*Spiders have a chance to hit you with poison that deals damage over time - this stack exponentially*")
        return Enemy.appearing(self)

Когда я go в бою со пауком, а randint равен 1, он говорит, что у «Паука» нет атрибута «toxic_dmg», но я сделал его атрибутом, верно?

...