Example #1
0
    async def pokequizset(self, ctx, poke_id):
        """ ポケモンクイズをセットするぞ! """

        msg_tmp = await ctx.send(ctx.author.mention + ' **' + poke_id +
                                 '**を確認中!ちょっとまってて...')
        try:
            pb.pokemon(poke_id)
        except:
            await msg_tmp.edit(content=ctx.author.mention + ' **' + poke_id +
                               '**は見つからなかったぞ...')
        else:
            await msg_tmp.delete()
            if len(self.poke_quiz_id) > 50:
                self.poke_quiz_id.popitem()

            quiz_id = str(random.randint(100000, 999999))
            self.poke_quiz_id[quiz_id] = [poke_id, str(ctx.author.mention)]
            embed = discord.Embed(title='ポケモンクイズID',
                                  description=ctx.author.mention +
                                  ' 次のコマンドを打つとクイズが出題できるよ!',
                                  color=random.randint(0, 0xffffff))
            embed.add_field(name='コマンド',
                            value='```/pq ' + quiz_id + '```',
                            inline=False)
            await ctx.send(embed=embed)
    def initialisePokemonIndividual():
        # Generates the default form and later on checks for other forms
        formID = random.randrange(constants.MIN_FORMID,
                                  constants.MAX_FORMID + 1)

        itemID = None if random.random(
        ) <= constants.NO_HELD_ITEM_RATE else problemHelper.initialiseItem()

        level = random.randrange(constants.MIN_LEVEL, constants.MAX_LEVEL + 1)
        shiny = random.choice([True, False])
        happiness = random.randrange(constants.MIN_HAPPINESS,
                                     constants.MAX_HAPPINESS + 1)
        natureID = random.randrange(constants.MIN_NATUREID,
                                    constants.MAX_NATUREID + 1)
        ivHP, ivAtk, ivDef, ivSpA, ivSpD, ivSpe = problemHelper.initialiseIVs()

        #Initialise EVs to Minumum ev value
        evHP, evAtk, evDef, evSpA, evSpD, evSpe = problemHelper.initialiesEVs()

        #Pokemon dependant info so references the pokemon to get relevant info
        formVarieties = pb.pokemon(formID).species.varieties
        formRand = random.randrange(0, len(formVarieties))
        formID = formVarieties[
            formRand].pokemon.id  # Update the formID into new form

        p = pb.pokemon(formID)  #Get the pokemon to reference

        #Randomly generate an ability slot
        ability = problemHelper.initialiseAbility(p)

        #Randomly generates a gender but at the correct ratio
        gender = problemHelper.initialiseGender(p)

        move1, move2, move3, move4 = problemHelper.initialiseMoves(p)

        #Check and remove move duplication
        if (move1 == move2 or move1 == move3 or move1 == move4):
            # print("Duplicate Move") #DEBUG
            move1 = None
        if (move2 == move3 or move2 == move4):
            # print("Duplicate Move") #DEBUG
            move2 = None
        if (move3 == move4):
            # print("Duplicate Move") #DEBUG
            move3 = None

        # Check for no moves
        if (move1 == None and move2 == None and move3 == None
                and move4 == None):
            move1 = p.moves[random.randrange(0, len(p.moves))].move.id

        return pokemonIndividual(formID, gender, itemID, ability, level, shiny,
                                 happiness, natureID, evHP, evAtk, evDef,
                                 evSpA, evSpD, evSpe, ivHP, ivAtk, ivDef,
                                 ivSpA, ivSpD, ivSpe, move1, move2, move3,
                                 move4)
Example #3
0
    def __init__(self, num: int):
        self.num = num
        self.form_config = FormConfig(num)

        # Look up the pokemon and species information
        self.base_pokemon = pokebase.pokemon(self.form_config.base_num)
        self.species = self.base_pokemon.species

        # Set the actual pokemon
        # Most cases will be the same as the base
        if self.num == self.form_config.base_num:
            self.pokemon = self.base_pokemon
        # Added pokemon need their form (Mega, Alolan, etc.) looked up through the specified id
        else:
            self.pokemon = pokebase.pokemon(self.form_config.id)
    def validateMoves(pc):
        moves = [pc.move1, pc.move2, pc.move3, pc.move4]
        p = pb.pokemon(pc.formID)  #Get the pokemon to reference
        for x in range(0, constants.NUMBER_OF_MOVES):
            if (moves[x] != None):
                inMoveList = False
                for i in range(0, len(p.moves)):
                    if (moves[x] == p.moves[i].move.id):
                        inMoveList = True
                if (inMoveList == False):
                    return None

        # Check for no moves
        if (pc.move1 == None and pc.move2 == None and pc.move3 == None
                and pc.move4 == None):
            return None

        # Check for move duplication #TODO: CLEAN THIS MESS UP
        if (pc.move1 != None and (pc.move1 == pc.move2 or pc.move1 == pc.move3
                                  or pc.move1 == pc.move4)):
            return None
        if (pc.move2 != None
                and (pc.move2 == pc.move3 or pc.move2 == pc.move4)):
            return None
        if (pc.move3 != None and (pc.move3 == pc.move4)):
            return None

        return pc
Example #5
0
    async def pokemon_game(self, ctx):
        """Игра “Угадай покемона„.

        Суть игры проста - нужно написать в чат имя покемона,
            изображенного в сообщении.
        """

        def message_check(m):
            return m.author.id == ctx.author.id
        
        resp = requests.get('https://pokeapi.co/api/v2/pokemon/')
        pokemons = [x['name'] for x in resp.json()['results']]

        pokemon_name = choice(pokemons)
        pokemon = pb.pokemon(pokemon_name)

        embed = discord.Embed(color=0x42f453, title='Игра “Угадай покемона„',
                    description='У вас есть 30 секунд, чтобы отгадать этого покемона.\nПишите имя латиницей.')
        embed.set_author(name=ctx.author.name, icon_url=ctx.author.avatar_url)
        embed.set_footer(text=f'{ctx.prefix}{ctx.command}')
        embed.set_image(url=f'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/{pokemon.id}.png')
        await ctx.send(embed=embed)

        try:
            msg = await self.bot.wait_for('message', check=message_check, timeout=30.0)
            if msg.content.lower() == pokemon_name:
                await ctx.send('Вы ответили верно! :cake:')
            else:
                await ctx.send('Ответ неверный. Ничего, повезет в следующий раз!')

        except asyncio.TimeoutError:
            await ctx.send(':x: Нет ответа. Ничего, повезет в следующий раз!')
Example #6
0
def index():

    pkmnNum = random.randint(1, 807)
    pkmnSprite = pb.pokemon_sprite(pkmnNum)
    pkmnName = pb.pokemon(pkmnNum)
    im = pkmnSprite.path
    pkmnImage = (im.split('/')[7])
    dex = pb.pokemon_species(pkmnNum)

    #API info sent to html page
    pkmnInfo = [
        dex.generation, pkmnName.weight, pkmnName.height, dex.habitat,
        pkmnName.types[0].type
    ]

    # Move path of cached sprite to static folder (may need to change second argument to full path based on user setup)
    os.rename(im, "/static/" + pkmnImage)

    return '''
<html>
    <head>
        <title>Pokemon</title>
    </head>
    <body>
        <center><h1 style = "font-family:'Helvetica Neue';font-size:50px;font-style:bold;">''' + str(
        pkmnName).capitalize() + '''</h1></center>
        <center><img src= "/static/''' + str(pkmnNum).capitalize(
        ) + '''.png" style="width:270px;height:270px;"></center>
        <center><p style = "font-family:'Helvetica Neue';font-size:20px;font-style:bold;">
        <br> Generation: ''' + str(pkmnInfo[0]) + '''
        <br> Weight: ''' + str(pkmnInfo[1]) + '''
        <br> Height: ''' + str(pkmnInfo[2]) + '''
        <br> Habitat: ''' + str(pkmnInfo[3]) + '''
        <br> Type: ''' + str(pkmnInfo[4]) + '''
def get_info(ID):
    try:
        pokemon = pb.pokemon(ID)
        data = {
            "Name": pokemon.name.capitalize(),
            "ID": pokemon.id,
            "Description": get_description(pokemon.name),
            "Type": pokemon.types[0].type.name.capitalize(),
            "Moves":
            [move.move.name.capitalize() for move in pokemon.moves[:4]],
            "Weight": pokemon.weight,
            "XP": pokemon.base_experience,
            "Picture": pokemon.sprites.front_default
        }
    except ValueError:
        data = {
            "Name":
            "Error",
            "ID":
            0,
            "Description":
            "Pokemon not found.",
            "Type":
            "",
            "Moves": [],
            "Weight":
            0,
            "XP":
            0,
            "Picture":
            "https://proxy.duckduckgo.com/iu/?u=https%3A%2F%2Ftse4.mm.bing.net%2Fth%3Fid%3DOIP.bbU3UEm62vuPiONlcNx09gHaHZ%26pid%3D15.1&f=1"
        }
    json_data = json.dumps(data)
    return json_data
Example #8
0
 def get_context_data(self, **kwargs):
     context = super().get_context_data(**kwargs)
     pikachu = pb.pokemon(25)
     print(pikachu)
     context['pikachu'] = pikachu
     self.set_param(context, 'pikachu')
     return context
Example #9
0
def getPokemonData(pokemon_id):
 truncateTables()
 for n in range(1,pokemon_id+1):
  p1=pokebase.pokemon(n)
  pokemon=(p1.id,p1.name,p1.weight)
  conn=getConn()
  lstRowid=pokemon_insert(conn,pokemon)
 
  for i in range(0,len(p1.moves)):
   try:
    move=p1.moves[i].move.name
    accuracy=pokebase.move(move).accuracy
    if (accuracy==None):
     accuracy=0
    type=pokebase.move(move).type.name
    print("pokemon name:"+p1.name)
    print("pokemon id:"+str(p1.id))
    print("move name :"+move)
    print("move id:"+str(p1.moves[i].move.id))
    print ("type="+type)
    pokemon_move=(move,p1.id,p1.moves[i].move.id,accuracy,pokebase.move(move).type.id)
    conn=getConn()
    lstRowid=pokemonMove_insert(conn,pokemon_move)
   except:
    continue 
  
 
  
  for i in range(0,len(p1.types)):
   print("pokemon type:"+p1.types[i].type.name)
   pokemon_type=(p1.types[i].type.name,p1.id,p1.types[i].type.id)
   conn=getConn()
   lstRowid=pokemonType_insert(conn,pokemon_type)
   print("pokemon weight:"+str(p1.weight))
Example #10
0
def findPokemon(num):
    poke = pokebase.pokemon(num)
    info = {}
    info["Name"] = poke
    info["Height"] = poke.height
    info["Sprite"] = pokebase.pokemon_sprite(num).path
    return info
Example #11
0
def get_pokemon_by_id(poke_id):
    pokemon = pb.pokemon(poke_id)
    return {
        "name": pokemon.name,
        "sprite_url": pokemon.sprites.front_default,
        "poke_id": pokemon.id
    }
Example #12
0
def profile():
    if 'user' in session:
        raw_pokemon = db.getPokemon(session['user'])
        pokemon = []
        #list of all the pokemon you've encountered and info about them
        for key in raw_pokemon:
            pokedata = pokebase.pokemon(int(key) + 1)
            this_pokemon = {}
            this_pokemon['sprite'] = pokedata.sprites.front_default.encode(
                'ascii', 'ignore')
            this_pokemon['id'] = pokedata.id
            this_pokemon['name'] = pokedata.name.encode('ascii',
                                                        'ignore').title()
            this_pokemon['type1'] = pokedata.types[0].type.name.title()
            if len(pokedata.types) > 1:
                #type1: this pokemon has been caught!
                #type2: encountered but not caught
                this_pokemon['type2'] = pokedata.types[1].type.name.title()
            else:
                this_pokemon['type2'] = ''
            if raw_pokemon[key] == '1':
                this_pokemon['caught'] = False
            else:
                this_pokemon['caught'] = True
            pokemon.append(this_pokemon)
        return render_template('profile.html',
                               title='Profile',
                               pokemon=pokemon,
                               log=True)
    else:
        return redirect('/login')
Example #13
0
    def add_pokemon(self, list_to_add):
        print len(self.all())
        if self.all() != 0:
            for pokemon in list_to_add:
                print pokemon
                name = pokemon[1]
                api_url = pokemon[0]
                if len(self.filter(name=name)) != 0:
                    print 'pokemon already exist'
                    continue
                # this pulls the pokemon object from the pokebase
                pokeData = pb.pokemon(name)
                pk_id = pokeData.id
                pk_height = float(pokeData.height) * 0.1
                pk_weight = float(pokeData.weight) * 0.1
                types = pokeData.types  # Types is a list including all the types for the pokemon
                print types

                newPokemon = self.create(pk_id=pk_id,
                                         name=name,
                                         api_url=api_url,
                                         pk_height=pk_height,
                                         pk_weight=pk_weight)
                for pk_type in types:
                    name = pk_type.type
                    type2add = PokeType.objects.get(name=name)
                    newPokemon.pk_type.add(type2add)
                print newPokemon.pk_type.all()
Example #14
0
async def getPokemonEvolution(pokemon):
    pkmn = ""
    if isinstance(pokemon, str):
        pkmn = pb.pokemon(pokemon.lower().replace("'", ""))
    if isinstance(pokemon, int):
        pkmn = pb.pokemon(pokemon)
    em = discord.Embed()
    em.set_author(name=GG.cleanWordDash(pkmn.name))

    spriteUrl = pkmn.sprites.front_default
    types = pkmn.types
    if len(types) == 2:
        type = GG.cleanWordDash(types[1].type.name)
        type2 = GG.cleanWordDash(types[0].type.name)
        color = GG.getColorOfType(type.lower())
    else:
        type = GG.cleanWordDash(types[0].type.name)
        type2 = None
        color = GG.getColorOfType(type.lower())

    getSpecieName = pkmn.species.url.replace(
        "http://pokeapi.co/api/v2/pokemon-species/", "")
    species = pb.pokemon_species(getSpecieName)

    flavorText = GG.getFlavorText(species.flavor_text_entries)
    em.description = flavorText

    getId = re.search(r"/([0-9]*)/$",
                      str(species.evolution_chain.url) + "/").group().replace(
                          "/", "")
    evolutionChain = pb.evolution_chain(getId)

    start, chain = getEvolution(evolutionChain.chain)
    if chain != f"{start}\n":
        if chain.startswith(f"{start}\n"):
            chain = chain.replace(f"{start}\n", "", 1)

    em.set_thumbnail(url=spriteUrl)
    if chain != "":
        em.add_field(name="Evolution Chain", value=chain, inline=False)
    else:
        em.add_field(name="Evolution Chain",
                     value="This Pokémon has no evolution chain.")

    em.colour = int("0x" + color, 0)

    return em
async def randomMon(ctx):
    pokemonID = random.randint(1, 807)
    pokemon = pb.pokemon(pokemonID)
    typing = str(pokemon.types[0].type)
    if len(pokemon.types) > 1:
        typing += f'/{pokemon.types[1].type}'
    await ctx.send(
        f'https://pokeres.bastionbot.org/images/pokemon/{pokemonID}.png' +
        f'\n{str(pokemon)} \n type: {typing}')
Example #16
0
def get_pokemons(limit=10):
    r = requests.get(
        'https://pokeapi.co/api/v2/pokemon?limit={}'.format(limit))
    if r.status_code != 200:
        return
    pokemons = r.json()['results']
    for pokemon in pokemons:
        pokemon['image'] = pb.pokemon(pokemon['name']).sprites.front_default
    return pokemons
Example #17
0
def pokemon():
    PKMN = random.randint(1, 898)
    img = pb.SpriteResource('pokemon', PKMN)
    pkmnName = (pb.pokemon(PKMN).name).upper()
    client = mqtt.Client("Richi")
    client.connect(BROKER, 1883, 60)
    client.publish(TOPICO, img.url)
    messagebox.showinfo(TOPICO,
                        "Se ah enviado el Pokemon: " + pkmnName + " al topico")
Example #18
0
 def _extract_pokemon(self, message):
     name = _extract_name(message, self.pokemon_names)
     if not name:
         return None
     try:
         return pokemon(name)
     except ValueError:
         LOG.error("Couldn't find pokemon with name: '" + str(name))
         raise
Example #19
0
 def __init__(self, id, level):
     self.id = id
     self.level = level
     self.iv = random.randint(0, 31)
     self.hp_ev = 0
     self.attack_ev = 0
     self.defense_ev = 0
     self.sp_attack_ev = 0
     self.sp_defense_ev = 0
     self.speed_ev = 50
     self.total_ev = self.hp_ev + self.attack_ev + self.defense_ev + self.sp_attack_ev + self.defense_ev + self.speed_ev
     self.pokemon = []
     try:
         with open('assets/Pokemon/JSON/' + str(id) + '.json', mode='rb') as f:
             try:
                 self.pokemon = json.load(f)
             except Exception as e:
                 print(e)
             pass
     except IOError:
         pokemon = pb.pokemon(id)
         with open('assets/Pokemon/JSON/' + str(id) + '.json', 'a') as f:
             f.write('[')
             json.dump(pokemon.data(), f)
             f.write(']')
         with open('assets/Pokemon/JSON/' + str(id) + '.json', mode='rb') as f:
             try:
                 self.pokemon = json.load(f)
             except Exception as e:
                 print(e)
             pass
     self.stat = {'speed': 0,
                  'special-defense': 1,
                  'special-attack': 2,
                  'defense': 3,
                  'attack': 4,
                  'hp': 5}
     self.name = self.pokemon[0]['name'].capitalize()
     self.max_hp = math.floor((2 * self.get_stat('hp', 'base_stat') + self.iv + (0 / 4) * level) / 100 + level + 10)
     self.current_hp = self.max_hp
     self.attack = math.floor((2 * self.get_stat('attack', 'base_stat') + self.iv + (self.attack_ev / 4) * level) / 100 + 5)  # * nature
     self.defense = math.floor((2 * self.get_stat('defense', 'base_stat') + self.iv + (self.defense_ev / 4) * level) / 100 + 5)  # * nature
     self.speed = math.floor((2 * self.get_stat('speed', 'base_stat') + self.iv + (self.speed_ev / 4) * level) / 100 + 5)  # * nature
     self.sp_attack = math.floor((2 * self.get_stat('special-attack', 'base_stat') + self.iv + (self.sp_attack_ev / 4) * level) / 100 + 5)  # * nature
     self.sp_defense = math.floor((2 * self.get_stat('special-defense', 'base_stat') + self.iv + (self.sp_defense_ev / 4) * level) / 100 + 5)  # * nature
     self.mod_values = [0, 0, 0, 0, 0]
     self.moves = []
     print(self.name, self.speed)
     for move in self.pokemon[0]['moves']:
         i = 0
         for version in move['version_group_details']:
             if version['version_group']['name'] == "emerald":
                 if move['version_group_details'][i]['move_learn_method']['name'] == 'level-up':
                     if move['version_group_details'][i]['level_learned_at'] <= self.level:
                         self.moves.append(Move(move['move']['name']))
             i += 1
def get_pokemon_data(name):
    try:
        result = local_pokemon_cache[name]
    except KeyError as e:
        local_pokemon_cache[name] = pb.pokemon(name)
        result = local_pokemon_cache[name]
    except Exception as e:
        raise e

    return result
Example #21
0
 def get_context_data(self, **kwargs):
     context = super(IndexView, self).get_context_data(**kwargs)
     self.index = random.randint(1, 808)
     pokemon = pb.pokemon(self.index)
     context['pokemon'] = pokemon
     individual_range = range(0, 31)
     context['individual_range'] = individual_range
     effort_range = range(0, 252, 4)
     context['effort_range'] = effort_range
     return context
Example #22
0
 def add_meta(self):
     temp = poke.pokemon(self.species)
     self.sprite = temp.sprites.front_default
     pic_string = f"https://assets.pokemon.com/assets/cms2/img/pokedex/full/{self.number.zfill(3)}.png"
     self.main_pic = pic_string
     temp2 = poke.pokemon_species(self.species)
     self.evolve_chain = temp2.evolution_chain.id
     print(f"pic: {self.sprite}")
     print(f"evolve num: {self.evolve_chain}")
     print(f"evolve num: {self.main_pic}")
Example #23
0
    def initail(self):

        self.dex = pb.NamedAPIResource('pokedex', 'kanto')

        #for the individual pokemon
        self.dict = self.dex.pokemon_entries
        num = len(self.dict)
        file = open('pokemon_entry.csv', 'w')
        file.write('name\n')
        for x in range(0, num):
            temp = (str(self.dict[x]).split("'name': '", 1)[1])
            for j in str(temp):

                if j == "'":
                    file.write('\n')
                    break

                else:
                    file.write(j)
        file.close()
        with open('pokemon_entry.csv') as csvfile:
            reader = csv.DictReader(csvfile)
            file = open('pokemon_dict.csv', 'w')
            file.write('name,' + 'height,' + 'weight,' + 'type1,' + 'type2,' +
                       'type3,' + 'type4,' + 'url\n')
            for z in reader:
                print('loading:' + z['name'])
                temp = pb.pokemon(z['name'])
                file.write(str(z['name']) + ',')
                file.write(str(temp.height) + ',')
                file.write(str(temp.weight) + ',')
                for j in range(0, 4):
                    try:
                        write = str(temp.types[j]).split("'name': '", 1)[1]
                        for j in str(write):

                            if j == "'":
                                file.write(',')
                                break

                            else:
                                file.write(j)
                    except:
                        file.write('0,')
                writeURL = str(temp.sprites).split("'front_default': '", 1)[1]
                for j in str(writeURL):

                    if j == "'":

                        break

                    else:
                        file.write(j)
                file.write('\n')
            print("loading Pokemons complete!")
Example #24
0
 def refresh_base(self):
     p_stats = poke.pokemon(self.number).stats
     self.b_hp = p_stats[0].base_stat
     self.b_defense = p_stats[1].base_stat
     self.b_attack = p_stats[2].base_stat
     self.b_s_attack = p_stats[3].base_stat
     self.b_s_defense = p_stats[4].base_stat
     self.b_speed = p_stats[5].base_stat
     print(f"hp: {self.b_hp}")
     print(f"def: {self.b_defense}")
     print(f"att: {self.b_attack}")
 def pokemonMovePower(move, pokemonAtk, pokemonDef):
     if (move == None):
         return 0
     elif (pb.move(move).damage_class.id == pb.move_damage_class(1).id):
         return 0
     else:
         # Set the base power
         moveBasePower = pb.move(move).power
         # If the move has variable power its base power is None
         if (moveBasePower == None):
             return 0
         #Get Move Type
         moveType = pb.move(move).type
         # Apply STAB
         pokemonAtkTypes = pb.pokemon(pokemonAtk.formID).types
         for j in range(0, len(pokemonAtkTypes)):
             if (moveType.id == pokemonAtkTypes[j].type.id):
                 moveBasePower *= 1.5
         # Check for Weakness/Resistance against each type
         pokemonDefTypes = pb.pokemon(pokemonDef.formID).types
         for j in range(0, len(pokemonDefTypes)):
             #Check Move effectivness against the opponent type
             #No Effect
             noDamageTo = moveType.damage_relations.no_damage_to
             for k in range(0, len(noDamageTo)):
                 if (noDamageTo[k]['name'] == pokemonDefTypes[j].type.name):
                     moveBasePower *= 0
             #Half Damage
             halfDamageTo = moveType.damage_relations.half_damage_to
             for k in range(0, len(halfDamageTo)):
                 if (halfDamageTo[k]['name'] == pokemonDefTypes[j].type.name
                     ):
                     moveBasePower *= 0.5
             #Double Damage
             doubleDamageTo = moveType.damage_relations.double_damage_to
             for k in range(0, len(doubleDamageTo)):
                 if (doubleDamageTo[k]['name'] ==
                         pokemonDefTypes[j].type.name):
                     moveBasePower *= 2
         #Return the final base power
         return moveBasePower
Example #26
0
def load_pokemon():
    """Load unique Pokemon creatures for the battle simulator """
    ability = Ability.objects.first()
    nature = Nature.objects.get(name='quirky')
    for species in Species.objects.all():
        pokemon = Pokemon.objects.create(species=species,
                                         ability=ability,
                                         nature=nature)
        for move in pb.pokemon(species.name).moves:
            if is_selected(move):
                move_name = move.move.name
                pokemon.moves.add(Move.objects.get(name=move_name))
Example #27
0
def create_pokemon(name_or_id):
    if name_or_id.isnumeric():
        name_or_id = int(name_or_id)
    elif type(name_or_id) is str and len(name_or_id) > 0:
        name_or_id = name_or_id.lower()
    else:
        return -1
    pokemon = pb.pokemon(name_or_id)
    try:
        test = pokemon.base_experience
    except:
        return -1
    return pokemon
Example #28
0
def capture():
    if 'user' in session:
        pokemon_id = session['encounter']
        pokemon_id = int(pokemon_id)
        pokemon = pokebase.pokemon(pokemon_id)
        db.addPokemon(session['user'], pokemon_id - 1,
                      False)  #false- pokemon has been encountered, not caught
        return render_template('capture.html',
                               sprite=pokemon.sprites.front_default,
                               name=pokemon.name,
                               title=pokemon.name,
                               log=True)
    return redirect('/')
Example #29
0
    async def stats(self, ctx, name: str):
        try:
            pokemon = pb.pokemon(name.lower())

            embed = discord.Embed(title=f'Base stats for {pokemon.name}',
                                  colour=self.bot.main_colour)

            for stat in pokemon.stats:
                embed.add_field(name=stat.stat.name, value=stat.base_stat)

            await ctx.send(embed=embed)
        except AttributeError:
            await ctx.send(f'The pokemon `{name}` doesn\'t exist!')
            return
Example #30
0
def load_encounter():
    #spawn pokemon based on rarity
    rarity_list = [1] * 10 + [2] * 9 + [3] * 8 + [4] * 7 + [5] * 6 + [
        6
    ] * 5 + [7] * 4 + [8] * 3 + [9] * 2 + [10]
    rarity = random.choice(rarity_list)
    pokemon_choice = db.getPokemonWithRarity(rarity)
    pokemon = pokebase.pokemon(pokemon_choice[0])
    pokedict = {}
    pokedict['name'] = pokemon.name.encode('ascii', 'ignore')
    pokedict['sprite'] = pokemon.sprites.front_default.encode(
        'ascii', 'ignore')
    pokedict['id'] = pokemon.id
    return pokedict.__str__()
Example #31
0
 def __init__(self, command_line_args):
     self.command_line_args = command_line_args
     self.quick_look_up = pb.pokemon(command_line_args.name)