"2015-01-01 00:00:00,大型艦建造,筑摩,重巡洋艦,1500,1500,2000,1000,1,0,明石改(50),116|"\r
== result);\r
}\r
+\r
+ [TestMethod]\r
+ public void InspectRemodelSlot()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ var result = "";\r
+ sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2015, 1, 1));\r
+ sniffer.EnableLog(LogType.RemodelSlot);\r
+ SnifferTest.SniffLogFile(sniffer, "remodel_slot_001");\r
+ PAssert.That(() => "2015-01-01 00:00:00,12.7cm連装砲,4,○,,,,10,30,60,0,1,1,明石改(50),島風改(131)|" +\r
+ "2015-01-01 00:00:00,12.7cm連装砲,5,×,,,,10,30,60,0,1,1,明石改(50),|" +\r
+ "2015-01-01 00:00:00,12.7cm連装砲,7,○,,12.7cm連装砲,1,10,30,60,0,1,1,明石改(50),島風改(131)|" +\r
+ "2015-01-01 00:00:00,91式高射装置,10,○,○,10cm連装高角砲,2,0,0,60,40,9,7,明石改(50),摩耶改(98)|"\r
+ == result);\r
+ }\r
}\r
}
\ No newline at end of file
Material = 4,\r
CreateItem = 8,\r
CreateShip = 16,\r
- All = 31,\r
+ RemodelSlot = 32,\r
+ All = 63,\r
}\r
\r
public class Logger\r
string.Join(",", material),\r
"日付,燃料,弾薬,鋼材,ボーキ,高速建造材,高速修復材,開発資材,改修資材");\r
}\r
+\r
+ public void InspectRemodelSlot(string request, dynamic json)\r
+ {\r
+ if ((_logType & LogType.RemodelSlot) == 0)\r
+ return;\r
+ var now = _nowFunc();\r
+ var values = HttpUtility.ParseQueryString(request);\r
+ var id = int.Parse(values["api_slot_id"]);\r
+ var name = _itemInfo[id].Name;\r
+ var level = _itemInfo.ItemDict[id].Level;\r
+ var success = (int)json.api_remodel_flag == 1 ? "○" : "×";\r
+ var certain = int.Parse(values["api_certain_flag"]) == 1 ? "○" : "";\r
+ var useName = "";\r
+ var useNum = "";\r
+ if (json.api_use_slot_id())\r
+ {\r
+ var use = (int[])json.api_use_slot_id;\r
+ useName = _itemInfo[use[0]].Name;\r
+ useNum = use.Length.ToString();\r
+ }\r
+ var after = (int[])json.api_after_material;\r
+ var diff = new int[after.Length];\r
+ for (var i = 0; i < after.Length; i++)\r
+ diff[i] = _itemInfo.MaterialHistory[i].Now - after[i];\r
+ var ship1 = Secretary();\r
+ var ship2 = "";\r
+ var ships = _shipInfo.GetShipStatuses(0);\r
+ if (ships.Length >= 2)\r
+ ship2 = ships[1].Name + "(" + ships[1].Level + ")";\r
+ _writer("改修報告書",\r
+ now.ToString(DateTimeFormat) + "," +\r
+ string.Join(",", name, level, success, certain, useName, useNum,\r
+ diff[(int)Material.Fuel], diff[(int)Material.Bullet], diff[(int)Material.Steal], diff[(int)Material.Bouxite],\r
+ diff[(int)Material.Development], diff[(int)Material.Screw],\r
+ ship1, ship2),\r
+ "日付,改修装備,レベル,成功,確実化,消費装備,消費数,燃料,弾薬,鋼材,ボーキ,開発資材,改修資材,秘書艦,二番艦");\r
+ }\r
}\r
\r
public class LogWriter\r
}\r
if (url.EndsWith("api_req_kousyou/remodel_slot"))\r
{\r
+ _logger.InspectRemodelSlot(request, data); // 資材の差が必要なので_itemInfoより前\r
_itemInfo.InspectRemodelSlot(data);\r
return Update.Item;\r
}\r
"遠征報告書.json",
"開発報告書.json",
"建造報告書.json",
+ "改修報告書.json",
"資材ログ.json"
];
$('#loading').show();
$('#log' + selectedTable).DataTable().ajax.url(url).load();
}
+var tables = 7;
+
function initTables()
{
- for (var t = 0; t < 6; t++) {
+ for (var t = 0; t < tables; t++) {
var opts = {
destroy: true,
deferRender: true,
function selectTopTab(i)
{
- if (i < 6) {
+ var chart = tables;
+ if (i < tables) {
selectedTable = i;
showLog();
- } else if (i == 6) {
+ } else if (i == chart) {
drawChart();
- } else if (i == 7) {
+ } else if (i == chart + 1) {
setSortieStat();
}
- if (i < 6)
+ if (i < tables)
$('#term').show();
else
$('#term').hide();
<li>遠征</li>
<li>開発</li>
<li>建造</li>
+<li>改修</li>
<li>資材</li>
<li>資材グラフ</li>
<li>出撃統計</li>
<li class="hide">
<table id="log5">
<thead>
+<tr><th>日付</th><th>改修装備</th><th>レベル</th><th>成功</th><th>確実化</th><th>消費装備</th><th>消費数</th><th>燃料</th><th>弾薬</th><th>鋼材</th><th>ボーキ</th><th>開発資材</th><th>改修資材</th><th>秘書艦</th><th>二番艦</th></tr>
+</thead>
+</table>
+
+<li class="hide">
+<table id="log6">
+<thead>
<tr><th>日付</th><th>燃料</th><th>弾薬</th><th>鋼材</th><th>ボーキ</th><th>高速建造材</th><th>高速修復材</th><th>開発資材</th><th>改修資材</th></tr>
</thead>
</table>