def usePotionChoice(self, hero, enemies): choosedPotion = utils.getChoice("What potion to use?", self.potionsPocket.items(), cancel=True) if choosedPotion: # Если было выбрано одно из зелий self.use(choosedPotion) else: #TODO! Выбрали отмену return False
def removeSelectedItem(self): #TODO rename """Даёт выбор какую вещь выкинуть из инвентаря""" if self.inventory: selectedItem = utils.getChoice("Which item to drop?", self.inventory, cancel=True) if selectedItem: self.removeItem(selectedItem) print("Droped "+selectedItem.__str__()+"\n") else: print("Inventory is empty\n")
def attackChoice(self, hero, enemies): if len(enemies) > 1: choosedEnemy = utils.getChoice("Choose your target:", enemies, cancel=True) if choosedEnemy == 0: #TODO! Выбрана отмена return False else: # Если один противник - его бьёт автоматически choosedEnemy = enemies[0] self.simpleAttack(choosedEnemy)
def getClass(self): #TODO Сдлеать сразу содание класса, при выборе одного из классов(вызывается создание класса) http://stackoverflow.com/questions/8141165/how-to-dynamically-select-a-method-call-in-python self.heroClass = utils.getChoice("Choose Your Class:",[ "Warrior", "Ranger", "Mage" ])
def getRace(self): #Получаем Расу self.heroRace = utils.getChoice("Choose your Race:",races) #TODOlater Сделать вывод по горизонтали
def doTurn(self, hero, enemies): availableBattleChoices = self.getAvailableBattleChoices() selectedBattleChoice = utils.getChoice("What would you do?", list(availableBattleChoices.keys())) availableBattleChoices[selectedBattleChoice](hero, enemies)
#создаём список всех монстров monsters = [ monster("Dragon", 50, (10, 20)), monster("Black Knight", 30, (20, 30)), monster("Mighty Wizard", 20, (40, 40)), monster("Zaraki Kempachi", 70, (50, 100)), monster("Phenix", 100, (1, 200)) ] #Получаем имя Игрока #TODO Если вводить русские буквы то ломается player = human(input("Введите ваше имя: "), 100, (7, 15)) #Позволяем игроку выбрать себе противника choosedMonster = utils.getChoice( "{0} выходит на арену и его просят выбрать себе противника:".format( player.name), monsters) print("Замечательно, вашим противником будет {0}. Да начнётся бой!".format( choosedMonster.name)) #делам цикл до тех пор пока ктонибудь не умрёт while player.hp >= 0 and choosedMonster.hp >= 0: player.attack(choosedMonster) choosedMonster.attack(player) #Сообщаем о выйгрыше/Проигрыше/Ничье if player.hp <= 0 and choosedMonster.hp <= 0: print("DRAW!") elif player.hp > 0: print("{0} WINS!".format(player.name)) else:
def getClass( self ): #TODO Сдлеать сразу содание класса, при выборе одного из классов(вызывается создание класса) http://stackoverflow.com/questions/8141165/how-to-dynamically-select-a-method-call-in-python self.heroClass = utils.getChoice("Choose Your Class:", ["Warrior", "Ranger", "Mage"])
def getRace(self): #Получаем Расу self.heroRace = utils.getChoice( "Choose your Race:", races) #TODOlater Сделать вывод по горизонтали
def doTurn(self, hero, enemies): availableBattleChoices = self.getAvailableBattleChoices() selectedBattleChoice = utils.getChoice( "What would you do?", list(availableBattleChoices.keys())) availableBattleChoices[selectedBattleChoice](hero, enemies)
pass #создаём список всех монстров monsters=[ monster("Dragon",50,(10,20)), monster("Black Knight",30,(20,30)), monster("Mighty Wizard",20,(40,40)), monster("Zaraki Kempachi",70,(50,100)), monster("Phenix",100,(1,200)) ] #Получаем имя Игрока #TODO Если вводить русские буквы то ломается player=human(input("Введите ваше имя: "),100,(7,15)) #Позволяем игроку выбрать себе противника choosedMonster=utils.getChoice("{0} выходит на арену и его просят выбрать себе противника:".format(player.name),monsters) print("Замечательно, вашим противником будет {0}. Да начнётся бой!".format(choosedMonster.name)) #делам цикл до тех пор пока ктонибудь не умрёт while player.hp>=0 and choosedMonster.hp>=0: player.attack(choosedMonster) choosedMonster.attack(player) #Сообщаем о выйгрыше/Проигрыше/Ничье if player.hp<=0 and choosedMonster.hp<=0: print("DRAW!") elif player.hp>0: print("{0} WINS!".format(player.name)) else: print("{0} LOOSE!".format(player.name))