From: Kazuhiro Fujieda Date: Mon, 20 Jan 2020 12:02:06 +0000 (+0900) Subject: 複数項目こなす任務のカウンターのツールチップの仕様を変更する X-Git-Tag: v11.33~4 X-Git-Url: http://git.osdn.net/view?p=kancollesniffer%2FKancolleSniffer.git;a=commitdiff_plain;h=ec634799b309e8d896909396bf66cd843fa8a226 複数項目こなす任務のカウンターのツールチップの仕様を変更する --- diff --git a/KancolleSniffer.Test/QuestCounterTest.cs b/KancolleSniffer.Test/QuestCounterTest.cs index 961f1ba..876b749 100644 --- a/KancolleSniffer.Test/QuestCounterTest.cs +++ b/KancolleSniffer.Test/QuestCounterTest.cs @@ -146,38 +146,38 @@ namespace KancolleSniffer.Test Assert.AreEqual("20/36 7/6 10/24 8/12", status.QuestCountList[1].ToString()); var z = status.QuestCountList[2]; Assert.AreEqual("2\u200a1\u200a1\u200a1", z.ToString()); - Assert.AreEqual("2-4 6-1 6-3 6-4", z.ToToolTip()); + Assert.AreEqual("2-4:2 6-1:1 6-3:1 6-4:1", z.ToToolTip()); z.NowArray = new[] {0, 0, 0, 0}; - Assert.AreEqual("", z.ToToolTip()); + Assert.AreEqual("2-4:0 6-1:0 6-3:0 6-4:0", z.ToToolTip()); var q426 = status.QuestCountList[3]; Assert.AreEqual("1\u200a1\u200a1\u200a1", q426.ToString()); - Assert.AreEqual("警備任務 対潜警戒任務 海上護衛任務 強硬偵察任務", q426.ToToolTip()); + Assert.AreEqual("警備任務1 対潜警戒任務1 海上護衛任務1 強硬偵察任務1", q426.ToToolTip()); var q428 = status.QuestCountList[4]; Assert.AreEqual("対潜警戒任務1 海峡警備行動1 長時間対潜警戒1", q428.ToToolTip()); q428.NowArray = new[] {0, 1, 0}; - Assert.AreEqual("海峡警備行動1", q428.ToToolTip()); + Assert.AreEqual("対潜警戒任務0 海峡警備行動1 長時間対潜警戒0", q428.ToToolTip()); var q873 = status.QuestCountList[5]; Assert.AreEqual("1\u200a1\u200a1", q873.ToString()); - Assert.AreEqual("3-1 3-2 3-3", q873.ToToolTip()); + Assert.AreEqual("3-1:1 3-2:1 3-3:1", q873.ToToolTip()); var q888 = status.QuestCountList[6]; Assert.AreEqual("1\u200a1\u200a1", q888.ToString()); - Assert.AreEqual("5-1 5-3 5-4", q888.ToToolTip()); + Assert.AreEqual("5-1:1 5-3:1 5-4:1", q888.ToToolTip()); var q688 = status.QuestCountList[7]; Assert.AreEqual("艦戦2 艦爆1 艦攻2 水偵1", q688.ToToolTip()); var q893 = status.QuestCountList[8]; Assert.AreEqual("1-5:1 7-1:1 7-2G:1 7-2M:1", q893.ToToolTip()); var q894 = status.QuestCountList[9]; Assert.AreEqual("1\u200a1\u200a1\u200a1\u200a1", q894.ToString()); - Assert.AreEqual("1-3 1-4 2-1 2-2 2-3", q894.ToToolTip()); + Assert.AreEqual("1-3:1 1-4:1 2-1:1 2-2:1 2-3:1", q894.ToToolTip()); var q280 = status.QuestCountList[10]; Assert.AreEqual("1\u200a1\u200a1\u200a1", q280.ToString()); - Assert.AreEqual("1-2 1-3 1-4 2-1", q280.ToToolTip()); + Assert.AreEqual("1-2:1 1-3:1 1-4:1 2-1:1", q280.ToToolTip()); var q872 = status.QuestCountList.First(q => q.Id == 872); Assert.AreEqual("1\u200a1\u200a1\u200a1", q872.ToString()); - Assert.AreEqual("7-2M 5-5 6-2 6-5", q872.ToToolTip()); + Assert.AreEqual("7-2M:1 5-5:1 6-2:1 6-5:1", q872.ToToolTip()); var q284 = status.QuestCountList.First(q => q.Id == 284); Assert.AreEqual("1\u200a1\u200a1\u200a1", q284.ToString()); - Assert.AreEqual("1-4 2-1 2-2 2-3", q284.ToToolTip()); + Assert.AreEqual("1-4:1 2-1:1 2-2:1 2-3:1", q284.ToToolTip()); var q226 = status.QuestCountList.First(q => q.Id == 226); Assert.AreEqual("2/5", q226.ToString()); Assert.AreEqual("", q226.ToToolTip()); diff --git a/KancolleSniffer/Model/QuestCounter.cs b/KancolleSniffer/Model/QuestCounter.cs index 9c47c06..2f7b0f5 100644 --- a/KancolleSniffer/Model/QuestCounter.cs +++ b/KancolleSniffer/Model/QuestCounter.cs @@ -113,26 +113,19 @@ namespace KancolleSniffer.Model public string ToToolTip() { + if (NowArray == null) + return ""; if (Spec is QuestSortie spec && spec.Maps != null && spec.MaxArray != null) { - var flags = spec.MaxArray.All(x => x == 1); - return string.Join(" ", - spec.Maps.Zip(NowArray, (map, n) => n >= 1 ? $"{MapString(map)}{(flags ? "" : $":{n}")}" : "") - .Where(s => !string.IsNullOrEmpty(s))); + return string.Join(" ", spec.Maps.Zip(NowArray, (map, n) => $"{MapString(map)}:{n}")); } - return Id switch + return string.Join(" ", (Id switch { - 426 => string.Join(" ", - new[] {"警備任務", "対潜警戒任務", "海上護衛任務", "強硬偵察任務"}.Zip(NowArray, (mission, n) => n >= 1 ? mission : "") - .Where(s => !string.IsNullOrEmpty(s))), - 428 => string.Join(" ", - new[] {"対潜警戒任務", "海峡警備行動", "長時間対潜警戒"}.Zip(NowArray, (mission, n) => n >= 1 ? mission + n : "") - .Where(s => !string.IsNullOrEmpty(s))), - 688 => string.Join(" ", - new[] {"艦戦", "艦爆", "艦攻", "水偵"}.Zip(NowArray, (type, n) => n >= 1 ? type + n : "") - .Where(s => !string.IsNullOrEmpty(s))), - _ => "" - }; + 426 => new[] {"警備任務", "対潜警戒任務", "海上護衛任務", "強硬偵察任務"}, + 428 => new[] {"対潜警戒任務", "海峡警備行動", "長時間対潜警戒"}, + 688 => new[] {"艦戦", "艦爆", "艦攻", "水偵"}, + _ => new string[0] + }).Zip(NowArray, (entry, n) => $"{entry}{n}")); } public bool Cleared => NowArray?.Zip(Spec.MaxArray, (n, m) => n >= m).All(x => x) ??