|
|
|
@ -6,7 +6,9 @@ from d4dj_utils.master.card_master import CardMaster |
|
|
|
|
from discord.ext import commands |
|
|
|
|
|
|
|
|
|
from main import masters |
|
|
|
|
from miyu_bot.commands.common.emoji import rarity_emoji_ids |
|
|
|
|
from miyu_bot.commands.common.emoji import rarity_emoji_ids, attribute_emoji_ids_by_attribute_id, \ |
|
|
|
|
unit_emoji_ids_by_unit_id, parameter_bonus_emoji_ids_by_parameter_id |
|
|
|
|
from miyu_bot.commands.common.formatting import format_info |
|
|
|
|
from miyu_bot.commands.common.master_asset_manager import hash_master |
|
|
|
|
from miyu_bot.commands.common.reaction_message import run_tabbed_message |
|
|
|
|
|
|
|
|
@ -28,11 +30,15 @@ class Card(commands.Cog): |
|
|
|
|
self.logger.info(f'Searching for card "{arg}".') |
|
|
|
|
card = masters.cards.get(arg, ctx) |
|
|
|
|
|
|
|
|
|
embeds = [self.get_card_embed(card, 0), self.get_card_embed(card, 1)] |
|
|
|
|
asyncio.ensure_future(run_tabbed_message(ctx, self.rarity_emoji, embeds, starting_index=1)) |
|
|
|
|
if card.rarity_id >= 3: |
|
|
|
|
embeds = [self.get_card_embed(card, 0), self.get_card_embed(card, 1)] |
|
|
|
|
asyncio.ensure_future(run_tabbed_message(ctx, self.rarity_emoji, embeds, starting_index=1)) |
|
|
|
|
else: |
|
|
|
|
embeds = [self.get_card_embed(card, 0)] |
|
|
|
|
asyncio.ensure_future(run_tabbed_message(ctx, self.rarity_emoji[:1], embeds, starting_index=0)) |
|
|
|
|
|
|
|
|
|
def get_card_embed(self, card: CardMaster, limit_break): |
|
|
|
|
embed = discord.Embed(title=f'{card.rarity_id}★ {card.name} {card.character.full_name_english}') |
|
|
|
|
embed = discord.Embed(title=self.format_card_name(card)) |
|
|
|
|
|
|
|
|
|
card_hash = hash_master(card) |
|
|
|
|
icon_path = card.icon_path(limit_break) |
|
|
|
@ -43,8 +49,29 @@ class Card(commands.Cog): |
|
|
|
|
embed.set_thumbnail(url=thumb_url) |
|
|
|
|
embed.set_image(url=art_url) |
|
|
|
|
|
|
|
|
|
embed.add_field(name='Info', |
|
|
|
|
value=format_info({ |
|
|
|
|
'Rarity': f'{card.rarity_id}★', |
|
|
|
|
'Character': f'{card.character.full_name_english}', |
|
|
|
|
'Attribute': f'{self.bot.get_emoji(attribute_emoji_ids_by_attribute_id[card.attribute_id])} {card.attribute.en_name}', |
|
|
|
|
'Unit': f'{self.bot.get_emoji(unit_emoji_ids_by_unit_id[card.character.unit_id])} {card.character.unit.name}', |
|
|
|
|
'Release Date': f'{card.start_datetime}', |
|
|
|
|
}), |
|
|
|
|
inline=False) |
|
|
|
|
embed.add_field(name='Parameters', |
|
|
|
|
value=format_info({ |
|
|
|
|
f'Total': f'{"{:,}".format(card.max_power_with_limit_break)}', |
|
|
|
|
f'{self.bot.get_emoji(parameter_bonus_emoji_ids_by_parameter_id[1])} Heart': f'{"{:,}".format(card.max_parameters_with_limit_break[0])}', |
|
|
|
|
f'{self.bot.get_emoji(parameter_bonus_emoji_ids_by_parameter_id[2])} Technique': f'{"{:,}".format(card.max_parameters_with_limit_break[1])}', |
|
|
|
|
f'{self.bot.get_emoji(parameter_bonus_emoji_ids_by_parameter_id[3])} Physical': f'{"{:,}".format(card.max_parameters_with_limit_break[2])}', |
|
|
|
|
}), |
|
|
|
|
inline=False) |
|
|
|
|
|
|
|
|
|
return embed |
|
|
|
|
|
|
|
|
|
def format_card_name(self, card): |
|
|
|
|
return f'{card.rarity_id}★ {card.name} {card.character.full_name_english}' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def setup(bot): |
|
|
|
|
bot.add_cog(Card(bot)) |
|
|
|
|