Untitled

 avatar
unknown
plain_text
a month ago
3.1 kB
5
Indexable
class Hero:
    def __init__(self, name, damage, armor):
        self.name = name 
        self.damage = damage
        self.armor = armor
        
    def info(self):
        print("name: ", self.name)
        print("damage: " ,self.damage)
        print("armor: ", self.armor)



class Warrior(Hero):
    def __init__(self, name, damage, armor):
        super().__init__(name,damage,armor)
        self.rage = 0
    
    def info(self):
        super().info()
        print("rage: ",self.rage)
        
    def attack_by_sword(self, enemy):
        print("Герой: ", self.name, "атакує мечем ", enemy.name)
        enemy.armor = enemy.armor - self.damage
        print("Наносить ",self.damage, "демеджу, у", enemy.name, "залишилось",enemy.armor,"броні")

class Mag:
    def __init__(self, name, damage, armor):
        self.name = name
        self.damage = damage
        self.attack_distance = 20
        self.armor = armor
    
    def info(self):
        print("name: ", self.name)
        print("damage: ", self.damage)
        print("armor: ", self.armor)
        print("attack distance: ", self.attack_distance)

    def attack_fireball(self, enemy):
        print("Герой: ", self.name, "атакує фаєрболом ", enemy.name)
        enemy.armor = enemy.armor - self.damage
        print("Наносить ",self.damage, "демеджу, у", enemy.name, "залишилось",enemy.armor,"броні") 

    def heal_friend(self, friend):
        print("Герой: ", self.name, "лікує ", friend.name)
        friend.armor = friend.armor + 50
        print("Відновлює 50 броні, у", friend.name, "залишилось", friend.armor, "броні")

class Rogue:
    def __init__(self, name, damage, armor):
        self.name = name
        self.damage = damage
        self.armor = armor
        self.energy = 100

    def info(self):
        print("name: ", self.name)
        print("damage: ", self.damage)
        print("armor: ", self.armor)
        print("energy: ", self.energy)

    def shoot_bow(self, enemy):
        print("Герой: ", self.name, "стріляє з лука у ", enemy.name)
        enemy.armor = enemy.armor - self.damage
        print("Наносить ",self.damage, "демеджу, у", enemy.name, "залишилось",enemy.armor,"броні")

    def throw_bomb(self, enemy):
        if self.energy == 100:
            print("Герой: ", self.name, "кидає бомбу у ", enemy.name)
            enemy.armor = enemy.armor - (self.damage * 2)
            self.energy = 0
            print("Наносить ", self.damage * 2, "демеджу, у", enemy.name, "залишилось", enemy.armor, "броні")

great_warrior = Warrior("Kaluga", 100, 2000)
lazy_warrior = Warrior("Sir Lazy", 80, 2300)
evil_mag = Mag("Merelin", 30, 5000)
shadow_rogue = Rogue("Shadow", 60, 1000)

shadow_rogue.shoot_bow(lazy_warrior)
shadow_rogue.throw_bomb(great_warrior)
evil_mag.heal_friend(lazy_warrior)
Editor is loading...
Leave a Comment