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)
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
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))
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)