input[14] = "5/36";\r
input[15] = "綾波改二(Lv148)";\r
input[16] = "20/37";\r
+ input[17] = "夕立改二(Lv148)";\r
+ input[18] = "18/36";\r
input[37] = "制空権確保";\r
var result = new BattleLogProcessor().Process(input);\r
PAssert.That(() => result[5] == "T字有利");\r
PAssert.That(() => result[37] == "確保");\r
PAssert.That(() => result[38] == "龍鳳改(Lv97)・夕立改(Lv148)");\r
+ PAssert.That(() => result[39] == "夕立改二(Lv148)");\r
}\r
\r
[TestMethod]\r
var result = new BattleLogProcessor().Process(input);\r
PAssert.That(() => result[21] == "潮改二(Lv94)・龍驤改二(Lv99)" &&\r
result[22] == "33/33・50/50");\r
- PAssert.That(() => result.Length == 40);\r
+ PAssert.That(() => result.Length == 41);\r
}\r
\r
[TestMethod]\r
var input = Enumerable.Repeat("", 38).ToArray();\r
input[1] = "サーモン海域";\r
var result = new BattleLogProcessor(new Dictionary<string, string> {{"サーモン海域", "5-4"}}).Process(input);\r
- PAssert.That(() => result[39] == "5-4");\r
+ PAssert.That(() => result[40] == "5-4");\r
}\r
}\r
}
\ No newline at end of file
result.First() ==\r
"[\"2018-09-08 11:28:01\",\"鎮守府正面海域\",\"3\",\"ボス\",\"A\",\"同航戦\",\"単縦陣\",\"単縦陣\",\"敵主力艦隊\",\"駆逐艦\",\"雷\"," +\r
"\"浜波改(Lv78)\",\"32/32\",\"涼風(Lv10)\",\"3/16\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"," +\r
- "\"軽巡ホ級\",\"0/33\",\"駆逐イ級\",\"0/20\",\"駆逐イ級\",\"7/20\",\"\",\"\",\"\",\"\",\"\",\"\",\"0\",\"0\",\"\",\"涼風(Lv10)\",\"1-1\"]");\r
+ "\"軽巡ホ級\",\"0/33\",\"駆逐イ級\",\"0/20\",\"駆逐イ級\",\"7/20\",\"\",\"\",\"\",\"\",\"\",\"\",\"0\",\"0\",\"\",\"涼風(Lv10)\",\"\",\"1-1\"]");\r
}\r
\r
/// <summary>\r
if (data[7].EndsWith("航行序列"))\r
data[7] = data[7].Substring(0, 4);\r
data[37] = ShortenAirBattleResult(data[37]);\r
- var result = new string[40];\r
- result[38] = GenerateDamagedShip(data);\r
- result[39] = map;\r
+ var result = new string[41];\r
+ var damage = GenerateDamagedShip(data);\r
+ result[38] = damage[0];\r
+ result[39] = damage[1];\r
+ result[40] = map;\r
Array.Copy(data, result, 38);\r
return result;\r
}\r
}\r
}\r
\r
- private static string GenerateDamagedShip(string[] data)\r
+ private static string[] GenerateDamagedShip(string[] data)\r
{\r
- var damaged = new List<string>();\r
+ var badly = new List<string>();\r
+ var half = new List<string>();\r
for (var i = 11; i < 11 + 12; i += 2)\r
{\r
if (data[i] == "")\r
var hp = data[i + 1];\r
try\r
{\r
- damaged.AddRange(from entry in ship.Split('・').Zip(hp.Split('・'), (s, h) => new {s, h})\r
+ foreach (var entry in from entry in ship.Split('・').Zip(hp.Split('・'), (s, h) => new {s, h})\r
where entry.h.Contains("/")\r
let nm = entry.h.Split('/').Select(int.Parse).ToArray()\r
- where ShipStatus.CalcDamage(nm[0], nm[1]) == ShipStatus.Damage.Badly\r
- select entry.s);\r
+ let level = ShipStatus.CalcDamage(nm[0], nm[1])\r
+ select new {level, name = entry.s})\r
+ {\r
+ if (entry.level == ShipStatus.Damage.Half)\r
+ half.Add(entry.name);\r
+ else if (entry.level == ShipStatus.Damage.Badly)\r
+ badly.Add(entry.name);\r
+ }\r
}\r
catch (FormatException)\r
{\r
- return "";\r
+ return new[] {"", ""};\r
}\r
}\r
- return string.Join("・", damaged);\r
+ return new []{string.Join("・", badly), string.Join("・", half)};\r
}\r
\r
private static readonly Regex Kana = new Regex(@"\([^)]+\)\(", RegexOptions.Compiled);\r
<script>
this.tables = [
"<th>日付</th><th>海域</th><th>マップ</th><th>マス</th><th>ボス</th><th>ランク</th><th>ドロップ艦種</th><th>ドロップ艦娘", // ドロップ
-"<th>日付</th><th style=\"min-width: 3.2em;\">海域</th><th>マップ</th><th>マス</th><th>ボス</th><th>ランク</th><th>艦隊行動</th><th>味方陣形</th><th>敵陣形</th><th style=\"min-width: 3.2em;\">敵艦隊</th><th>味方艦1</th><th>味方艦1HP</th><th>味方艦2</th><th>味方艦2HP</th><th>味方艦3</th><th>味方艦3HP</th><th>味方艦4</th><th>味方艦4HP</th><th>味方艦5</th><th>味方艦5HP</th><th>味方艦6</th><th>味方艦6HP</th><th>大破艦</ht><th style=\"min-width: 2.2em;\">敵艦1</th><th>敵艦1HP</th><th style=\"min-width: 2.2em;\">敵艦2</th><th>敵艦2HP</th><th style=\"min-width: 2.2em;\">敵艦3</th><th>敵艦3HP</th><th style=\"min-width: 2.2em;\">敵艦4</th><th>敵艦4HP</th><th style=\"min-width: 2.2em;\">敵艦5</th><th>敵艦5HP</th><th style=\"min-width: 2.2em;\">敵艦6</th><th>敵艦6HP</th><th>味方制空値</th><th>敵制空値</th><th>制空状態</th>", // 海戦
+"<th>日付</th><th style=\"min-width: 3.2em;\">海域</th><th>マップ</th><th>マス</th><th>ボス</th><th>ランク</th><th>艦隊行動</th><th>味方陣形</th><th>敵陣形</th><th style=\"min-width: 3.2em;\">敵艦隊</th><th>味方艦1</th><th>味方艦1HP</th><th>味方艦2</th><th>味方艦2HP</th><th>味方艦3</th><th>味方艦3HP</th><th>味方艦4</th><th>味方艦4HP</th><th>味方艦5</th><th>味方艦5HP</th><th>味方艦6</th><th>味方艦6HP</th><th>大破艦</th><th>中破艦</th><th style=\"min-width: 2.2em;\">敵艦1</th><th>敵艦1HP</th><th style=\"min-width: 2.2em;\">敵艦2</th><th>敵艦2HP</th><th style=\"min-width: 2.2em;\">敵艦3</th><th>敵艦3HP</th><th style=\"min-width: 2.2em;\">敵艦4</th><th>敵艦4HP</th><th style=\"min-width: 2.2em;\">敵艦5</th><th>敵艦5HP</th><th style=\"min-width: 2.2em;\">敵艦6</th><th>敵艦6HP</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>日付</th><th>開発装備</th><th>種別</th><th>燃料</th><th>弾薬</th><th>鋼材</th><th>ボーキ</th><th>秘書艦</th><th>司令部Lv</th>", // 開発
"<th>日付</th><th>種類</th><th>名前</th><th>艦種</th><th>燃料</th><th>弾薬</th><th>鋼材</th><th>ボーキ</th><th>開発資材</th><th>空きドック</th><th>秘書艦</th><th>司令部Lv</th>", // 建造
};
this.dropColumns = function() {
- return [{data: 0}, {data: 1}, {data: 39}, {data: 2}, {data: 3}, {data: 4}, {data: 9}, {data: 10}];
+ return [{data: 0}, {data: 1}, {data: 40}, {data: 2}, {data: 3}, {data: 4}, {data: 9}, {data: 10}];
};
this.sortieColumns = function() {
var entries = [];
for (var i = 0; i < 38; i++) {
if (i === 2)
- entries.push({data: 39});
+ entries.push({data: 40});
if (i === 9 || i === 10)
continue;
- if (i === 23)
+ if (i === 23) {
entries.push({data: 38});
+ entries.push({data: 39});
+ }
entries.push({data: i});
}
return entries;