Esempio n. 1
0
def create_character_data_list(request, formatter):
    table = Table()

    characters = load_json_from_page(request, None, u"CharacterList", u"characters") or []
    header_row = TitleRow()
    newline = formatter.linebreak(preformatted=False)
    header_row.cells.append(TitleCell(u"キャラクター", formatted=True, cls=["center"]))
    header_row.cells.append(TitleCell(u"よろけにくさ", formatted=True, cls=["center"]))
    header_row.cells.append(TitleCell(u"ジャンプ%s上昇力" % newline, formatted=True, cls=["center"]))
    header_row.cells.append(TitleCell(u"空中ダッシュ%s初速度" % newline, formatted=True, cls=["center"]))
    header_row.cells.append(TitleCell(u"空中ダッシュ%s最終速度" % newline, formatted=True, cls=["center"]))
    header_row.cells.append(TitleCell(u"腕力", formatted=True, cls=["center"]))
    header_row.cells.append(TitleCell(u"格闘距離", formatted=True, cls=["center"]))
    table.rows.append(header_row)

    for character_name in characters:
        c = load_json_from_page(request, None, character_name, u"character") or {}
        data = c.get(u"キャラクターデータ", {})
        row = Row()
        row.cells.append(Cell(None, character_name, cls=["center"]))
        row.cells.append(Cell(None, data.get(u"よろけにくさ", u""), cls=["center"]))
        row.cells.append(Cell(None, data.get(u"ジャンプ上昇力", u""), cls=["center"]))
        row.cells.append(Cell(None, data.get(u"空中ダッシュ初速度", u""), cls=["center"]))
        row.cells.append(Cell(None, data.get(u"空中ダッシュ最終速度", u""), cls=["center"]))
        row.cells.append(Cell(None, data.get(u"腕力", u""), cls=["center"]))
        row.cells.append(Cell(None, u"%dm" % data.get(u"格闘距離", 0), cls=["right"]))
        table.rows.append(row)

    html_table = table.toHtmlTable(generate_header=False)
    return html_table.format(formatter)
Esempio n. 2
0
def create_wp_data(request, parser, formatter, requested_wps):
    j = load_json_from_page(request, parser, requested_wps[0], u'wp') or {}
    if not j:
        return u'no wp data'
    wp_name = j.get(u'名称', u'')

    table = Table()

    text = formatter.linebreak(preformatted=False)
    text += u"""
    コスト: %(cost)s 耐久力: %(life)s 格闘補正: x%(melee)s倍 タイプ: %(type)s 入手条件: %(howtoget)s\n
    """ % { u'cost': j.get(u'コスト', None) or u'???',
            u'life': j.get(u'耐久力', None) or u'???',
            u'melee': j.get(u'格闘補正', None) or u'???',
            u'type': j.get(u'タイプ', None) or u'???',
            u'howtoget': j.get(u'入手条件', u'') or u'???'}

    weapon_names = (j[u'右手武器'], j[u'左手武器'],
                    j[u'サイド武器'], j[u'タンデム武器'])
    place_names = (u'右手', u'左手', u'サイド', u'タンデム')
    for place_name, weapon_name in zip(place_names, weapon_names):
        name = weapon_name.get(u'名称', u'unknown')
        level = weapon_name.get(u'レベル', 0)
        row, subrow = get_leveled_weapon_and_subweapon_rows(
            request, j, formatter, name, level, place_name, wp_name)
        table.rows.append(row)
        if subrow:
            table.rows.append(subrow)
    html_table = table.toHtmlTable()
    text += html_table.format(formatter)
    text += get_tune_table(j, formatter)
    return text
Esempio n. 3
0
def create_weapon_data(request, parser, formatter, requested_weapons, **kw):
    j = load_json_from_page(request, parser, requested_weapons[0], u'weapon') or {}
    if not j:
        return u'No weapon data'
    table = Table()
    create_table(request, j, table, formatter, **kw)
    html_table = table.toHtmlTable()
    return (formatter.linebreak(preformatted=False)
            + formatter.text(u'弾種: %s' % j[u'弾種'])
            + html_table.format(formatter))
Esempio n. 4
0
def macro_IncludeWeapons(macro, _trailing_args=[]):
    request = macro.request
    formatter = macro.formatter
    parser = macro.parser

    requested_weapons = _trailing_args
    if not requested_weapons:
        # assume the caller requested to show a weapon data of the current page.
        requested_weapons = [macro.formatter.page.page_name]
    else:
        parser = None
    requested_weapons.reverse()
    
    tables = []
    all_rows = []
    existing_weapons = []
    for weapon_name in requested_weapons:
        w = load_json_from_page(request, parser, weapon_name, u'weapon') or {}
        table = Table()
        if w:
            WeaponData.create_table(request, w, table, formatter, show_wp_owners=True)
            existing_weapons.append(weapon_name)
            all_rows.extend(table.rows)
            tables.append(table)

    table.remove_empty_columns(all_rows)

    html_tables = []
    for table in tables:
        html_tables.append(table.toHtmlTable(remove_empty_columns=False))

    html_rows = []
    for (weapon_name, html_table) in zip(existing_weapons, html_tables):
        row_cells = []
        row_cells.append(HtmlCell(
            formatter.pagelink(True, weapon_name) + formatter.text(weapon_name) + formatter.pagelink(False),
            attrs={u'colspan': (u'%d' % len(all_rows[0].cells))},
            formatted=True
        ))
        # row_cells has only 1 column because the all cells are colspan-ed.
        html_rows.append(HtmlRow(row_cells, cls=[u'wheader left']))
        html_rows.extend(html_table.rows)

    final_table = HtmlTable(html_rows)
    return final_table.format(formatter)