Advertisement
Guest User

Untitled

a guest
Aug 29th, 2021
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.41 KB | None | 0 0
  1. from random import randrange
  2.  
  3. class Character():
  4.     def __init__ (self, health, attack, defense):
  5.         self.health = health
  6.         self.base_attack = attack
  7.         self.base_defense = defense
  8.         self.defending = False
  9.         self.exp = 0
  10.         self.inventory = {}
  11.  
  12.     def inflict (self, damage):
  13.         calculated_damage = damage - self.base_defense
  14.         if self.defending:
  15.             calculated_damage = calculated_damage // 2
  16.         if calculated_damage < 0:
  17.             calculated_damage = 0
  18.         self.health -= calculated_damage
  19.         return calculated_damage
  20.  
  21.     def give_item (self, item, quantity):
  22.         original_quantity = self.inventory.get(item, 0)
  23.         self.inventory.update({item: original_quantity + quantity})
  24.    
  25.     def attack (self, other_character):
  26.         self.defending = False
  27.         return other_character.inflict(self.base_attack)
  28.    
  29.     def defend (self):
  30.         self.defending = True
  31.    
  32.     def use_item (self, item):
  33.         self.defending = False
  34.         quantity = self.inventory.get(item, 0)
  35.         if quantity == 0:
  36.             return "you do not have the item"
  37.         self.inventory.update({item: quantity - 1})
  38.        
  39.         if item == "potion":
  40.             self.health += 20
  41.             return "you were healed 20 hp"
  42.        
  43.         return "it had a mysterious effect"
  44.        
  45.     def has_item (self, item):
  46.         quantity = self.inventory.get(item, 0)
  47.         return quantity > 0
  48.  
  49. player = Character(100, 10, 6)
  50. player.give_item("potion", 3)
  51.  
  52. enemies_defeated = 0
  53.  
  54. while player.health > 0:
  55.     player_level = player.exp // 10 + 1
  56.     enemy = Character(player_level * 10 + randrange(10*player_level, 20*player_level),
  57.                         player_level * 10 + randrange(2*player_level, 10*player_level),
  58.                         player_level + randrange(player_level, 2*player_level))
  59.     if randrange(1, 10) > 4:
  60.         enemy.give_item("potion", randrange(1, 5))
  61.    
  62.     print("A wild beast appears!")
  63.     while enemy.health > 0:
  64.         action = None
  65.         while action is None:
  66.             user_input = input("Action? Attack, Defend, Item: ").strip().lower()
  67.             if user_input == "attack" or user_input == "defend":
  68.                 action = user_input
  69.             elif user_input == "item":
  70.                 print ("You have the following items:")
  71.                 for item in player.inventory:
  72.                     print (item, ": ", player.inventory[item])
  73.                 print ("Type the item name to use it")
  74.             elif player.has_item(user_input):
  75.                 action = user_input
  76.             else:
  77.                 print ("Invalid command")
  78.        
  79.         if action == "attack":
  80.             actual_damage = player.attack(enemy)
  81.             print("You did ", actual_damage, " damage to the beast")
  82.         elif action == "defend":
  83.             player.defend();
  84.             print("You defend")
  85.         else:
  86.             print ("You use the ", action, " and ", player.use_item(action))
  87.        
  88.         if enemy.health > 0:
  89.             enemy_action = randrange(1, 100)
  90.             if enemy_action < 50:
  91.                 print ("The beast attacks and deals ", enemy.attack(player), " damage")
  92.                 print ("You have ", player.health, " health")
  93.                 if player.health <= 0:
  94.                     break
  95.             elif enemy_action < 90:
  96.                 enemy.defend()
  97.                 print ("The beast defends")
  98.             else:
  99.                 if enemy.has_item("potion"):
  100.                     enemy.use_item("potion")
  101.                     print ("The beast uses a potion")
  102.                 else:
  103.                     print ("The beast ponders the meaning of life")
  104.    
  105.     if player.health > 0:
  106.         enemies_defeated += 1
  107.         print ("The beast was slain!")
  108.         if enemy.has_item("potion"):
  109.             player.give_item("potion", enemy.inventory["potion"])
  110.             print ("You receive ", enemy.inventory["potion"], " potions")
  111.         player.exp += 7
  112.         print ("You receive 7exp")
  113.         new_player_level = player.exp // 10 + 1
  114.         if new_player_level > player_level:
  115.             print ("You reached level ", new_player_level)
  116.             player.health += 100
  117.             player.base_attack += 5
  118.             player.base_defense += 3
  119.     else:
  120.         print ("You were slain")
  121.         print ("You had defeated ", enemies_defeated, " beasts")
  122.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement