<html>
<head>
<title>kclist</title>
<script src="api_start2.js"></script>
<script>var api_start2 = svdata;</script>
<script src="slot_item.js"></script>
<script>var slot_item = svdata;</script>
<script src="api_port.js"></script>
<script>var api_port = svdata;</script>
<script>
<!--
svdata = null;
var mst_ship = {}; // 艦マスタ
var mst_stype = {}; // 艦種マスタ
var mst_item = {}; // 装備マスタ
var lst_item = {}; // 装備リスト
CreateHash(mst_ship, api_start2.api_data.api_mst_ship);
CreateHash(mst_stype, api_start2.api_data.api_mst_stype);
CreateHash(mst_item, api_start2.api_data.api_mst_slotitem);
CreateHash(lst_item, slot_item.api_data);
function CreateHash(mst, obj)
{
for (var i in obj) {
mst[obj[i].api_id] = obj[i];
}
}
var fld_ship = [
//["api_id", "ID", 0],
["api_sortno", "No", 0],
["api_ship_id", "艦種", 1],
["api_ship_id", "艦船名", 2],
["api_lv", "レベル", 0],
["api_exp", "経験値(累,次,%)", 0], // 累積,次のLvまで,%
["api_nowhp", "現HP", 0],
["api_maxhp", "最大HP", 0],
["api_leng", "射程", 0],
["api_slot", "装備", 3],
["api_onslot", "搭載", 4],
["api_kyouka", "強化", 0], // 火力,雷装,対空,装甲,運
["api_backs", "背景", 0],
["api_fuel", "燃料", 0],
["api_bull", "弾薬", 0],
["api_slotnum", "スロット", 0],
["api_ndock_time", "入渠時間", 5],
["api_ndock_item", "入渠資源", 0], // 燃料,鋼材
["api_srate", "srate", 0],
["api_cond", "cond", 0],
["api_karyoku", "火力", 0], // 現,最大
["api_raisou", "雷装", 0],
["api_taiku", "対空", 0],
["api_soukou", "装甲", 0],
["api_kaihi", "回避", 0],
["api_taisen", "対潜", 0],
["api_sakuteki", "索敵", 0],
["api_lucky", "運", 0],
["api_locked", "ロック", 0],
];
var sortfunc = [];
sortfunc.lv = function(a, b)
{
var lv = b.api_lv - a.api_lv;
if (lv != 0) return lv;
return a.api_sortno - b.api_sortno;
}
sortfunc.stype = function(a, b)
{
var stype = mst_ship[b.api_ship_id].api_stype - mst_ship[a.api_ship_id].api_stype;
if (stype != 0) return stype;
return a.api_sortno - b.api_sortno;
}
sortfunc.id = function(a, b)
{
return b.api_id - a.api_id;
}
sortfunc.ndock_time = function(a, b)
{
var time = b.api_ndock_time - a.api_ndock_time;
if (time != 0) return time;
return a.api_sortno - b.api_sortno;
}
function ShipList()
{
var table = CreateTable();
var ship = api_port.api_data.api_ship;
// ソート
var func = null;
for (var i = 0; i < document.f1.r1.length; i++) {
if (document.f1.r1[i].checked) {
func = document.f1.r1[i].value;
break;
}
}
ship.sort(sortfunc[func]);
// head
var thead = table.createTHead();
CreateTitleField(thead, fld_ship);
// body
for (var r = 0; r < ship.length; r++) {
var record = ship[r];
var row = table.insertRow();
row.bgColor = (r & 1) ? "WHEAT" : "WHITE";
AppendCell(row, r + 1);
for (var i in fld_ship) {
var value = record[fld_ship[i][0]];
switch (fld_ship[i][2]) {
case 1: // 艦種
var stype = mst_ship[value].api_stype;
value = mst_stype[stype].api_name;
break;
case 2: // 艦船名
value = mst_ship[value].api_name;
break;
case 3: // 装備
var slot = [];
for (var v in value) {
if (value[v] < 0) break;
var id = lst_item[value[v]].api_slotitem_id;
slot.push(mst_item[id].api_name);
}
value = slot.join("/");
break;
case 4: // 搭載
var sum = 0;
var slot = [];
for (var v in value) {
if (value[v] == 0) break;
sum += value[v];
slot.push(value[v]);
}
if (sum == 0) {
value = 0;
} else {
value = sum + " (" + slot.join("/") + ")";
}
break;
case 5: // 入渠時間
if (value != 0) {
var sec = Math.floor(value / 1000);
var h = Math.floor(sec / 3600);
var m = Math.floor(sec / 60) % 60;
var s = sec % 60;
value = h+":"+("0"+m).slice(-2)+":"+("0"+s).slice(-2);
}
break;
}
AppendCell(row, value);
}
}
// foot
var tfoot = table.createTFoot();
CreateTitleField(tfoot, fld_ship);
}
function ItemList()
{
var table = CreateTable();
var item = slot_item.api_data;
// head
var thead = table.createTHead();
CreateTitle(thead, item[0]);
// body
for (var r = 0; r < item.length; r++) {
var record = item[r];
var row = table.insertRow();
row.bgColor = (r & 1) ? "WHEAT" : "WHITE";
AppendCell(row, r + 1);
for (var key in record) {
var value = record[key];
switch (key) {
case "api_slotitem_id":
value = mst_item[value].api_name;
break;
}
AppendCell(row, value);
}
}
// foot
var tfoot = table.createTFoot();
CreateTitle(tfoot, item[0]);
}
function CreateTable()
{
var table = document.createElement("table");
table.border = 1;
table.cellSpacing = 0;
table.cellPadding = 3;
table.style.setAttribute("border-collapse", "collapse");
var d1 = document.getElementById("d1");
for (var i = d1.childNodes.length - 1; 0 <= i; i--) {
d1.removeChild(d1.childNodes[i]);
}
d1.appendChild(table);
return table;
}
function CreateTitle(elem, record)
{
var row = elem.insertRow();
row.bgColor = "KHAKI";
AppendCell(row, "#");
for (var key in record) {
AppendCell(row, key);
}
}
function CreateTitleField(elem, field)
{
var row = elem.insertRow();
row.bgColor = "KHAKI";
AppendCell(row, "#");
for (var i in field) {
AppendCell(row, field[i][1]);
}
}
function AppendCell(row, str)
{
var cell = row.insertCell();
var text = document.createTextNode(str);
cell.appendChild(text);
}
// -->
</script>
</head>
<body>
<button onclick="ItemList()">装備アイテム一覧</button>
<hr>
<form name="f1">
ソート
<input type="radio" name="r1" value="lv">Lv
<input type="radio" name="r1" value="stype" checked>艦種
<input type="radio" name="r1" value="id">NEW
<input type="radio" name="r1" value="ndock_time">入渠時間
<br><br>
<input type="button" value="保有艦一覧" onclick="ShipList()"><br>
</form>
<div id="d1"></div>
</body>
</html>