def rogueClass(self):
     self.health = 100
     self.attack = 5
     self.stamina = 200
     self.maxHealth = self.health
     self.maxStamina = self.stamina
     self.normalAttack = self.attack
     self.inventory.append(Potion())
     self.inventory.append(Potion())
     self.inventory.append(Potion())
     i = 0
     while i < len(self.inventory):
         self.inventory[i].setDetails("Health Potion", health=50)
         i += 1
     self.equipment.append(Gear())
     self.equipment[0].setDetails("Leather Armor", armor=30, avoidChance=10)
     self.equipment.append(Gear())
     self.equipment[1].setDetails("Buckler", avoidChance=10, armor=5)
     self.equipment.append(Weapon())
     self.equipment[2].setDetails("Dagger", damage=15, critChance=20, critMultiplier=2.0)
     self.SpellList.append(Spell())
     self.SpellList[0].setDetails("Backstab", damage=30, stamina=50, critChance=10, critMultiplier=2.0)
     self.SpellList.append(Spell())
     self.SpellList[1].setDetails("Find Weakness", stamina=40, critChance=100, critMultiplier=3.0)
     self.SpellList.append(Spell())
     self.SpellList[2].setDetails("Assassinate", damage=150, stamina=200)
     self.avoidChance = 20
 def mageClass(self):
     self.health = 100
     self.attack = 5
     self.mana = 200
     self.maxHealth = self.health
     self.maxMana = self.mana
     self.normalAttack = self.attack
     self.inventory.append(Potion())
     self.inventory[0].setDetails("Health Potion", health=50)
     self.inventory.append(Potion())
     self.inventory[1].setDetails("Mana Potion", mana=50)
     self.equipment.append(Gear())
     self.equipment[0].setDetails("Spell Tome", mana=200)
     self.equipment.append(Gear())
     self.equipment[1].setDetails("Robes", armor=10, mana=100)
     self.equipment.append(Weapon())
     self.equipment[2].setDetails("Staff", mana=100, damage=5)
     self.SpellList.append(Spell())
     self.SpellList[0].setDetails("Fireblast", damage=40, mana=30)
     self.SpellList.append(Spell())
     self.SpellList[1].setDetails("Icebolt", damage=5, mana=30, turnsF=3)
     self.SpellList.append(Spell())
     self.SpellList[2].setDetails("Combust", damage=10, mana=30, turnsB=3)
     self.SpellList.append(Spell())
     self.SpellList[3].setDetails("Lightning Shock", damage=10, turnsS=3, mana=40)
 def warriorClass(self):
     self.health = 150
     self.attack = 10
     self.maxHealth = self.health
     self.normalAttack = self.attack
     self.inventory.append(Potion())
     self.inventory.append(Potion())
     self.inventory.append(Potion())
     i = 0
     while i < len(self.inventory):
         self.inventory[i].setDetails("Health Potion", health=50)
         i += 1
     self.equipment.append(Gear())
     self.equipment[0].setDetails("Iron Armor", armor=50)
     self.equipment.append(Gear())
     self.equipment[1].setDetails("Shield", armor=10)
     self.equipment.append(Weapon())
     self.equipment[2].setDetails("Sword", damage=20)
     self.SpellList.append(Spell())
     self.SpellList[0].setDetails("Enraged", attack=20)
     self.SpellList.append(Spell())
     self.SpellList[1].setDetails("Shield Slam", damage=5, turnsS=2, cooldown=4)
示例#4
0
    def __init__(self, master):
        self.frame = Frame(master)
        self.frame.pack()
        td = Character()

        # Need if statement that varies based on the encounter so that this can be used for all fights
        td.Class = "Enemy"

        td.name = "Training Dummy"
        inventory = []

        td.enemyClass(100, 4, 0, 0, inventory, None, None, 0)
        td.inventory.append(Potion())
        td.inventory[0].setDetails("Health Potion", health=50)
        label = Label(self.frame, text=td.display())
        label.pack(side=TOP)
        button = Button(self.frame, text="S")
        button.pack(side=TOP)
示例#5
0
    def load_map(self, field) -> tuple:
        player_x, player_y = None, None  # player x and player y
        portal_x, portal_y = None, None

        enemies_coordinates = []
        boxes_coordinates = []
        potions_coordinates = []
        for row in range(field.get_width()):
            for column in range(field.get_width()):
                if isinstance(field.get_room(row, column), Room):
                    level = generate_level(field.get_room(row, column))

                    for y in range(len(level)):
                        for x in range(len(level[row])):
                            if isinstance(level[y][x], list):
                                for tile in level[y][x]:
                                    self.load_tile(tile, x + column * self.k,
                                                   y + row * self.k)
                            else:
                                if level[y][x] == 'player':
                                    player_x = x + column * self.k
                                    player_y = y + row * self.k
                                    self.load_tile(self.floor,
                                                   x + column * self.k,
                                                   y + row * self.k)
                                else:
                                    if level[y][x].name == 'portal':
                                        portal_x = x + column * self.k
                                        portal_y = y + row * self.k
                                        self.load_tile(self.floor,
                                                       x + column * self.k,
                                                       y + row * self.k)
                                    elif level[y][x].type.startswith('enemy'):
                                        enemies_coordinates.append(
                                            (x + column * self.k,
                                             y + row * self.k))
                                        self.load_tile(self.floor,
                                                       x + column * self.k,
                                                       y + row * self.k)
                                    elif level[y][x].type.startswith('items'):
                                        if level[y][x].name == 'box':
                                            boxes_coordinates.append(
                                                (x + column * self.k,
                                                 y + row * self.k,
                                                 level[y][x]))
                                            self.load_tile(
                                                self.floor,
                                                x + column * self.k,
                                                y + row * self.k)
                                        elif level[y][x].name == 'potion':
                                            potions_coordinates.append(
                                                (x + column * self.k,
                                                 y + row * self.k))
                                            self.load_tile(
                                                self.floor,
                                                x + column * self.k,
                                                y + row * self.k)
                                    else:
                                        self.load_tile(level[y][x],
                                                       x + column * self.k,
                                                       y + row * self.k)

        Portal.Portal(portal_x, portal_y, self.portal_sprite, self.all_sprites)

        for tile in boxes_coordinates:
            self.load_tile(tile[2], tile[0], tile[1])

        for potion_x, potion_y in potions_coordinates:
            Potion.Potion(potion_x, potion_y, self.potion_sprites,
                          self.all_sprites)

        for enemy_x, enemy_y in enemies_coordinates:
            Enemy.Enemy(self.tiles['enemy']['enemy'], enemy_x, enemy_y,
                        self.enemy_sprites, self.all_sprites)

        return player_x, player_y
示例#6
0
player.inventory.addItem(magicBow)
player.inventory.addItem(fireSword)

player.equip(
    utils.getChoice("Choose weapon to equip:", player.inventory.items()))

bronzeHead = Armor("Bronze Helmet", Stats(Con=1), 1, armorType.Head)
bronzeGloves = Armor("Bronze Gloves", Stats(Con=1), 1, armorType.Gloves)
bronzeChest = Armor("Bronze Chest", Stats(Con=1), 1, armorType.Chest)
bronzeLeggings = Armor("Bronze Leggings", Stats(Con=1), 1, armorType.Leggings)
bronzeBoots = Armor("Bronze Boots", Stats(Con=1), 1, armorType.Boots)

player.equip(bronzeHead)
player.equip(bronzeGloves)
player.equip(bronzeChest)
player.equip(bronzeLeggings)
player.equip(bronzeBoots)
print(player.equipment)

player.potionsPocket.addPotion(Potion(0.25))
player.potionsPocket.addPotion(Potion(0.33))
#print(player.potionsPocket)

Battle(player, [dragonMonster, puppyMonster])

# TODO Что нужно сделать
# Quest / QuestJournal
# SpellBook
# City