def choose_attack(self, pokemon=None): if pokemon is None: return None if pokemon.has_status_effect(constants.status_bide): return pokemon.get_move(move_name="Bide") if pokemon.has_status_effect(constants.status_encore): return pokemon.get_status_effect( constants.status_encore)[constants.status_encore] print "choose_attack\n" while True: for move in pokemon.moves: print str(move) cmd = raw_input("\nChoose move: ") if cmd in 'back' or cmd in 'cancel': return 'back' for move in pokemon.moves: if cmd.lower() in move.name.lower(): if move.pp > 0: if not (pokemon.has_status_effect( constants.disables_move) and pokemon.get_status_effect( constants.disables_move) [constants.disables_move].name is move.name): return move else: print "{} is disabled!".format(move.name) continue else: print "{} has no pp left!".format(move.name) continue print self.input_error_text.format(cmd)
def choose_attack(self, pokemon=None): if pokemon is None: return None if pokemon.has_status_effect(constants.status_bide): return pokemon.get_move(move_name="Bide") if pokemon.has_status_effect(constants.status_encore): return pokemon.get_status_effect(constants.status_encore)[constants.status_encore] print "choose_attack\n" while True: for move in pokemon.moves: print str(move) cmd = raw_input("\nChoose move: ") if cmd in 'back' or cmd in 'cancel': return 'back' for move in pokemon.moves: if cmd.lower() in move.name.lower(): if move.pp > 0: if not (pokemon.has_status_effect(constants.disables_move) and pokemon.get_status_effect(constants.disables_move)[constants.disables_move].name is move.name): return move else: print "{} is disabled!".format(move.name) continue else: print "{} has no pp left!".format(move.name) continue print self.input_error_text.format(cmd)
def choose_battle_option(self, trainer=None, pokemon=None, opposing_pokemon=None, options=None): #, priority_list=None): # if pokemon is None: print "No pokemon. Pokemon is None." return None #if priority_list is None: # print "Priority list is none." # return None if options is None: options = [constants.btl_opt_attack] option = None # while True: if len(options) > 1: print "What will {} do?".format(pokemon.nickname) for opt in options: print opt cmd = raw_input("Choose an option: ") #ATTACK if cmd.lower() in constants.btl_opt_attack.lower( ) and constants.btl_opt_attack in options: #ATTACK PRIORITTY -7 to 8 move = self.choose_attack(pokemon=pokemon) if move is 'back': continue if pokemon.has_status_effect(constants.status_bide): move = move # dont use else: pokemon.use_move(move) return { constants.btl_opt_attack: move, 'priority': str(move.priority), 'pokemon': pokemon, 'trainer': trainer, 'target': opposing_pokemon } #Pokemon elif cmd.lower() in constants.btl_opt_pokemon.lower( ) and constants.btl_opt_pokemon in options: #Pokemon PRIORITTY 6 new_pokemon = self.choose_pokemon(trainer=trainer) if new_pokemon is 'back': continue if pokemon.has_status_effect(status_effect=constants. status_trapped): # Is Trapped print "{} is trapped and cannot escape".format( pokemon.nickname) continue return { constants.btl_opt_switch: new_pokemon, 'priority': '6', 'pokemon': pokemon, 'trainer': trainer } #Items elif cmd.lower() in constants.btl_opt_items.lower( ) and constants.btl_opt_items in options: #Items PRIORITTY 6 item = self.choose_item(trainer=trainer) if item is 'back': continue elif (item.type is constants.item_type_medicine or item.type is constants.item_type_berry): wanted_pokemon = self.choose_pokemon_from_list( pokemon_list=trainer.party) if wanted_pokemon is None or ( wanted_pokemon.is_fainted() and "Revive" not in item.name): print "You cannot use {} that pokemon!".format( item.name) continue return { constants.btl_opt_items: item, 'priority': '6', 'pokemon': wanted_pokemon, 'trainer': trainer } elif item.type is constants.item_type_poke_ball: if opposing_pokemon.original_trainer is None: return { constants.btl_opt_items: item, 'priority': '6', 'pokemon': pokemon, 'trainer': trainer, 'target': opposing_pokemon } else: print "Dont be a theif. Only catch WILD Pokemon." continue else: print "You cannot use that {} now!".format(item.name) continue #Call elif cmd.lower() in constants.btl_opt_call.lower( ) and constants.btl_opt_call in options: #Call PRIORITTY 6 return { constants.btl_opt_call: pokemon, 'priority': '6', 'pokemon': pokemon, 'trainer': trainer } #Flee elif cmd.lower() in constants.btl_opt_flee.lower( ) and constants.btl_opt_flee in options: #Flee PRIORITTY 0, if cmd.lower() is 'back': continue priority = 6 if trainer is None: priority = 0 return { constants.btl_opt_flee: constants.btl_opt_flee, 'priority': '6', 'pokemon': pokemon, 'trainer': trainer } # else: print self.input_error_text.format(cmd) continue
def choose_battle_option(self, trainer=None, pokemon=None, opposing_pokemon=None, options=None):#, priority_list=None): # if pokemon is None: print "No pokemon. Pokemon is None." return None #if priority_list is None: # print "Priority list is none." # return None if options is None: options = [constants.btl_opt_attack] option = None # while True: if len(options) > 1: print "What will {} do?".format(pokemon.nickname) for opt in options: print opt cmd = raw_input("Choose an option: ") #ATTACK if cmd.lower() in constants.btl_opt_attack.lower() and constants.btl_opt_attack in options: #ATTACK PRIORITTY -7 to 8 move = self.choose_attack(pokemon=pokemon) if move is 'back': continue if pokemon.has_status_effect(constants.status_bide): move = move # dont use else: pokemon.use_move(move) return {constants.btl_opt_attack: move, 'priority': str(move.priority), 'pokemon': pokemon, 'trainer': trainer, 'target':opposing_pokemon} #Pokemon elif cmd.lower() in constants.btl_opt_pokemon.lower() and constants.btl_opt_pokemon in options: #Pokemon PRIORITTY 6 new_pokemon = self.choose_pokemon(trainer=trainer) if new_pokemon is 'back': continue if pokemon.has_status_effect(status_effect=constants.status_trapped): # Is Trapped print "{} is trapped and cannot escape".format(pokemon.nickname) continue return {constants.btl_opt_switch: new_pokemon, 'priority': '6', 'pokemon': pokemon, 'trainer': trainer} #Items elif cmd.lower() in constants.btl_opt_items.lower() and constants.btl_opt_items in options: #Items PRIORITTY 6 item = self.choose_item(trainer=trainer) if item is 'back': continue elif (item.type is constants.item_type_medicine or item.type is constants.item_type_berry): wanted_pokemon = self.choose_pokemon_from_list(pokemon_list=trainer.party) if wanted_pokemon is None or (wanted_pokemon.is_fainted() and "Revive" not in item.name): print "You cannot use {} that pokemon!".format(item.name) continue return {constants.btl_opt_items: item, 'priority': '6', 'pokemon': wanted_pokemon, 'trainer': trainer} elif item.type is constants.item_type_poke_ball: if opposing_pokemon.original_trainer is None: return {constants.btl_opt_items: item, 'priority': '6', 'pokemon': pokemon, 'trainer': trainer, 'target':opposing_pokemon} else: print "Dont be a theif. Only catch WILD Pokemon." continue else: print "You cannot use that {} now!".format(item.name) continue #Call elif cmd.lower() in constants.btl_opt_call.lower() and constants.btl_opt_call in options: #Call PRIORITTY 6 return {constants.btl_opt_call: pokemon, 'priority': '6', 'pokemon': pokemon, 'trainer': trainer} #Flee elif cmd.lower() in constants.btl_opt_flee.lower() and constants.btl_opt_flee in options: #Flee PRIORITTY 0, if cmd.lower() is 'back': continue priority = 6 if trainer is None: priority = 0 return {constants.btl_opt_flee: constants.btl_opt_flee, 'priority': '6', 'pokemon': pokemon, 'trainer': trainer} # else: print self.input_error_text.format(cmd) continue