Exemplo n.º 1
0
async def get_id_menu_initial_reaction_list(
        ctx,
        dgcog,
        monster: "MonsterModel",
        full_reaction_list: List[Optional[str]] = None,
        force_evoscroll=False):
    # hide some panes if we're in evo scroll mode
    if not full_reaction_list:
        full_reaction_list = [
            emoji_cache.get_by_name(e) for e in IdMenuPanes.emoji_names()
        ]
    if not force_evoscroll and not settings.checkEvoID(ctx.author.id):
        return full_reaction_list
    alt_versions, gem_versions = await EvosViewState.query(dgcog, monster)
    if alt_versions is None and gem_versions is None:
        full_reaction_list.remove(IdMenuEmoji.left)
        full_reaction_list.remove(IdMenuEmoji.right)
        full_reaction_list.remove(IdMenuEmoji.evos)
    pantheon_list, _, _ = await PantheonViewState.query(dgcog, monster)
    if pantheon_list is None:
        full_reaction_list.remove(IdMenuEmoji.pantheon)
    mats, usedin, gemid, _, skillups, _, _, _ = await MaterialsViewState.query(
        dgcog, monster)
    if mats is None and usedin is None and gemid is None and skillups is None:
        full_reaction_list.remove(IdMenuEmoji.mats)
    return full_reaction_list
Exemplo n.º 2
0
 async def click_child_number(cls, ims, emoji_clicked, **data):
     emoji_response = IdMenuEmoji.refresh \
         if SeriesScrollMenuPanes.respond_to_emoji_with_child(emoji_clicked) else None
     if emoji_response is None:
         return None, {}
     n = SeriesScrollMenuPanes.emoji_names().index(emoji_clicked)
     view_state = await cls._get_view_state(ims, **data)
     view_state.set_index(SeriesScrollMenuPanes.get_monster_index(n))
     extra_ims = view_state.get_serialized_child_extra_ims(
         IdMenuPanes.emoji_names(), IdMenu.MENU_TYPE)
     return emoji_response, extra_ims
Exemplo n.º 3
0
 def _scroll_child(ims, update_fn, **data):
     dgcog = data['dgcog']
     copy_ims = deepcopy(ims)
     update_fn(dgcog, copy_ims)
     paginated_monsters = SeriesScrollViewState.query_from_ims(dgcog, copy_ims)
     page = copy_ims.get('current_page') or 0
     monster_list = paginated_monsters[page]
     # after we figure out new rarity
     extra_ims = {
         'is_child': True,
         'reaction_list': IdMenuPanes.emoji_names(),
         'menu_type': IdMenu.MENU_TYPE,
         'resolved_monster_id': monster_list[copy_ims['current_index']].monster_id,
     }
     return IdMenuEmoji.refresh, extra_ims
Exemplo n.º 4
0
 def click_child_number(ims, emoji_clicked, **data):
     dgcog = data['dgcog']
     emoji_response = IdMenuEmoji.refresh \
         if SeriesScrollMenuPanes.respond_to_emoji_with_child(emoji_clicked) else None
     if emoji_response is None:
         return None, {}
     n = SeriesScrollMenuPanes.emoji_names().index(emoji_clicked)
     paginated_monsters = SeriesScrollViewState.query_from_ims(dgcog, ims)
     page = ims.get('current_page') or 0
     monster_list = paginated_monsters[page]
     extra_ims = {
         'is_child': True,
         'reaction_list': IdMenuPanes.emoji_names(),
         'menu_type': IdMenu.MENU_TYPE,
         'resolved_monster_id':
             monster_list[n - SeriesScrollMenuPanes.NON_MONSTER_EMOJI_COUNT].monster_id,
     }
     return emoji_response, extra_ims
Exemplo n.º 5
0
 async def _scroll_child(view_state: SeriesScrollViewState, update_fn,
                         dbcog):
     await update_fn(dbcog)
     extra_ims = view_state.get_serialized_child_extra_ims(
         IdMenuPanes.emoji_names(), IdMenu.MENU_TYPE)
     return IdMenuEmoji.refresh, extra_ims