Advertisement
Woobinda

The Game, консольная игра (RPG)

Dec 27th, 2015
4,541
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 28.17 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. import random
  4. from time import sleep
  5.  
  6. """
  7. Рпг-игра, на классах и сценариях. В качестве интерфейса - вывод текстовой информации в консоль.
  8. Для запуска игры необходимо сохранить код в файл с расширением .py;
  9. Игра совместима с версией Python 3.4 и выше;
  10. В игре не исключено наличие некоторого количества грамматических и синтаксических ошибок.
  11. """
  12.  
  13. class Print:
  14.     def __repr__(self):
  15.         print('\n--------------%s--------------\n' %(self.__class__.__name__))
  16.         return self.__attrnames()
  17.  
  18.     def __attrnames(self):
  19.         result = ''
  20.         for attr in sorted(self.__dict__):
  21.             result += '\t%s=%s\n' % (attr, self.__dict__[attr])
  22.         return result
  23.  
  24.  
  25. class Bandit(Print):
  26.     def __init__(self, name, attack, armor, health=60, hp=60, state = '[ЗДОРОВ]'):
  27.         self.health = health
  28.         self.name = name
  29.         self.attack = attack
  30.         self.armor = armor
  31.         self.hp = hp
  32.         self.state = state
  33.  
  34.     def takeDamage(self, damage, who):
  35.         self.hp = self.hp - damage//self.armor
  36.         if self.hp == self.health:
  37.             self.state = '[ЗДОРОВ]'
  38.         if (self.hp*100//self.health) < 100:
  39.             self.state = '[ЛЕГКО РАНЕН]'
  40.         if (self.hp*100//self.health) < 70:
  41.             self.state = '[РАНЕН]'
  42.         if (self.hp*100//self.health) < 40:
  43.             self.state = '[ТЯЖЕЛО РАНЕН]'
  44.         if (self.hp*100//self.health) < 15:
  45.             self.state = '[ПОЧТИ МЕТРВ]'
  46.         if self.hp <= 0:
  47.             self.state = '[МЕРТВ]'
  48.             self.death()
  49.         print('\n%s получил от %s %s урона, состояние здоровья %s\n\n' %(self.name, who, damage//self.armor, self.state))
  50.  
  51.     def doDamage(self, person):
  52.         damage = self.attack * random.choice(range(80,150))//100
  53.         person.takeDamage(damage, self.name)
  54.  
  55.     def death(self):
  56.         print ('\n\n%s убит\n' %(self.name))
  57.         player.increase()
  58.  
  59. class Strong_Bandit(Bandit):
  60.     def __init__(self, name, attack, armor):
  61.         Bandit.__init__(self, name, attack, armor, health=90, hp=90)
  62.     def takeDamage(self, damage, who, resist=80):
  63.         Bandit.takeDamage(self, damage*resist//100, who)
  64.     def doDamage(self, person):
  65.         damage = self.attack * random.choice(range(80,150))//80
  66.         person.takeDamage(damage, self.name)
  67.  
  68. class Boss(Bandit):
  69.     def __init__(self, name, attack, armor):
  70.         Bandit.__init__(self, name, attack, armor, health=200, hp=200)
  71.     def takeDamage(self, damage, who, resist=60):
  72.         Bandit.takeDamage(self, damage*resist//100, who)
  73.     def doDamage(self, person):
  74.         damage = self.attack * random.choice(range(80,150))//60
  75.         person.takeDamage(damage, self.name)
  76.  
  77. class Enemys:
  78.     def __init__(self, *args):
  79.         self.enemys = list(args)
  80.     def addEnemy(self, enemy):
  81.         self.enemys.append(enemy)
  82.     def deleteEnemy(self, enemy):
  83.         self.enemys.remove(enemy)
  84.     def view(self):
  85.         for enemy in self.enemys:
  86.             print(enemy)
  87.  
  88. class Weapon():
  89.     def __init__(self, name, damage, cost):
  90.         self.name = name
  91.         self.damage = damage
  92.         self.cost = cost
  93.  
  94.     def __repr__(self):
  95.         result = ''
  96.         for attr in self.__dict__:
  97.             result += '%s=%s\n' % (attr, self.__dict__[attr])
  98.         return result
  99.  
  100.  
  101. class Armor():
  102.     def __init__(self, name, armor, cost):
  103.         self.name = name
  104.         self.armor = armor
  105.         self.cost = cost
  106.  
  107.     def __repr__(self):
  108.         result = ''
  109.         for attr in self.__dict__:
  110.             result += '%s=%s\n' % (attr, self.__dict__[attr])
  111.         return result
  112.  
  113.  
  114. class Shop():
  115.     def __init__(self, *args):
  116.         self.args = args
  117.  
  118.     def __repr__(self):
  119.         print ('\n\n\n--------------ТОВАРЫ В МАГАЗИНЕ---------------\n')
  120.         result = ''
  121.         for x in enumerate(shop.args):
  122.             result += ('\n---%s---\n%s'%(x[0], x[1]))
  123.         return result + '\nКаждое зелье лечения [hp_bottle] стоит 100$. Зелья лечения возврату или обмену не подлежат.\nВаши деньги %s$\n-----------\nДля покупки оружия или брони введите:[buy №], где № - номер товара в списке\nДля покупки зелея лечения введите:[buy bottle]\nДля продажи своего оружия введите:[sell weapon]\nдля продажи своей брони введите:[sell defence]\n-----------\n\n' %(player.money)
  124.  
  125.  
  126.  
  127.  
  128.  
  129. class Player(Print):
  130.     def __init__(self, attack=10, armor=4, health=70, hp=70, exp=0, level=1, money=500, weapon='[fist]', defence=None, hp_bottle=1):
  131.         self.attack = attack
  132.         self.armor = armor
  133.         self.health = health
  134.         self.hp = hp
  135.         self.exp = exp
  136.         self.level = level
  137.         self.money = money
  138.         self.weapon = weapon
  139.         self.defence = defence
  140.         self.hp_bottle = hp_bottle
  141.  
  142.     def buy(self, arg):
  143.         if arg.name.split('_')[1] == 'Armor]':
  144.             self.takeArmor(arg)
  145.         else:
  146.             self.takeWeapon(arg)
  147.  
  148.     def takeWeapon(self, weapon):
  149.         if self.money >= weapon.cost:
  150.             self.money = self.money - weapon.cost
  151.             self.attack = 10 + weapon.damage
  152.             self.weapon = weapon.name
  153.             print('\nВы купили %s за %s$, он отлично ложится в Вашу руку. Денег осталось %s$.\nВаша аттака теперь равна %s\n' %(weapon.name, weapon.cost, self.money, self.attack))
  154.         else:
  155.             if self.money <= weapon.cost:
  156.                 print('\nНе хватает денег. Есть %s$ надо %s$\n' %(self.money, weapon.cost))
  157.  
  158.     def takeArmor(self, armor):
  159.         if self.money >= armor.cost:
  160.             self.money = self.money - armor.cost
  161.             self.armor = 5 + armor.armor
  162.             self.defence = armor.name
  163.             print('\nВы купили %s за %s$, как раз Ваш размер. Денег осталось %s$.\nВаша защита теперь равна %s\n' %(armor.name, armor.cost, self.money, self.armor))
  164.         else:
  165.             if self.money < armor.cost:
  166.                 print('\nНе хватает денег. Есть %s$ надо %s$\n' %(self.money, armor.cost))
  167.  
  168.     def takeHpBottle(self):
  169.         if self.money >= 100:
  170.             self.money = self.money - 100
  171.             self.hp_bottle = self.hp_bottle + 1
  172.             print('\nВы купили зелье лечения за 100$. Теперь у Вас их %s\n' %(self.hp_bottle))
  173.         else:
  174.             print('\nНа покупку зелья лечения не хватает денег. У Вас осталось всего %s$\n' %(self.money))
  175.  
  176.     def healself(self):
  177.         if self.hp_bottle > 0:
  178.             if self.hp < self.health:
  179.                 self.hp = self.hp+50
  180.                 self.hp_bottle = self.hp_bottle -1
  181.                 if self.hp > self.health:
  182.                     self.hp = self.health
  183.                 print('\nВы используете зелье лечения. Дышать становится заметно лучше. Ваше здоровье = %s. Банок лечения осталось %s\n' %(self.hp, self.hp_bottle))
  184.             else:
  185.                 self.hp_bottle = self.hp_bottle - 1
  186.                 print('\nВы использовали лечение. Ваше здоровье и без того было полным.\nВаше здоровье = %s. Зелей осталось %s\n' %(self.hp, self.hp_bottle))
  187.         else:
  188.             print('\nВы пытаетесь использовать зелье лечения, но не находите его в своем инвентаре. Очка действия потеряно.\n')
  189.  
  190.     def sellWeapon(self):
  191.         if self.weapon == 'fist':
  192.             print('\nУ Вас нету оружия на продажу\n')
  193.         for arg in shop.args:
  194.             if arg.name == self.weapon:
  195.                 self.money = self.money + arg.cost*80//100
  196.                 self.attack = self.attack - arg.damage
  197.                 self.weapon = 'fist'
  198.                 print('\nВы продали свой %s за %s$ - 80 процентов начальной стоимости. Денег осталось %s$\n'%(arg.name, arg.cost*70//100, self.money))
  199.  
  200.     def sellArmor(self):
  201.         if self.defence == None:
  202.             print('\nУ Вас нету брони на продажу\n')
  203.         for arg in shop.args:
  204.             if arg.name == self.defence:
  205.                 self.money = self.money + arg.cost*80//100
  206.                 self.armor = self.armor - arg.armor
  207.                 self.defence = None
  208.                 print('\nВы продали свой %s за %s$ - 80 процентов начальной стоимости. Денег осталось %s$\n'%(arg.name, arg.cost*70//100, self.money))
  209.  
  210.     def takeDamage(self, damage, who):
  211.         self.hp = self.hp - damage//self.armor
  212.         print('\nВы получили %s урона от %s. Ваше здоровье = %s' %(damage//self.armor, who, self.hp))
  213.         if (self.hp*100//self.health) < 70 and (self.hp*100//self.health) > 25:
  214.             print ('\nИз ваших ран обильно течет кровь\n')
  215.         if (self.hp*100//self.health) <= 25:
  216.             print ('От полученых повреждений мутнеет в голове. Вы чувствуете как Смерть где то рядом звенит своей ржавой косой\n\n')
  217.         if self.hp <= 0:
  218.             self.death()
  219.  
  220.     def doDamage(self,person):
  221.         damage = self.attack * random.choice(range(80,150))//100
  222.         person.takeDamage(damage, self.__class__.__name__)
  223.  
  224.     def increase(self):
  225.         money = random.choice(range(20,30))
  226.         exp = random.choice(range(51,70))
  227.         self.money = self.money + money
  228.         self.exp = self.exp + exp
  229.         print('Обыскав труп вы находите %s$. За убийство врага Вы получаете %s опыта.' %(money, exp))
  230.         self.levelup()
  231.  
  232.     def levelup(self):
  233.         if self.exp >=100 and self.level <2:
  234.             self.level = 2
  235.             self.attack += 5
  236.             self.armor += 2
  237.             self.health += 10
  238.             print('\n\n--------------------------------------LEVEL UP (%s)-------------------------------------\n\nПолучено необходимое количество опыта - %s. Вы достигаете уровня %s. Характеристики персонажа увеличены.\n\n'% (self.level, self.exp, self.level))
  239.             sleep(2)
  240.         if self.exp >= 300 and self.level <3:
  241.             self.level = 3
  242.             self.attack += 5
  243.             self.armor += 2
  244.             self.health += 10
  245.             print('\n\n--------------------------------------LEVEL UP (%s)-------------------------------------\n\nПолучено необходимое количество опыта - %s. Вы достигаете уровня %s. Характеристики персонажа увеличены.\n\n'% (self.level, self.exp, self.level))
  246.  
  247.     def death(self):
  248.         print('\n\n\n\n---------------------------------------YOU DIE-------------------------------------\n\n\n\n...На этом Ваше преключение заканчивается. Бандиты так и остануться без заслуженного наказания. Стервятники на деверьях у входа в логово будут весьма рады такому повороту событий...')
  249.         key = input('\n\n\nВас убили. Нажмите любую клавишу:')
  250.         if len(key) >= 0:      
  251.             print('\n\n\n\n\n--------------------------------------GAME OVER-------------------------------------\n\n\n\nGame created by (с)Woobinda\nContact - woobinda@voliacable.com\n\n')
  252.             sleep(2)
  253.             exit()
  254.  
  255.  
  256. if __name__ == '__main__':
  257.     player = Player()
  258.     Pistol_6mm = Weapon('[Pistol_6mm]', random.choice(range(30,50)), random.choice(range(100,200)))
  259.     Hunter_Rife = Weapon('[Hunter_Rife]', random.choice(range(50,80)), random.choice(range(200,300)))
  260.     Plazma_Rife = Weapon('[Plazma_Rife]', random.choice(range(80,110)), random.choice(range(300,400)))
  261.     Gauss_Rife = Weapon('[Gauss_Rife]', random.choice(range(130,160)), random.choice(range(400,500)))
  262.     TECH_Weapon = Weapon('[HI-TECH_Weapon]', random.choice(range(180,220)), random.choice(range(700,900)))
  263.     Light_Armor = Armor('[Light_Armor]', random.choice(range(4,6)), random.choice(range(100,200)))
  264.     Advanced_Armor = Armor('[Advanced_Armor]', random.choice(range(6,8)), random.choice(range(200,300)))
  265.     Heavy_Armor = Armor('[Heavy_Armor]', random.choice(range(9,11)), random.choice(range(300,400)))
  266.     Titanium_Armor = Armor('[Titanium_Armor]', random.choice(range(12,14)), random.choice(range(400,500)))
  267.     TECH_Armor = Armor('[HI-TECH_Armor]', random.choice(range(18,22)), random.choice(range(700,900)))
  268.     shop = Shop(Pistol_6mm, Hunter_Rife, Plazma_Rife, Gauss_Rife, TECH_Weapon, Light_Armor, Advanced_Armor, Heavy_Armor, Titanium_Armor, TECH_Armor)
  269.  
  270.     print('\n\n\n--------------------------------------START GAME-------------------------------------\n\n\n\nВаш персонаж обладает характеристиками:\n[armor] - защита, уменьшает количество получаемых Вами повреждений\n[attack] - аттака, влияет на количество наносимого Вами урона\n[exp] - опыт, полученный за убийство врагов\n[health] - максимальное количество здоровья персонажа\n[hp] - текущее здоровье персонажа\n[level] - уроень персонажа, повышается при необходимом количестве опыта exp. При повышении уровня персонаж повышает характеристики.\n\nСлоты аммуниции:\n[money] - деньги($), необходимые для совершения покупок в магазине\n[weapon]- используемое персонажем оружие\n[defence] - надетая на персонажа броня\n[hp_bottle] - количество целебных зелей. Каждое зелье востанавливает персонажу 50 здоровья\n\n')
  271.     sleep(2)
  272.     key = input('\n\n\nЧтобы продолжить. Нажмите любую клавишу:')
  273.     if len(key) >= 0:
  274.         print('\nНа этом наш рассказ начинается...\n\n\n\n')
  275.         sleep(2)
  276.     print(' ...Вы спускаетесь с небольшого пригорка и видите перед собой полуразрушенный дом. Это подходит под описания логова ублюдков, о котором Сью говорила в таверне. Оторвать им головы...и забрать деньги...Лучшее что эти парни заслужили...Но как говорил мой дед - кто понял жизнь тот не торопится. Тем более с голыми руками лезть туда явно самоубийство. Не плохо бы сначала заглянуть в ближайшую лавку торговца, там у них в последнее время полно оружия, а у меня как раз вроде осталось пару долларов...\n')
  277.     sleep(2)
  278.     key = input('\n\n\nЧтобы продолжить. Нажмите любую клавишу:')
  279.     if len(key) >= 0:
  280.         print('\n\n\n\n Для покупки первичного снаряжения посетите магазин. Продажа товаров обратно в магазин осуществляется по 80% от начальной стоимости. Для экономии денег, перед покупкой нового оружия или брони рекомендуется продать старые. Для просмотра характеристик и надетой на персонажа аммуниции войдите в режим просмотра персонажа - [v].\n\n   ...Вы приближаетесь к таверне. На вид здание представляет из себя добротное сооружение из бревен и камня. Кажется что звон бокалов и хохот местных завсегдатаев появились тут вместе с заложенным фундаментом. Таверна - лучшее место где чтобы продумать свои планы. Чтобы войти в таверну введите в стоке ввода букву, которая находится в квадратных скобках - [t]\n\n\n')
  281.         sleep(2)
  282.  
  283.     def final():
  284.         money = random.choice(list(range(350, 600)))
  285.         player.money = player.money + money
  286.         key = input('\n\n\nВ это сложно верится но толстяк мертв. Нажмите любую клавишу:')
  287.         if len(key) >= 0:
  288.             print('\n\n\n\n***************************************************************************\n\n\n\n  ...Последнии пули приходятся толстяку в голову. Его огроммная туша оседает по стене, оставляя красные полосы. Надо все хорошенько осмотреть. В углу зала вы находите сейф...')
  289.             sleep(2)
  290.             print('\n\n ...Это явно того стоило...Обыскав сейф вы находите %s$. Теперь у Вас %s$.\n\n'%(money, player.money))
  291.             sleep(2)
  292.             print(' ...С такими деньгами можно начинать планировать более крупную операцию. Вы берете с пепельницы не докуреную сигару, делаете затяжку и заговорчески улыбаетесь и направляетесь в сторону таверны...\n')
  293.             sleep(2)
  294.             key = input('\n\n\nНа этом наш рассказ завершается. Нажмите любую клавишу:')
  295.             if len(key) >= 0:
  296.                 print('\n\n\n\n*************************************THE END***************************************\n\n\nСпасибо что играли :)\n\n')
  297.                 print('Game created by (с)Woobinda\nContact - woobinda@voliacable.com\n\n')
  298.                 sleep(2)
  299.                 exit()
  300.  
  301.     def battle(points):
  302.         if len(enemys.enemys) == 0:
  303.             key = input('\n\n\nВы убили последнего врага. Нажмите любую клавишу:')
  304.             if len(key) >= 0:
  305.                 money = random.choice(list(range(100,150)))
  306.                 player.money = player.money + money
  307.                 player.hp = player.health
  308.                 print('\n\n\n\n************************************************************************\n\n\n\n ...Ваши враги валяются на земле в лужах крови и гноя. Вы переводите дыхание и обыскиваете сумку одного из убитых.')
  309.                 print('Вы находите %s$ бонусных денег. Денег всего %s$.\n'%(money, player.money))
  310.                 sleep(2)
  311.                 print(' ...Не плохо бы передохнуть, прежде чем двинуться дальше. Вы возвращаетесь в таверну и сразу же поднявшись в свой номер придаетесь крепкому сну.\nЗдоровье персонажа полностью востановленно.\n\n\n')
  312.             tavern()
  313.         if points == 0:
  314.             print('\n***********\nУ Вас закончились очки действия, нажмите [end] для передачи хода противнику.\n')
  315.             sleep(1)
  316.         choice = input('\nДля просмотра доступных действий нажмите [h]elp. Ваше действие:')
  317.         if choice == 'h':
  318.             print('\n\n[v]iev - просмотр персонажа\n[e]nemy - просмотр врагов\n[a]ttack [№] - аттака врага, где № - номер врага\n[bottle] - использовать зелье лечения\n[end] - передача хода\n[q]uit - выйти из игры\n\n')
  319.         if choice == 'q':
  320.             print('\n\n\n\n--------------------------------------GAME OVER-------------------------------------\n\n\n\nGame created by (с)Woobinda\nContact - woobinda@voliacable.com\n\n')
  321.             sleep(2)
  322.             exit()
  323.         if choice == 'v':
  324.             print(player)
  325.         if choice == 'e':
  326.             for x in enumerate(enemys.enemys):
  327.                 print ('                (%s)              \n\n%s'%(x[0], x[1]))
  328.         if len(choice) == 3 and choice.split()[0] == 'a':
  329.             if points == 0:
  330.                 print('\n')
  331.             else:
  332.                 try:
  333.                     number = int(choice.split()[1])
  334.                 except ValueError:
  335.                     return tavern()
  336.                 try:
  337.                     enemys.enemys[number]
  338.                 except IndexError:
  339.                     return battle(points)
  340.                 sleep(1)
  341.                 player.doDamage(enemys.enemys[number])
  342.                 sleep(1)
  343.                 points -=1
  344.                 for enemy in enemys.enemys:
  345.                     if enemy.name == 'Evil Boss' and enemy.state == '[МЕРТВ]':
  346.                         final()
  347.                     if enemy.state == '[МЕРТВ]':
  348.                         enemys.deleteEnemy(enemy)
  349.                 else:
  350.                     return battle(points)
  351.         if choice == 'end':
  352.             for enemy in enemys.enemys:
  353.                 enemy.doDamage(player)
  354.                 sleep(2)
  355.             return battle(3)
  356.         if choice == 'bottle':
  357.             if points == 0:
  358.                 print('\n')
  359.             else:
  360.                 player.healself()
  361.                 sleep(2)
  362.                 points -= 1
  363.         return battle(points)
  364.  
  365.     def tavern():
  366.         menulist = '\n\n[v]iev - просмотр персонажа\n[s]hop - зайти в магазин\n[b]attle - войти в бандитское логово\n[q]uit - выйти из игры\n\n'
  367.         choice = input('\nДля возврата в таверну нажмите [t]avern. Ваше действие:')
  368.         if choice == 't':
  369.             print(menulist)
  370.         if choice == 'v':
  371.             print(player)
  372.         if choice == 's':
  373.             print('\n\nЗавидив Вас, старый робот - хозяин магазина начинает смахивать пыль с залежавшегося товара\n\n\n-Вы только посмотрите на мои новейшие разработки!')
  374.             sleep(2)
  375.             print(shop)
  376.         if choice == 'sell weapon':
  377.             player.sellWeapon()
  378.         if choice == 'sell defence':
  379.             player.sellArmor()
  380.         if choice == 'buy bottle':
  381.             player.takeHpBottle()
  382.         if choice == 'q':
  383.             print('\n\n\n\n--------------------------------------GAME OVER-------------------------------------\n\n\n\nGame created by (с)Woobinda\nContact - woobinda@voliacable.com\n\n')
  384.             sleep(2)
  385.             exit()
  386.         if len(choice) == 5:
  387.             if choice.split()[0] == 'buy':
  388.                 try:
  389.                     number = int(choice.split()[1])
  390.                 except ValueError:
  391.                     return tavern()
  392.                 try:
  393.                     shop.args[number]
  394.                 except IndexError:
  395.                     return tavern()
  396.                 player.buy(shop.args[number])
  397.         if choice == 'b':
  398.             if player.level == 1:
  399.                 print('\n\n ...Вы осторожно подкрадываетесь к полуразрушенному зданию, входные двери на удивление не заперты. Складывается чувство что кто то приготовил для Вас ловушку. Вы проходите пару коридоров и видете из за угла двух бандитов. Еще не поздно повернуть назад...\n\n[any key] - нажмите любую клавишу, чтобы вернутся в таверну\n[b]attle - напасть\n')
  400.                 sleep(2)
  401.                 choice = input('Какими будут Ваши дальнейшие действия?:')
  402.                 if choice == 'b':
  403.                     global enemys
  404.                     enemys = Enemys()
  405.                     Bandit1 = Bandit('Bandit1', random.choice(range(60,90)), random.choice(range(5,10)))
  406.                     Bandit2 = Bandit('Bandit2', random.choice(range(60,90)), random.choice(range(5,10)))
  407.                     enemys.addEnemy(Bandit1)
  408.                     enemys.addEnemy(Bandit2)
  409.                     print('\n\n\n\n--------------------------------------BATTLE-------------------------------------\n\n\n  ...Вы выходите из своего укрытия, эти два бандита явно не ожидали гостей, разобраться с ними не составит труда.\n\n"""\nВ течение боя, в зависимости от нанесенных вами повреждений, состояние здоровья противников меняется от [ЗДОРОВ] до [МЕРТВ]. Чем ближе враг к смерти, тем хуже его состояние здоровья. Если [hp] Вашего персонажа опустится до 0, персонаж умрет, используйте зелья лечения, чтобы не допустить этого. В течение одного хода персонаж имеет 3 очка действия. За одно очко действия можно либо провести аттаку по врагу, либо использовать зелье лечения. Когда очков действий не останится, необходимо окончить ход командой [end], после чего будет ходить противник. С начала следующего хода у Вас будет опять 3 очка действий.\n"""\n\nНапомним что наносимый вами урон зависит от величены показателя [attack] Вашего персонажа, а получаемый персонажем урон от показателя [armor]. Для просмотра персонажа введите [v]iew.\n\n\n----------Список доступных действий. Для вызова этого списка введите [h]elp---------\n\n[v]iev - просмотр персонажа\n[e]nemy - просмотр врагов\n[a]ttack [№] - аттака врага, где № - номер врага\n[bottle] - использовать зелье лечения\n[end] - передача хода\n[q]uit - выйти из игры\n\nДля начала боя выведите список врагов [e]nemy и аттакуйте противника введя [a №], где № - номер противника из списка.\n\n')
  410.                     sleep(2)               
  411.                     battle(3)
  412.             if player.level == 2:
  413.                 print('\n\n ...Вы пробираетесь еще глубже и поднимаетесь на следующий этаж. Вы видите перед собой двух типичных разбойников и огромнного здоровяка. Наверное ищут виновника недавно найденых трупов. Один из них выглядит особо опасным, может не стоит показыватся им на глаза...\n\n[any key] - нажмите любую клавишу, чтобы вернутся в таверну\n[b]attle - напасть\n')
  414.                 sleep(2)
  415.                 choice = input('Какими будут Ваши дальнейшие действия?:')
  416.                 if choice == 't':
  417.                     tavern()
  418.                 if choice == 'b':
  419.                     global enemys
  420.                     enemys = Enemys()
  421.                     Bandit1 = Bandit('Bandit1', random.choice(range(80,100)), random.choice(range(8,12)))
  422.                     Bandit2 = Bandit('Bandit2', random.choice(range(100,120)), random.choice(range(7,10)))
  423.                     Bandit3 = Strong_Bandit('Strong Bandit',random.choice(range(120,150)), random.choice(range(6,9)))
  424.                     enemys.addEnemy(Bandit1)
  425.                     enemys.addEnemy(Bandit2)
  426.                     enemys.addEnemy(Bandit3)
  427.                     print('\n\n\n\n--------------------------------------BATTLE-------------------------------------\n\n\n  ...Вы задерживаете дыхание и готовитесь аттаковать как только наступит удачный момент\n\n')
  428.                     sleep(2)
  429.                     battle(3)
  430.             if player.level == 3:
  431.                 print('\n\n ...Вы уже с легкостью ориентируетесь в этом лабиринте коридоров. И подходите к недавно запримеченной стальной двери. В дверной глазок видно сидящего в кресле толстяка, он явно тут главный...Хотя он и не может Вас видеть, складывается впечатление что он готов к вашему приходу. Возможно стоит вернутся когда он будет менее насторожен...\n\n[any key] - нажмите любую клавишу, чтобы вернутся в таверну\n[b]attle - напасть\n')
  432.                 choice = input('Ваши действия:')
  433.                 if choice == 't':
  434.                     tavern()
  435.                 if choice == 'b':
  436.                     global enemys
  437.                     enemys = Enemys()
  438.                     EvilBoss = Boss('Evil Boss', random.choice(range(180,220)), random.choice(range(6,8)))
  439.                     enemys.addEnemy(EvilBoss)
  440.                     print('\n\n\n\n--------------------------------------BATTLE-------------------------------------\n\n\n  ...Вы внезапно распахиваете дверь и аттакуете толстяка.\n\n')
  441.                     sleep(2)
  442.                     battle(3)
  443.         return tavern()
  444.     tavern()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement