Advertisement
Tzuro

lesson 5 rpg game

Mar 7th, 2024
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. from random import randint, choice
  2.  
  3.  
  4. class Character:
  5. def __init__(self):
  6. self.name = ""
  7. self.life = 1
  8. self.max_life = 1
  9.  
  10. def do_attack(self, enemy):
  11.  
  12. attack = randint(0, 3)
  13.  
  14. if attack == 0:
  15. print(f"{enemy.name} dodges {self.name}'s attack.")
  16. else:
  17. print(f"{self.name} attacks {enemy.name}, dealing {attack} damage.")
  18. enemy.life -= attack
  19.  
  20.  
  21. class Enemy(Character):
  22. def __init__(self, player):
  23. super().__init__()
  24. self.name = choice(['Goblin', 'Skeleton', 'Zombie'])
  25. self.life = randint(1, player.life)
  26.  
  27.  
  28. class Player(Character):
  29. def __init__(self):
  30. super().__init__()
  31. self.life = 10
  32. self.max_life = 10
  33. self.name = input('Enter player name: ')
  34.  
  35. def rest(self):
  36. self.life += 1
  37. if self.life > self.max_life:
  38. self.life = self.max_life
  39. print(f'{self.name} is resting, life: {self.life}/{self.max_life}')
  40.  
  41. def combat(self, enemy):
  42. combat = True
  43. while combat:
  44. print(f'Player\'s life: {self.life}')
  45. print(f'{enemy.name}\'s life: {enemy.life}')
  46. combat_action = input('Action (attack, run): ')
  47. if combat_action == 'attack':
  48. self.do_attack(enemy)
  49. if enemy.life <= 0:
  50. print(f'{self.name} defeats {enemy.name}')
  51. return True
  52. enemy.do_attack(self)
  53. elif combat_action == 'run':
  54. print(f'{self.name} runs')
  55. enemy.do_attack(self)
  56. combat = False
  57. else:
  58. print('Unknown action')
  59.  
  60. if self.life <= 0:
  61. print(f'{self.name} dies')
  62. return False
  63. return True
  64.  
  65.  
  66. player = Player()
  67. game = True
  68. while game:
  69. action = input('Action (explore, rest): ')
  70.  
  71. if action == 'explore':
  72. if randint(0, 1) == 0:
  73. print(f'{player.name} found a cave')
  74. else:
  75. enemy = Enemy(player)
  76. print(f'{player.name} stumbled upon a {enemy.name}')
  77. game = player.combat(enemy)
  78. elif action == 'rest':
  79. player.rest()
  80. else:
  81. print('Unknown action')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement