Пример #1
0
    def embed(cls, state: EvosViewState):
        fields = [
            EmbedField(
                ("{} evolution" if len(state.alt_versions) == 1 else
                 "{} evolutions").format(len(state.alt_versions)),
                Box(*EvosView._evo_lines(state.alt_versions, state.monster)))
        ]

        if state.gem_versions:
            fields.append(
                EmbedField(
                    ("{} evolve gem" if len(state.gem_versions) == 1 else
                     "{} evolve gems").format(len(state.gem_versions)),
                    Box(*EvosView._evo_lines(state.gem_versions,
                                             state.monster))))

        return EmbedView(EmbedMain(color=state.color,
                                   title=MonsterHeader.long_maybe_tsubaki(
                                       state.monster,
                                       state.alt_monsters[0].monster.monster_id
                                       == cls.TSUBAKI).to_markdown(),
                                   url=puzzledragonx(state.monster)),
                         embed_thumbnail=EmbedThumbnail(
                             MonsterImage.icon(state.monster)),
                         embed_footer=embed_footer_with_state(state),
                         embed_fields=fields)
Пример #2
0
    def embed(cls, state: IdViewState):
        m = state.monster
        fields = [
            EmbedField(
                '/'.join(['{}'.format(t.name) for t in m.types]),
                Box(IdView.all_awakenings_row(m, state.transform_base),
                    IdView.killers_row(m, state.transform_base))),
            EmbedField(
                'Inheritable' if m.is_inheritable else 'Not inheritable',
                IdView.misc_info(m, state.true_evo_type_raw, state.acquire_raw,
                                 state.base_rarity),
                inline=True),
            EmbedField(IdView.stats_header(m).to_markdown(),
                       IdView.stats(m),
                       inline=True),
            EmbedField(
                IdView.active_skill_header(m,
                                           state.transform_base).to_markdown(),
                Text(m.active_skill.desc if m.active_skill else 'None')),
            EmbedField(
                IdView.leader_skill_header(m).to_markdown(),
                Text(m.leader_skill.desc if m.leader_skill else 'None')),
            evos_embed_field(state)
        ]

        return EmbedView(EmbedMain(color=state.color,
                                   title=MonsterHeader.long_maybe_tsubaki(
                                       m,
                                       state.alt_monsters[0].monster.monster_id
                                       == cls.TSUBAKI).to_markdown(),
                                   url=puzzledragonx(m)),
                         embed_thumbnail=EmbedThumbnail(MonsterImage.icon(m)),
                         embed_footer=embed_footer_with_state(state),
                         embed_fields=fields)
Пример #3
0
    def embed(cls, state: PantheonViewState):
        fields = [EmbedField(
            'Pantheon: {}'.format(state.series_name),
            Box(*_pantheon_lines(state.pantheon_list, state.base_monster))
        ),
            evos_embed_field(state)]

        return EmbedView(
            EmbedMain(
                color=state.color,
                title=MonsterHeader.long_maybe_tsubaki(state.monster,
                                                       state.alt_monsters[0].monster.monster_id == cls.TSUBAKI
                                                       ).to_markdown(),
                url=puzzledragonx(state.monster)),
            embed_footer=embed_footer_with_state(state),
            embed_fields=fields,
            embed_thumbnail=EmbedThumbnail(MonsterImage.icon(state.monster)),
        )
Пример #4
0
 def embed(cls, state: OtherInfoViewState):
     m: "MonsterModel" = state.monster
     return EmbedView(
         EmbedMain(color=state.color,
                   title=MonsterHeader.long_maybe_tsubaki(
                       state.monster,
                       state.alt_monsters[0].monster.monster_id ==
                       cls.TSUBAKI).to_markdown(),
                   url=puzzledragonx(m)),
         embed_footer=embed_footer_with_state(state),
         embed_fields=[
             EmbedField(
                 "Stats at +297:",
                 Box(
                     Text(statsbox(m)), LabeledText("JP Name", m.name_ja),
                     LinksView.linksbox(m),
                     LabeledText("History", m.history_us)
                     if m.history_us else None,
                     LabeledText("Series", m.series.name_en),
                     Box(LabeledText("Sell MP", '{:,}'.format(m.sell_mp)),
                         LabeledText("Buy MP", '{:,}'.format(m.buy_mp))
                         if m.buy_mp else None,
                         delimiter='  '),
                     Box(LabeledText(
                         "XP to Max",
                         '{:.1f}'.format(m.exp /
                                         1000000).rstrip('0').rstrip('.') +
                         'M' if m.exp >= 1000000 else '{:,}'.format(m.exp)),
                         LabeledText("Max Level", str(m.level)),
                         delimiter='  '),
                     Box(LabeledText("Weighted Stats", str(m.stats()[3])),
                         Text('LB {} (+{}%)'.format(
                             m.stats(lv=110)[3], m.limit_mult))
                         if m.limit_mult > 0 else None,
                         delimiter=' | '),
                     LabeledText("Fodder EXP", '{:,}'.format(m.fodder_exp)),
                     Box(LabeledText("Rarity", str(m.rarity)),
                         LabeledText("Cost", str(m.cost)),
                         delimiter=' '))),
             evos_embed_field(state)
         ])
Пример #5
0
    def embed(cls, state: PicViewState):
        url = MonsterImage.picture(state.monster)
        animated = state.monster.has_animation
        fields = [EmbedField(
            'Extra Links',
            Box(
                Box(
                    Text('Animation:'),
                    LinkedText('(MP4)', MonsterImage.video(state.monster)),
                    Text('|'),
                    LinkedText('(GIF)', MonsterImage.gif(state.monster)),
                    delimiter=' '
                ) if animated else None,
                Box(
                    Text('Orb Skin:'),
                    LinkedText('Regular', MonsterImage.orb_skin(state.monster)),
                    Text('|'),
                    LinkedText('Color Blind', MonsterImage.orb_skin_colorblind(state.monster)),
                    delimiter=' '
                ) if state.monster.orb_skin_id else None,
            )
        ),
            evos_embed_field(state)
        ]

        return EmbedView(
            EmbedMain(
                color=state.color,
                title=MonsterHeader.long_maybe_tsubaki(state.monster,
                                                       state.alt_monsters[0].monster.monster_id == cls.TSUBAKI
                                                       ).to_markdown(),
                url=puzzledragonx(state.monster)),
            embed_footer=embed_footer_with_state(state),
            embed_fields=fields,
            embed_body_image=EmbedBodyImage(url),
        )