async def learnmove(message, send): content = getContent(message) if not content: return await send(commandlist[getCommand(message)][1]) try: movename, slot = content.rsplit(' ', 1) slot = int(slot) if slot < 1 or slot > 4: raise UserWarning( "@mention Invalid slot. It has to be between 1–4!") except: movename = content slot = None pokedata = database.loadPokedata(message.author) move = pokedex.getMoveByName(movename, pokedata.getPokemon()) oldMove = pokedata.learnMove(move, slot) database.savePokedata(pokedata) if slot and oldMove != None: return await send( '1, 2 and... Poof! @poss @pokemon forgot **{}** and... @pokemon learned {}!' .format(oldMove, move)) else: return await send('@poss @pokemon learned {}!'.format(move))
async def setpoke(message, send): content = getContent(message) pokemon = pokedex.getPokemonByName(content, True) pokedata = database.createPokemon(message.author) pokedata.initialize(pokemon) database.savePokedata(pokedata) m = '@user is now {} @pokemon.'.format(aOrAn(pokemon)) return await send(m)
async def heal(message, send): pokedata = database.loadPokedata(message.author) if pokedata.getHp() != 0: return await send( "Your Pokemon can still fight! Only fainted Pokemon are able to `!heal`." ) pokedata.fullRestore() database.savePokedata(pokedata) hp = pokedata.getHp() m = '@poss @pokemon was fully restored to ({0}/{0}) hp!'.format(hp) return await send(m)
async def trainev(message, send): value, stat = getArgs(message) if not value.isdigit(): return await send(commandlist[getCommand(message)][1]) value = int(value) stat = pokedex.checkStat(stat) pokedata = database.loadPokedata(message.author) result = pokedata.trainEV(value, stat) database.savePokedata(pokedata) return await send( "@poss @pokemon trained and increased its {}-EV by ({})!".format( stat, result))
async def admin(message, send): args = getArgs(message) try: value = int(args[0]) except: raise UserWarning("@mention Invalid stage. It has to be between -6–6!") try: stat = args[1] except: return await send(commandlist[getCommand(message)][1]) pokedata = database.loadPokedata(message.author) log = [] pokedex.raiseStage(pokedata, value, stat, log) database.savePokedata(pokedata) log = '\n'.join(log) log = log.replace('@attacker', str(pokedata)) return await send(log)
async def resetev(message, send): pokedata = database.loadPokedata(message.author) pokedata.resetEV() database.savePokedata(pokedata) return await send("Your Pokemon's EVs have been reset!")