Advertisement
Chl_Snt

Backpack Class #2

Sep 3rd, 2024
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.76 KB | None | 0 0
  1. import random
  2. import time
  3. from inv import *
  4.  
  5.  
  6. class Player:
  7.     def __init__(self, name, hp, damage):
  8.         self.name = name
  9.         self.hp = hp
  10.         self.damage = damage
  11.         self.xp = 0
  12.         self.lvl = 1
  13.         self.heals = 0
  14.         self.inventory = Backpack()  # Инициализация инвентаря
  15.  
  16.     def attack(self, victim):
  17.         victim.hp -= self.damage
  18.         print(f"Ты нанёс врагу {self.damage} урона. Теперь у него {victim.hp} здоровья.")
  19.         if victim.hp <= 0:
  20.             self.xp += victim.xp
  21.             print(f"{victim.name} повержен!")
  22.             print(f"Ты получил {victim.xp} опыта! Теперь у тебя {self.lvl} LVL и {self.xp} XP.")
  23.             if self.xp >= 100:
  24.                 self.lvl += 1
  25.                 print(f"ПОЗДРАВЛЯЮ! Уровень повышен: {self.lvl}")
  26.                 self.xp = 0
  27.                 self.damage *= 1.5
  28.                 print(f"Ты стал сильнее! ⚔️: {self.damage}")
  29.  
  30.             luck = random.randint(0, 1)
  31.             if luck == 1:
  32.                 print(f"Ты получил Лечебный отвар🧋!")
  33.                 hero.inventory.add_item("лечебный отвар", 1)  # Добавляем предмет в инвентарь
  34.  
  35.             return False
  36.         else:
  37.             return True
  38.  
  39.  
  40. class Enemy:
  41.     races = {
  42.         "Слизняк": (10, 10),
  43.         "Волк": (25, 20),
  44.         "Орк": (50, 45),
  45.         "Группа гоблинов": (120, 25),
  46.         "Оборотень": (150, 50)
  47.     }
  48.  
  49.     def __init__(self):
  50.         self.name = random.choice(list(self.races.keys()))
  51.         self.hp = self.races[self.name][0]
  52.         self.damage = self.races[self.name][1]
  53.         self.xp = self.hp * 1.5
  54.  
  55.     def attack(self, victim):
  56.         victim.hp -= self.damage
  57.         print(f"{self.name} нанёс тебе {self.damage} урона. Теперь у тебя {victim.hp} здоровья.")
  58.         if victim.hp <= 0:
  59.             exit(print("ПОТРАЧЕНО!"))
  60.  
  61.  
  62. def create_hero(name, race, prof):
  63.     hp = 180
  64.     dmg = 25
  65.     hp *= races[race][0]
  66.     hp *= profs[prof][0]
  67.     dmg *= races[race][1]
  68.     dmg *= profs[prof][1]
  69.     hero = Player(name, hp, dmg)
  70.     return hero
  71.  
  72.  
  73. def start(heal=None):
  74.     if heal is None:
  75.         enemy = Enemy()
  76.     else:
  77.         enemy = heal
  78.  
  79.     enemy = Enemy()
  80.     print(f"Тебе встретился {enemy.name}. ❤️: {enemy.hp}, ⚔️: {enemy.damage}")
  81.     print("Нападать?")
  82.     answer = input("Да/Нет/Лечиться: ").lower()
  83.     if answer == "да":
  84.         fight(enemy)
  85.  
  86.     elif answer == "использовать предмет":
  87.         item = input("Какой предмет ты хочешь использовать? ").lower()
  88.         if hero.inventory.remove_item(item):  # Пытаемся удалить предмет из инвентаря
  89.             if item == "лечебный отвар":
  90.                 hero.hp += 50
  91.                 print(f"Ты использовал Лечебный отвар. ❤️: {hero.hp}")
  92.         else:
  93.             print("Этот предмет нельзя использовать.")
  94.  
  95.         start(enemy)
  96.  
  97.     else:
  98.         luck = random.randint(0, 100)
  99.         if luck in range(40):
  100.             print("Ты смог незаметно ускользнуть и пойти дальше!")
  101.             time.sleep(2)
  102.             start()
  103.         else:
  104.             print("Ты НЕ смог незаметно ускользнуть!")
  105.             time.sleep(2)
  106.             enemy.attack(hero)
  107.             fight(enemy)
  108.  
  109.  
  110. def fight(victim):
  111.     result = hero.attack(victim)
  112.     time.sleep(1)
  113.     if result:
  114.         victim.attack(hero)
  115.         time.sleep(1)
  116.         fight(victim)
  117.     else:
  118.         start()
  119.  
  120.  
  121. name = input("Введи своё имя: ")
  122. races = {
  123.     "эльф": (1.5, 1),
  124.     "Гном": (0.8, 1.2),
  125.     "человек": (1, 1)
  126. }
  127. profs = {
  128.     "лучник": (0.9, 2),
  129.     "щитоносец": (2, 0.6),
  130.     "рыцарь": (1.2, 1.2)
  131. }
  132. race = ""
  133. prof = ""
  134. while race not in tuple(races.keys()):
  135.     print(f"Bыбеpи расу: {tuple(races.keys())}")
  136.     race = input("->").lower()
  137. while prof not in tuple(profs.keys()):
  138.     print(f"Bыбеpи профессию: {tuple(profs.keys())}")
  139.     prof = input("->").lower()
  140.  
  141. hero = create_hero(name, race, prof)
  142. print(f"Здравствуй, герой с именем {hero.name}!\n"
  143.       f"Твоё здоровье равно {hero.hp} XП. \n"
  144.       f"Твой урон равен {hero.damage} единицам.\n"
  145.       f"Желаю удачи в приключениях, странник! ^_+")
  146. time.sleep(1)
  147. start()
  148.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement