from random import randint, choice 

class Postac():
    def __init__(self):
        self.nazwa = ""
        self.zycie = 1
        self.max_zycie = 1
        pass

    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} obrazen")
          przeciwnik.zycie -= atak
          


class Przeciwnik(Postac):
    def __init__(self, gracz):
       super().__init__()   
       self.nazwa, self.moc = choice([("jasper", "uniki"), ("azot", "wskrzeszenie"), ("abracham", "silny atak")])
       self.zycie = randint(1, gracz.zycie)
    
    def moc_specjalna(self):
       if self.moc == "uniki" and randint(0,3) == 0:
          print(f"{self.nazwa} unika ataku")
          self.zycie += 1
       elif self.moc == "wskrzeszenie" and self.zycie <= 0 and randint(0,2) == 0:
        self.zycie = 1
        print(f"{self.nazwa} wstaje z martwych! ")



class Gracz(Postac):
    def __init__(self):
        super().__init__()
        self.zycie = 10
        self.max_zycie = 10
        self.nazwa = input("podaj imię gracza: ")

    def odpoczynek(self): 
        self.zycie += 1
        if self.zycie > self.max_zycie:
            self.zycie = self.max_zycie
        print(f"{self.nazwa} odpoczywa, życie: {self.zycie}/{self.max_zycie} ")

    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":
                szansa = randint(0, 1)
                if szansa == 0:
                    print(f"{self.nazwa} ucieka, ale dostaje od boku")
                    przeciwnik.atakuj(self)
                    walka == False
                else:
                    print(f"{self.nazwa} bezpiecznie ucieka")
                    walka = False 
            else:
                print("Nieznana akcja")
        if self.zycie <= 0:
            print(f"{self.nazwa} ginie")
            return False
        return True
gracz = Gracz()
gra = True
while gra:
    akcja = input("akcja (zwiedzaj, odpocznij): ")
    if akcja == "zwiedzaj":
        if randint(0, 1) == 0:
            print(f"{gracz.nazwa} znalazl jaskinie")
        else:
            przeciwnik = Przeciwnik(gracz)
            print(f" {gracz.nazwa} natrafił na {przeciwnik.nazwa}")
            gra = gracz.walka(przeciwnik)
    elif akcja == "odpocznij":
        gracz.odpoczynek()
    else:
        print("nieznana akcja")       










