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)
def all_enemies(): data = load_enemies() enemylist = '' for key, value in data.items(): enemylist += '**{}** \n'.format(key) return enemylist
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)
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)