}\r
\r
[TestMethod]\r
+ public void CombinedUnbalanceLog()\r
+ {\r
+ var input = Enumerable.Repeat("", 38).ToArray();\r
+ input[11] = "龍鳳改(Lv97)・";\r
+ input[12] = "3/48・";\r
+ input[13] = "・夕立改(Lv148)";\r
+ input[14] = "・5/36";\r
+ var result = BattleLogProcessor.Process(input).ToArray();\r
+ PAssert.That(() => result[23] == "龍鳳改(Lv97)・夕立改(Lv148)");\r
+ }\r
+\r
+ [TestMethod]\r
public void NormalLogWithKana()\r
{\r
var input = Enumerable.Repeat("", 38).ToArray();\r
\r
private static IEnumerable<string> GetCurrentMaterialRecord()\r
{\r
- return new[] {Logger.FormatDateTime(DateTime.Now)}.\r
- Concat(MaterialHistory.Select(c => c.Now.ToString()));\r
+ return new[] {Logger.FormatDateTime(DateTime.Now)}.Concat(MaterialHistory.Select(c => c.Now.ToString()));\r
}\r
\r
private static void SendFile(Socket client, string path, string mime)\r
var hp = data[i + 1];\r
try\r
{\r
- if (ship.Contains("・"))\r
- {\r
- var ships = ship.Split('・');\r
- var hps = hp.Split('・');\r
- var nowMax = hps[0].Split('/').Select(int.Parse).ToArray();\r
- if (ShipStatus.CalcDamage(nowMax[0], nowMax[1]) == ShipStatus.Damage.Badly)\r
- damaged.Add(ships[0]);\r
- nowMax = hps[1].Split('/').Select(int.Parse).ToArray();\r
- if (ShipStatus.CalcDamage(nowMax[0], nowMax[1]) == ShipStatus.Damage.Badly)\r
- damaged.Add(ships[1]);\r
- }\r
- else\r
- {\r
- var nowMax = hp.Split('/').Select(int.Parse).ToArray();\r
- if (ShipStatus.CalcDamage(nowMax[0], nowMax[1]) == ShipStatus.Damage.Badly)\r
- damaged.Add(ship);\r
- }\r
+ damaged.AddRange(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
}\r
catch (FormatException)\r
{\r
return data;\r
}\r
}\r
- return data.Take(23).Concat(new[] { string.Join("・", damaged) }).Concat(data.Skip(23));\r
+ return data.Take(23).Concat(new[] {string.Join("・", damaged)}).Concat(data.Skip(23));\r
}\r
\r
private static readonly Regex Kana = new Regex(@"\([^)]+\)\(", RegexOptions.Compiled);\r