from random import randint, choice

class Postac:
    def __init__(self):
        self.nazwa = ""
        self.zycie = 1
        self.max_zycie = 1
    
    def atakuj(self, przeciwnik):

        atak = randint(0,3)

        if atak == 0:
            print(f"{przeciwnik.nazwa} unika ataku {self.nazwa}")
        else:
            print(f"{self.nazwa} atakuje {przeciwnik.nazwa}, zadając {atak}"+
                  " obrażeń")
        przeciwnik.zycie -= atak      

class Przeciwnik(Postac):
    def __init__(self, gracz):
        super().__init__()
        self.nazwa = choice(['goblin', 'szkielet', 'zombie'])
        self.zycie = randint(1, gracz.zycie)
    
class Gracz(Postac):
    def __init__(self):
        super().__init__()
        self.zycie = 10
        self.max_zycie = 10
        self.mikstury = 1
        self.nazwa = input('Podaj imie gracza: ')

    def odpoczynek(self):
        if self.zycie < self.max_zycie:
            self.zycie += 1
        print(f"{self.nazwa} odpoczywa, zycie: {self.zycie}/{self.max_zycie}")
    
    def wypij_miksture(self):
        if self.mikstury > 0:
            self.zycie = min(self.zycie + 5, self.max_zycie)
            self.mikstury -= 1
            print(f'{self.nazwa} wypija miksturę! Życie: {self.zycie}/{self.max_zycie}')
        else:
            print(f'{self.nazwa} nie ma mikstur!')

    def walka(self, przeciwnik):
        walka = True

        while walka:
            print(f"zycie gracza: {self.zycie}")
            print(f'zycie {przeciwnik.nazwa}: {przeciwnik.zycie}')
            akcja_walki = input('Akcja (atak, uciekaj):')
            if akcja_walki == 'atak':
                self.atakuj(przeciwnik)
                if przeciwnik.zycie <= 0:
                    print(f'{self.nazwa} zabija {przeciwnik.nazwa}')
                    return True
                przeciwnik.atakuj(self)
            elif akcja_walki == 'uciekaj':
                print(f'{self.nazwa} ucieka')
                przeciwnik.atakuj(self)
                walka = False
            else:
                print('Nieznana akcja')

            if self.zycie <= 0:
                print(f'{self.nazwa} ginie')
                return False
        return True
        
