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,20)

        if atak < ((20 / 5) + 1):
            print(f"{przeciwnik.nazwa} uniknak atak {self.nazwa}'a")
        else:
            print(f"{self.nazwa} atakuje {przeciwnik.nazwa}, zadajac {atak} obrazen")
            przeciwnik.zycie -= atak

zycia_potworow = {"pajak" : 30, "wampir" : 50, "goblin" : 15, "kobalt": 40, "golem": 100, "bruda skarpeta twojego starego": 1}

class Przeciwnik(postac):
    def __init__(self, gracz):
        super().__init__()
        self.nazwa = choice(("pajak", "wampir", "golbin", "kobalt", "golem", "brudna skarpeta twojego starego"))
        self.zycie = zycia_potworow[self.nazwa] * ((randint(1,100) / 100)+1)

class Gracz(postac):
    def __init__(self):
        super().__init__()
        self.zycie = 50
        self.max_zycie = 75
        self.nazwa = input("jak cie nazwac kasti?: ") 

    def odpoczynek(self):
        wartosc = randint(5,10)
        self.zycie += wartosc
        if self.zycie > self.max_zycie:
            self.zycie = self.max_zycie
        print(f"{self.nazwa} odpoczal ma teraz {self.zycie}/{self.max_zycie}hp")
    
    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} pokonal {przeciwnik.nazwa}")
                    return True
                przeciwnik.atakuj(self)
            elif akcja_walki == "uciekaj":
                print(f"{self.nazwa} ucieka")
                przeciwnik.atakuj(self)
                walka = False
            else:
                print("nie prawidowy ruch; nagle przychodzi twoj stary i mowi 'jestem toba zawiedziony synu' i wyszedl z terminalu")
            if self.zycie <- 0:
                print(f"{self.nazwa} is busted")
                return False
            return True

gracz = Gracz()
gra = True
while gra:
    akcja = input("akcja (zwiedzaj, odpocznij)")
    if akcja == "zwiedzaj":
        if randint(0,2) == 0:
            print(F'{gracz.nazwa} znalazl jaksinke')
        else:
            przeciwnik = Przeciwnik(gracz)
            print(f"{gracz.nazwa} natrafil a {przeciwnik.nazwa}")
            gra = gracz.walka(przeciwnik)
    elif akcja == "odpocznij":
        gracz.odpoczynek()
    else:
        print("nieznana akcja")