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 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 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)
def __drop_items(self): r = random.randint(1, 100) item = None if r <= 33: item = Potion.random_potion() elif r <= 38: item = Item.ItemEmeraldSickle() elif r <= 41: item = Item.ItemWaterSword() elif r <= 46: item = Item.ItemGoldArmor() if item is None: return None return DroppedItem(item, self.x_pos, self.y_pos)
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)
def __drop_items(self): r = random.randint(1, 100) item = None if r <= 33: item = Potion.random_potion() elif r <= 38: item = Item.ItemBrokenSword() elif r <= 41: item = Item.ItemWoodenSword() elif r <= 42: item = Item.ItemIronSword() elif r <= 45: item = Item.ItemIronArmor() if item is None: return None return DroppedItem(item, self.x_pos, self.y_pos)
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
def place_object(self, level): up, down = None, None for y in range(self.height): for x in range(self.width): if not TileSolidState[self.__map[x][y]]: up = (x, y) break for y in reversed(range(self.height)): for x in range(self.width): if not TileSolidState[self.__map[x][y]]: down = (x, y) break r = random.randint(0, 1) staircase, player = [up, down][r], [up, down][1 - r] count = 0 monster_list = [] while count < 15: x = random.randint(0, len(self.map) - 1) y = random.randint(0, len(self.map) - 1) if not TileSolidState[self.__map[x] [y]] and self.__character_map[x][y] is None: if level == 1: monster_list += [ random.choice([Enemy.Slime(x, y), Enemy.Bird(x, y)]) ] elif level == 2: monster_list += [ random.choice([ Enemy.Slime(x, y), Enemy.Goblin(x, y), Enemy.Bird(x, y) ]) ] elif level == 3: monster_list += [ random.choice([Enemy.Goblin(x, y), Enemy.Mummy(x, y)]) ] else: monster_list += [ random.choice([ Enemy.Slime(x, y), Enemy.Goblin(x, y), Enemy.Bird(x, y) ]) ] self.__character_map[x][y] = monster_list[len(monster_list) - 1] count += 1 count = 0 object_list = [] while count < 5: x = random.randint(0, len(self.map) - 1) y = random.randint(0, len(self.map) - 1) if not TileSolidState[self.__map[x] [y]] and self.__object_map[x][y] is None: object_list += [DroppedItem(Potion.random_potion(), x, y)] self.__object_map[x][y] = object_list[len(object_list) - 1] count += 1 return staircase, player, monster_list, object_list
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