"""
Character (klasa bazowa)
   ↓
   ├── Hero (postać - umie walczyć)
				  ↓
				  └── Player (gracz - ma poziomy, exp, ekwipunek)
   ├── Monster (bazowa klasa potworów)
   │      ↓
   │      ├── Goblin
   │      └── Orc

Item (klasa bazowa przedmiotów)
   ↓
   ├── Potion (leczenie)
   └── Weapon (zwiększa atak)

Location (lokacje do eksploracji)
   - las, jaskinia, wioska
   - różne potwory i skarby

   Utwórzcie nowe pliki: rpg_game.py, characters.py i items.py

"""

"""characters.py:"""
import random, time
# chcemy imię, hp, moc ataku
class Character:
   def __init__(self, name, hp, attack):
      self.name = name
      self.max_hp = hp
      self.hp = hp
      self.attack_power = attack

   def is_alive(self):
      return self.hp > 0

   def show(self):
        print(f'{self.name}: {self.hp}/{self.max_hp} HP')

   def attack(self, other):
   # Losowe obrażenia od 1 do attack_power
      damage = random.randint(1, self.attack_power)
      other.hp -= damage # other.hp = other.hp - damage
      print(f'{self.name} zadaje {other.name} {damage} obrażeń!')
      other.show()
      time.sleep(0.5)
      return damage

#--------------------------------------------------------------------#

class Hero(Character):
    def __init__(self, name, level=1):
        super().__init__(name, hp=100, attack=10)
        self.level = level

class Player(Hero):
   def __init__(self, name):
        super().__init__(name, level=1)
        self.exp = 0
        self.inventory = []

   def gain_exp(self, amount):
      self.exp += amount
      if self.exp >= self.level * 10:
         self.level_up()

   def level_up(self):
      self.level += 1 # self.level = self.level + 1
      self.exp = 0
      self.max_hp += 10
      self.attack_power += 3
      self.hp = self.max_hp
      print(f'{self.name} awansuje na level {self.level}!')

#--------------------------------------------------------------------#

# rpg_game.py
