コード例 #1
0
async def getTM(id):
    em = discord.Embed()
    if isinstance(id,int):
        id = int(id)
    else:
        em.description = "Please use the TM ID, and not the move name."
        return em

    if id < 10:
        em.set_author(name=f"TM0{id}")
    else:
        em.set_author(name=f"TM{id}")

    if id == 1:
        StartID = id
        EndID = StartID + (APICallsPerTMTO50)
    elif id in range(2,50):
        StartID = ((id - 1) * APICallsPerTMTO50) + 1
        EndID = StartID + (APICallsPerTMTO50)
    elif id in range(51, 92):
        StartID = APICallsPerTMTO50TOTAL + (((id - 51) * APICallsPerTMTO92)) + 1
        EndID = StartID + (APICallsPerTMTO92)
    elif id in range(93, 95):
        StartID = APICallsPerTMTO92TOTAL + (((id - 93) * APICallsPerTMTO95)) + 1
        EndID = StartID + (APICallsPerTMTO95)
    elif id in range(95, 100):
        StartID = APICallsPerTMTO95TOTAL + (((id - 95) * APICallsPerTMTO100)) + 1
        EndID = StartID + (APICallsPerTMTO100)
    else:
        em.description("This TM doesn't exist.")
        return em

    COLORS = []
    COLOROUTPUT = ''
    for x in range(StartID, EndID, 1):
        TM = pb.machine(x)
        em.add_field(name=f"{GG.cleanWordDash(TM.move.name)}", value=f"{GG.getGame(TM.version_group.name)}")

        move = pb.move(TM.move.name)
        if GG.getColorOfType(move.type.name) not in COLORS:
            COLORS.append(GG.getColorOfType(move.type.name))
    i = 0
    for x in range(i, len(COLORS), 2):
        i = x + 1
        if i != len(COLORS):
            COLORS.append(color_mixer(COLORS[x], COLORS[(i)]))
            COLOROUTPUT = color_mixer(COLORS[x], COLORS[(i)])
    COLOROUTPUT = COLOROUTPUT.replace("#", "")
    if COLOROUTPUT == "":
        COLOROUTPUT = COLORS[0]
    em.colour = int("0x" + COLOROUTPUT, 0)

    return em
コード例 #2
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
コード例 #3
0
ファイル: move.py プロジェクト: skylarr1227/PokemonCrawler
async def getMove(move):
    move = GG.cleanWordSpace(move)
    mv = pb.move(move)
    em = discord.Embed()

    em.set_author(name=GG.cleanWordDash(mv.name))
    em.description = GG.getEffectText(mv.effect_entries).replace(
        "$effect_chance", str(mv.effect_chance))
    color = GG.getColorOfType(mv.type.name)
    em.colour = int("0x" + color, 0)

    em.add_field(name="Type", value=GG.cleanWordDash(mv.type.name))
    em.add_field(name="Move Class",
                 value=GG.cleanWordDash(mv.damage_class.name))
    em.add_field(name="Power", value=str(mv.power))
    if mv.accuracy is None:
        em.add_field(name="Accuracy", value=str(mv.accuracy))
    else:
        em.add_field(name="Accuracy", value=str(mv.accuracy) + "%")
    em.add_field(name="PP", value=str(mv.pp))
    if mv.priority > 1:
        em.add_field(name=f"Priority", value=f"+{mv.priority}")
    elif mv.priority < 0:
        em.add_field(name=f"Priority", value=f"{mv.priority}")
    else:
        em.add_field(name="Priority", value="Normal")

    if mv.meta.crit_rate > 0:
        em.add_field(name="Crit Rate", value=f"{mv.meta.crit_rate}%")
    if mv.meta.drain > 0:
        em.add_field(name="Drain", value=f"{mv.meta.drain}%")
    if mv.meta.flinch_chance > 0:
        em.add_field(name="Flinch Chance", value=f"{mv.meta.flinch_chance}%")
    if mv.meta.healing > 0:
        em.add_field(name="Healing", value=f"{mv.meta.healing}%")
    if mv.meta.max_hits is not None:
        em.add_field(name="Number of Hits",
                     value=f"{mv.meta.min_hits}-{mv.meta.max_hits}")
    if mv.meta.max_turns is not None:
        em.add_field(name="Number of Turns",
                     value=f"{mv.meta.min_turns}-{mv.meta.max_turns}")

    if GG.cleanWordDash(mv.meta.ailment.name) != "None":
        em.add_field(name="Ailment",
                     value=GG.cleanWordDash(mv.meta.ailment.name))
        if mv.damage_class.name == "status":
            em.add_field(name="Ailment Chance", value=f"100%")
        else:
            em.add_field(name="Ailment Chance",
                         value=f"{str(mv.meta.ailment_chance)}%")

    target = pb.move_target(mv.target.name)
    em.add_field(name="Targets",
                 value=GG.getDescriptionText(target.descriptions),
                 inline=False)

    return em
コード例 #4
0
ファイル: type.py プロジェクト: skylarr1227/PokemonCrawler
async def getType(type_):
    ty = pb.type_(GG.cleanWordSpace(type_))
    em = discord.Embed()
    name = GG.getNames(ty.names)
    em.set_author(name=name)
    color = GG.getColorOfType(name.lower())
    em.colour = int("0x" + color, 0)

    em.add_field(name="Take Damage:", value="\u200b", inline=False)
    NDF = ""
    for y in ty.damage_relations.no_damage_from:
        NDF += f"{GG.cleanWordDash(y['name'])}\n"
    if NDF == "":
        NDF = "-"
    em.add_field(name="No Effect (0%)", value=NDF)

    HDF = ""
    for y in ty.damage_relations.half_damage_from:
        HDF += f"{GG.cleanWordDash(y['name'])}\n"
    if HDF == "":
        HDF = "-"
    em.add_field(name="Not Very Effective (50%)", value=HDF)

    DDF = ""
    for y in ty.damage_relations.double_damage_from:
        DDF += f"{GG.cleanWordDash(y['name'])}\n"
    if DDF == "":
        DDF = "-"
    em.add_field(name="Super-Effective (200%)", value=DDF)

    em.add_field(name="Deal Damage:", value="\u200b", inline=False)
    NDT = ""
    for y in ty.damage_relations.no_damage_to:
        NDT += f"{GG.cleanWordDash(y['name'])}\n"
    if NDT == "":
        NDT = "-"
    em.add_field(name="No Effect (0%)", value=NDT)

    HDT = ""
    for y in ty.damage_relations.half_damage_to:
        HDT += f"{GG.cleanWordDash(y['name'])}\n"
    if HDT == "":
        HDT = "-"
    em.add_field(name="Not Very Effective (50%)", value=HDT)

    DDT = ""
    for y in ty.damage_relations.double_damage_to:
        DDT += f"{GG.cleanWordDash(y['name'])}\n"
    if DDT == "":
        DDT = "-"
    em.add_field(name="Super-Effective (200%)", value=DDT)

    return em
コード例 #5
0
ファイル: type.py プロジェクト: skylarr1227/PokemonCrawler
async def getStrength(type_):
    ty = pb.type_(GG.cleanWordSpace(type_))
    em = discord.Embed()
    name = GG.getNames(ty.names)
    em.set_author(name=name)
    color = GG.getColorOfType(name.lower())
    em.colour = int("0x" + color, 0)

    DDT = ""
    for y in ty.damage_relations.double_damage_to:
        DDT += f"{GG.cleanWordDash(y['name'])}\n"
    if DDT == "":
        DDT = "-"
    em.add_field(name="Strong against:", value=DDT)
    NDF = ""
    for y in ty.damage_relations.no_damage_from:
        NDF += f"{GG.cleanWordDash(y['name'])}\n"
    if NDF == "":
        NDF = "-"
    em.add_field(name="Take no damage from:", value=NDF)

    return em
コード例 #6
0
ファイル: type.py プロジェクト: skylarr1227/PokemonCrawler
async def getMatchup(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))
    em.set_thumbnail(url="http://play.pokemonshowdown.com/sprites/xyani/" + pkmn.name.lower() + ".gif")

    types = pkmn.types
    if len(types) == 2:
        type = GG.cleanWordDash(types[1].type.name)
        color = GG.getColorOfType(type.lower())
    else:
        type = GG.cleanWordDash(types[0].type.name)
        color = GG.getColorOfType(type.lower())
    em.colour = int("0x" + color, 0)

    DNB = []
    USEDTYPES = []

    WT1 = []
    IT1 = []
    RT1 = []

    WT2 = []
    IT2 = []
    RT2 = []

    WT = []
    IT = []
    RT = []

    if len(types) == 2:
        type1_ = pb.type_(GG.cleanWordSpace(types[0].type.name))
        for y in type1_.damage_relations.double_damage_from:
            WT1.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type1_.damage_relations.no_damage_from:
            IT1.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type1_.damage_relations.half_damage_from:
            RT1.append(f"{GG.cleanWordDash(y['name'])}")
        type2_ = pb.type_(GG.cleanWordSpace(types[1].type.name))
        for y in type2_.damage_relations.double_damage_from:
            WT2.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type2_.damage_relations.no_damage_from:
            IT2.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type2_.damage_relations.half_damage_from:
            RT2.append(f"{GG.cleanWordDash(y['name'])}")
        await doubleType(DNB, IT, IT1, IT2, RT, RT1, RT2, USEDTYPES, WT, WT1, WT2)
    else:
        type_ = pb.type_(GG.cleanWordSpace(types[0].type.name))
        for y in type_.damage_relations.double_damage_from:
            WT1.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type_.damage_relations.no_damage_from:
            IT1.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type_.damage_relations.half_damage_from:
            RT1.append(f"{GG.cleanWordDash(y['name'])}")
        await singleType(IT,RT,WT,IT1,RT1,WT1,USEDTYPES)

    for x in GG.TYPES:
        if x not in USEDTYPES:
            DNB.append('{"type":"' + GG.cleanWordDash(x) + '","effectiveness":"1x"}')

    DNBString = ""
    for x in DNB:
        x = json.loads(x)
        DNBString += f"{x['type']}: {x['effectiveness']}\n"

    WTString = ""
    for x in WT:
        x = json.loads(x)
        WTString += f"{x['type']}: {x['effectiveness']}\n"
    if WTString == "":
        WTString = "\u200b"

    ITString = ""
    for x in IT:
        x = json.loads(x)
        ITString += f"{x['type']}: {x['effectiveness']}\n"
    if ITString == "":
        ITString = "\u200b"

    RTString = ""
    for x in RT:
        x = json.loads(x)
        RTString += f"{x['type']}: {x['effectiveness']}\n"
    if RTString == "":
        RTString = "\u200b"

    em.add_field(name="Damaged normally by", value=DNBString)
    em.add_field(name="Weak to", value=WTString)
    em.add_field(name="Immune to", value=ITString)
    em.add_field(name="Resistant to", value=RTString)

    return em
コード例 #7
0
async def getPokemon(pokemon):
    pkmn = ""
    if isinstance(pokemon, str):
        pkmn = pb.pokemon(pokemon.lower().replace("'", ""))
    if isinstance(pokemon, int):
        pkmn = pb.pokemon(pokemon)
    em = discord.Embed()

    id = pkmn.id
    spriteUrl = pkmn.sprites.front_default
    spriteUrlShiny = pkmn.sprites.front_shiny
    spriteUrlFemale = pkmn.sprites.front_female
    spriteUrlFemaleShiny = pkmn.sprites.front_shiny_female

    em.set_author(name=GG.cleanWordDash(pkmn.name))
    em.set_thumbnail(url="http://play.pokemonshowdown.com/sprites/xyani/" +
                     pkmn.name.lower() + ".gif")

    abilities = pkmn.abilities
    if len(abilities) == 3:
        hiddenAbility = GG.cleanWordDash(abilities[0].ability.name)
        ability = GG.cleanWordDash(abilities[1].ability.name)
        ability2 = GG.cleanWordDash(abilities[2].ability.name)
    elif len(abilities) == 2:
        hiddenAbility = GG.cleanWordDash(abilities[0].ability.name)
        ability = GG.cleanWordDash(abilities[1].ability.name)
        ability2 = None
    else:
        hiddenAbility = None
        ability = GG.cleanWordDash(abilities[0].ability.name)
        ability2 = None

    speed = pkmn.stats[0].base_stat
    speedEffort = pkmn.stats[0].effort
    specialDefense = pkmn.stats[1].base_stat
    specialDefenseEffort = pkmn.stats[1].effort
    specialAttack = pkmn.stats[2].base_stat
    specialAttackEffort = pkmn.stats[2].effort
    defense = pkmn.stats[3].base_stat
    defenseEffort = pkmn.stats[3].effort
    attack = pkmn.stats[4].base_stat
    attackEffort = pkmn.stats[4].effort
    hp = pkmn.stats[5].base_stat
    hpEffort = pkmn.stats[5].effort

    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())

    height = pkmn.height
    weight = pkmn.weight

    getSpecieName = pkmn.species.url.replace(
        "http://pokeapi.co/api/v2/pokemon-species/", "")
    species = pb.pokemon_species(getSpecieName)
    eggGroups = ""
    for x in species.egg_groups:
        eggGroups += f"{GG.cleanWordDash(x.name)}\n"

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

    em.add_field(name="National Dex #", value=id)

    if ability2 is not None:
        em.add_field(name="Ability", value=ability)
        em.add_field(name="Ability", value=ability2)
    else:
        em.add_field(name="Ability", value=ability)
    if hiddenAbility is not None:
        em.add_field(name="Hidden Ability", value=hiddenAbility)

    if type2 is not None:
        em.add_field(name="Type", value=f"{type}/{type2}")
    else:
        em.add_field(name="Type", value=type)

    stats = f"HP: **{hp}**\nAttack: **{attack}**\nDefense: **{defense}**\nSp.Atk: **{specialAttack}**\nSp.Def: **{specialDefense}**\nSpeed: **{speed}**\nTotal: **{int(speed) + int(specialDefense) + int(specialAttack) + int(defense) + int(attack) + int(hp)} ** "
    em.add_field(
        name="Height",
        value=f"{round(int(height) * 3.937, 1)}\"")  # decimeters to inches
    em.add_field(
        name="Weight",
        value=f"{round(int(weight) * 0.2205, 2)} lbs")  # hectograms to pounds
    em.add_field(name="Egg Groups", value=eggGroups)
    if hpEffort != 0:
        em.add_field(name="EV Gained", value=f"HP: {hpEffort}")
    if attackEffort != 0:
        em.add_field(name="EV Gained", value=f"Attack: {attackEffort}")
    if defenseEffort != 0:
        em.add_field(name="EV Gained", value=f"Defense: {defenseEffort}")
    if specialAttackEffort != 0:
        em.add_field(name="EV Gained", value=f"Sp.Atk: {specialAttackEffort}")
    if specialDefenseEffort != 0:
        em.add_field(name="EV Gained", value=f"Sp.Def: {specialDefenseEffort}")
    if speedEffort != 0:
        em.add_field(name="EV Gained", value=f"Speed: {speedEffort}")

    em.add_field(name="Base Stats", value=stats, inline=False)
    em.colour = int("0x" + color, 0)

    return em
コード例 #8
0
ファイル: tester.py プロジェクト: skylarr1227/PokemonCrawler
def getWeakness(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))
    em.set_thumbnail(url="http://play.pokemonshowdown.com/sprites/xyani/" + pkmn.name.lower() + ".gif")

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

    DNB = []
    USEDTYPES = []

    WT1 = []
    IT1 = []
    RT1 = []

    WT2 = []
    IT2 = []
    RT2 = []

    WT = []
    IT = []
    RT = []

    if len(types) == 2:
        type1_ = pb.type_(GG.cleanWordSpace(types[0].type.name))
        for y in type1_.damage_relations.double_damage_from:
            WT1.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type1_.damage_relations.no_damage_from:
            IT1.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type1_.damage_relations.half_damage_from:
            RT1.append(f"{GG.cleanWordDash(y['name'])}")
        type2_ = pb.type_(GG.cleanWordSpace(types[1].type.name))
        for y in type2_.damage_relations.double_damage_from:
            WT2.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type2_.damage_relations.no_damage_from:
            IT2.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type2_.damage_relations.half_damage_from:
            RT2.append(f"{GG.cleanWordDash(y['name'])}")
    else:
        type = pb.type_(GG.cleanWordSpace(type.name))
        for y in type.damage_relations.double_damage_from:
            WT1.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type.damage_relations.no_damage_from:
            IT1.append(f"{GG.cleanWordDash(y['name'])}")
        for y in type.damage_relations.half_damage_from:
            RT1.append(f"{GG.cleanWordDash(y['name'])}")

    for x in WT1:
        if x in WT2:
            WT.append('{"type":"' + x + '","effectiveness":"4x"}')
            USEDTYPES.append(x.lower())
        else:
            if x in RT2:
                DNB.append('{"type":"' + x + '","effectiveness":"1x"}')
                USEDTYPES.append(x.lower())
            else:
                WT.append('{"type":"' + x + '","effectiveness":"2x"}')
                USEDTYPES.append(x.lower())

    for x in WT2:
        if x not in WT1 and x not in RT1 and x not in IT1 and x not in IT2:
            WT.append('{"type":"' + x + '","effectiveness":"2x"}')
            USEDTYPES.append(x.lower())

    for x in IT1:
        IT.append('{"type":"' + x + '","effectiveness":"0x"}')
        USEDTYPES.append(x.lower())
    for x in IT2:
        IT.append('{"type":"' + x + '","effectiveness":"0x"}')
        USEDTYPES.append(x.lower())

    for x in RT1:
        if x in RT2:
            RT.append('{"type":"' + x + '","effectiveness":"0.25x"}')
            USEDTYPES.append(x.lower())
        else:
            if x in WT2:
                DNB.append('{"type":"' + x + '","effectiveness":"1x"}')
                USEDTYPES.append(x.lower())
            else:
                RT.append('{"type":"' + x + '","effectiveness":"0.5x"}')
                USEDTYPES.append(x.lower())

    for x in RT2:
        if x not in RT1 and x not in WT1 and x not in IT1 and x not in IT2:
            RT.append('{"type":"' + x + '","effectiveness":"0.5x"}')
            USEDTYPES.append(x.lower())

    for x in GG.TYPES:
        if x not in USEDTYPES:
            DNB.append('{"type":"' + GG.cleanWordDash(x) + '","effectiveness":"1x"}')

    DNBString = ""
    for x in DNB:
        x = json.loads(x)
        DNBString += f"{x['type']}: {x['effectiveness']}\n"

    WTString = ""
    for x in WT:
        x = json.loads(x)
        WTString += f"{x['type']}: {x['effectiveness']}\n"

    ITString = ""
    for x in IT:
        x = json.loads(x)
        ITString += f"{x['type']}: {x['effectiveness']}\n"

    RTString = ""
    for x in RT:
        x = json.loads(x)
        RTString += f"{x['type']}: {x['effectiveness']}\n"

    em.add_field(name="Damaged normally by", value=DNBString)
    em.add_field(name="Weak to", value=WTString)
    em.add_field(name="Immune to", value=ITString)
    em.add_field(name="Resistant to", value=RTString)

    return em