Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- import time
- class Character:
- def __init__(self, name: str, xray_name: str, punch_names: list):
- self.stamina = random.randint(50, 200)
- self.max_stamina = self.stamina
- self.name = name
- self.xray_name = xray_name
- self.punch_names = punch_names
- self.mana = 0
- def bonus_hit(self, attacked_char):
- self.damage = random.randint(5, 15)
- if self.stamina > 100:
- procent = (self.stamina - 100) / 100 # узнаем процент изменения жизней
- bonus = - (self.damage - (self.damage * procent)) # убавляем от атаки столько же процентов
- elif self.stamina < 100:
- procent = (100 - self.stamina) / 100 # узнаем процент изменения жизней
- bonus = self.damage + (self.damage * procent) # прибавляем к атаке столько же процентов
- is_work = random.randint(1,3) # 1 - бонус сохраняется, 2 - бонус=урон врага, 3 - бонус теряется
- if is_work == 2:
- bonus = attacked_char.damage
- elif is_work == 3:
- bonus = 0
- self.damage += bonus
- self.damage = round(self.damage, 2)
- print(f"Сработал бонус к атаке: + {procent}%! Текущий урон: {self.damage}")
- def hit(self, attacked_char):
- if self.superattack(attacked_char):
- return None # если суператака, выйти из метода
- self.mana += random.randint(1,10)
- self.damage = random.randint(5, 15)
- self.bonus_hit(attacked_char)
- punch = random.choice(self.punch_names) # название удара
- attacked_char.stamina -= self.damage
- print(f"{self.name} с помощью удара {punch} нанес {self.damage} единиц урона персонажу {attacked_char.name}")
- def superattack(self,attacked_char):
- if self.mana > 40:
- self.mana = 0
- self.damage = random.randint(15, 25)
- attacked_char.stamina -= self.damage
- print(f"{self.name} ИСПОЛЬЗОВАЛ СУПЕРУДАР {self.xray_name.upper()} нанес {self.damage} единиц урона персонажу {attacked_char.name}")
- return True
- return False
- def say_info(self):
- if self.stamina < 0:
- self.stamina = 0
- elif self.stamina > self.max_stamina:
- self.stamina = self.max_stamina
- self.stamina = round(self.stamina, 2)
- # self.stamina = int(str(self.stamina)[:5])
- print(f"{self.name}. Стамина = {self.stamina}. Мана = {self.mana}")
- class Player(Character):
- def heal(self):
- bonus = random.randint(1, 20)
- self.stamina += bonus
- print(f"Здоровье восстановлено на {bonus} ед.!")
- player = Player("Роман", "Всемогущая атака", ["ногой", "рукой"])
- char1 = Character('Скорпион', "GET OVER HERE", [
- "Цепочный бам", "Огненный бум"])
- char2 = Character("Охладулькин", "Сосульки-Удалюльки",
- ["Ледяной бам", "Снежный бум"])
- char3 = Character("Кунг-фу панда", "Пельменная атака",
- ["Удар дракона", "Батутная поза"])
- char4 = Character("Бэтмен", "Потому что он БЭТМЕН", [
- "Удар могучей рукой", "Бэтаранг", "Удар могучей ногой"])
- enemies = [char1, char2, char3, char4]
- # enemy1 = random.choice(enemies)
- # enemies.remove(enemy1)
- enemy2 = random.choice(enemies)
- print(f"{player.name} VS {enemy2.name}")
- while True:
- time.sleep(3)
- action = input("Выберите действие: 1 - исцелиться❤️, 2 - атаковать⚔️: ")
- if action == "1":
- player.heal()
- else:
- player.hit(enemy2)
- enemy2.hit(player)
- player.say_info()
- enemy2.say_info()
- if player.stamina <= 0 and enemy2.stamina <= 0:
- print("Ничья")
- break
- elif player.stamina <= 0:
- print(f"{enemy2.name} победил")
- break
- elif enemy2.stamina <= 0:
- print(f"{player.name} победил")
- break
- print("-" * 50)
- # ставки
- # изменение урона или хп
- # уворот, fatality
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement