Rozwinięcie gry

Rozwinięcie gry
Photo by Kasun Asanka / Unsplash
class PostacGracza:
    def __init__(self, imie_gracza: str, pkt_zycia: int = 100, mana: int = 100, zwinnosc: int = 100) -> None:
        self.imie_gracza = imie_gracza
        self.pkt_zycia = pkt_zycia
        self.mana = mana
        self.zwinnosc = zwinnosc

    def przywitaj(self):
        print("Witaj", self.imie_gracza)

    def otrzymaj_obrazenie(self, ilosc_obrazen: int):
        self.pkt_zycia -= ilosc_obrazen
        if self.pkt_zycia <= 0:
            print("Jesteś trupem!")

class Mag(PostacGracza):
    def __init__(self, imie_gracza: str, pkt_zycia: int = 50, mana: int = 200, zwinnosc: int = 100) -> None:
        super().__init__(imie_gracza, pkt_zycia, mana, zwinnosc)
    
    def rzuc_kule_ognia(self):
        print(f"{self.imie_gracza} rzucił kulę ognia. WOOOOSSHHH!!! KABOOOM!!!!")

class Wojownik(PostacGracza):
    def __init__(self, imie_gracza: str, zwinnosc: int = 100, pkt_zycia: int = 150, mana: int = 50, ) -> None:
        super().__init__(imie_gracza, pkt_zycia, mana, zwinnosc)

    def silny_cios(self):
        print(f"{self.imie_gracza} wykonał silny cios")

gracz1 = Mag("Fizban") #wprowadzone tylko imie_gracza, reszte wartości domyślne z klasy Mag
gracz2 = Wojownik(imie_gracza="Caramon", pkt_zycia=150, mana=50)

gracz1.przywitaj()
gracz2.przywitaj()

print("Gracze otrzymują obrażenia")

gracz1.otrzymaj_obrazenie(10)
print(f"{gracz1.imie_gracza} ma {gracz1.pkt_zycia} pkt życia.")

gracz2.otrzymaj_obrazenie(400)
print(f"{gracz2.imie_gracza} ma {gracz2.pkt_zycia} pkt życia.")

gracz1.rzuc_kule_ognia()

gracz2.silny_cios()