コード例 #1
0
def ingame_enemy_info(enemy):
    data = load_enemies()
    enemydata = data[enemy.enemytype]
    endstring = ''

    endstring += 'Level: {} \n'.format(enemy.level)

    endstring += 'Health: '
    maxhealth = int(enemydata['health'][0]) + int(
        enemydata['health'][1]) * int(enemy.level)
    endstring += '{}/{} \n \n'.format(enemy.health, maxhealth)

    for stat, value in enemy.stats.items():
        datastat = enemydata['stats'][stat]
        datastat = int(datastat[0]) + int(datastat[1]) * int(enemy.level)
        if datastat != value:
            pass
        else:
            endstring += '{}: {} \n'.format(stat, value)

    if len(enemy.effects) > 0:
        endstring += '\n Effects: \n'
        for ef, dur in enemy.effects:
            endstring += '{} ({} turns left)'.format(ef, dur)

    return form.basic(enemy.name, endstring)
コード例 #2
0
def all_enemies():
    data = load_enemies()
    enemylist = ''
    for key, value in data.items():
        enemylist += '**{}** \n'.format(key)

    return enemylist
コード例 #3
0
def enemy_info(enemy):
    data = load_enemies()

    if enemy not in data:
        return None

    enemydata = data[enemy]
    endstring = ''

    endstring += enemydata['description'] + '\n\n'
    endstring += 'Health: '
    endstring += '{0[0]} (+ {0[1]} per level) \n\n'.format(enemydata['health'])
    for key, value in enemydata['stats'].items():
        endstring += '{0}: {1[0]} (+ {1[1]} per level) \n'.format(key, value)

    endstring += '\n Abilities: \n'
    for ability in enemydata['abilities']:
        endstring += '{} \n'.format(ability)

    return form.basic(enemy, endstring)
コード例 #4
0
async def info(par, player, cha):
    if len(par) < 2:
        await cha.send(embed=form.info())
        return

    if par[1] in ['b', 'battle', 'battles']:
        if len(par) < 3:
            await cha.send(embed=form.basic('Battles', all_battles(player)))
            return
        else:
            embed = Battles.battle_info(par[2])
            await cha.send(embed=embed)
            return

    if par[1] in ['a', 'abilities', 'ability']:
        if len(par) < 3:
            await cha.send(embed=form.basic('Abilities', all_abilities(player))
                           )
            return
        else:
            embed = abilitiy_info(par[2])
            await cha.send(embed=embed)
            return

    if par[1] in ['e', 'enemy']:
        if len(par) < 3:
            await cha.send(embed=form.basic('Enemies', all_enemies()))
            return
        else:
            embed = enemy_info(par[2])
            if embed != None:
                await cha.send(embed=embed)
                return

            embed = None
            if player.status[0] == 'battle':
                battle = GET.battle(player.status[1])
                if par[2] in [en.name for en in battle.side1 + battle.side2]:
                    enemy = [
                        en for en in battle.side1 + battle.side2
                        if en.name == par[2]
                    ][0]
                    embed = ingame_enemy_info(enemy)
                else:
                    embed = form.basic(
                        'Not found',
                        'enemy not found (enemy not found in battle)')
                    return
            else:
                embed = form.basic('Not found',
                                   'enemy not found (not in battle)')
                return

            if embed != None:
                await cha.send(embed=embed)
                return
            else:
                await cha.send(embed=form.basic('Not found', 'enemy not found')
                               )
                return

    if par[1] in ['user', 'player', 'u']:
        if len(par) < 3:
            await cha.send(
                embed=form.basic('Not enough arguments', 'specify a User'))
            return
        if par[2] == 'self':
            searched_player = player
        else:
            searched_player = GET.player_by_name(par[2])
            searched_player = GET.player(searched_player)

        if searched_player is None:
            await cha.send(embed=form.basic('Not found', 'Player not found'))
            return
        else:
            await cha.send(embed=user_info(searched_player, player))
            return

    if par[1] in ['item', 'gear', 'i']:
        if len(par) < 3:
            await cha.send(embed=form.basic('Items', all_items()))
            return

        items = load_gear()
        if par[2] not in items:
            await cha.send(embed=form.basic('Not found', 'Item not found'))
            return

        await cha.send(embed=item_info(par[2]))
        return

    if par[1] in ['ef', 'effect']:
        if len(par) < 3:
            await cha.send(embed=form.basic('Effects', all_effects()))
            return

        effects = load_effects()
        if par[2] not in effects:
            await cha.send(embed=form.basic('Not found', 'Effect not found'))
            return

        await cha.send(embed=effect_info(par[2]))
        return

    if len(par) == 2:
        all_data = {}
        all_data['ef'] = load_effects()
        all_data['e'] = load_enemies()
        all_data['i'] = load_gear()
        all_data['a'] = load_abilities()
        all_data['b'] = load_battles()[1]

        all_data2 = all_data.copy()
        singular_data = {}

        for category, value in all_data2.items():
            for key, value2 in value.items():
                singular_data[key] = value2
                singular_data[key]['category'] = category

        results = []

        for key, value in singular_data.items():
            if par[1] == key:
                if len(results) < 1:
                    results.append((key, value))
                else:
                    results[0] = (key, value)
            if par[1] in key:
                results.append((key, value))

        print(results)

        if len(results) < 1:
            return

        cat = results[0][1]
        print(cat)
        cat = cat['category']
        key = results[0][0]

        par = ['info', cat, key]

        print(par)

        await info(par, player, cha)