Revisión | ec634799b309e8d896909396bf66cd843fa8a226 (tree) |
---|---|
Tiempo | 2020-01-20 21:02:06 |
Autor | Kazuhiro Fujieda <fujieda@user...> |
Commiter | Kazuhiro Fujieda |
複数項目こなす任務のカウンターのツールチップの仕様を変更する
@@ -146,38 +146,38 @@ namespace KancolleSniffer.Test | ||
146 | 146 | Assert.AreEqual("20/36 7/6 10/24 8/12", status.QuestCountList[1].ToString()); |
147 | 147 | var z = status.QuestCountList[2]; |
148 | 148 | Assert.AreEqual("2\u200a1\u200a1\u200a1", z.ToString()); |
149 | - Assert.AreEqual("2-4 6-1 6-3 6-4", z.ToToolTip()); | |
149 | + Assert.AreEqual("2-4:2 6-1:1 6-3:1 6-4:1", z.ToToolTip()); | |
150 | 150 | z.NowArray = new[] {0, 0, 0, 0}; |
151 | - Assert.AreEqual("", z.ToToolTip()); | |
151 | + Assert.AreEqual("2-4:0 6-1:0 6-3:0 6-4:0", z.ToToolTip()); | |
152 | 152 | var q426 = status.QuestCountList[3]; |
153 | 153 | Assert.AreEqual("1\u200a1\u200a1\u200a1", q426.ToString()); |
154 | - Assert.AreEqual("警備任務 対潜警戒任務 海上護衛任務 強硬偵察任務", q426.ToToolTip()); | |
154 | + Assert.AreEqual("警備任務1 対潜警戒任務1 海上護衛任務1 強硬偵察任務1", q426.ToToolTip()); | |
155 | 155 | var q428 = status.QuestCountList[4]; |
156 | 156 | Assert.AreEqual("対潜警戒任務1 海峡警備行動1 長時間対潜警戒1", q428.ToToolTip()); |
157 | 157 | q428.NowArray = new[] {0, 1, 0}; |
158 | - Assert.AreEqual("海峡警備行動1", q428.ToToolTip()); | |
158 | + Assert.AreEqual("対潜警戒任務0 海峡警備行動1 長時間対潜警戒0", q428.ToToolTip()); | |
159 | 159 | var q873 = status.QuestCountList[5]; |
160 | 160 | Assert.AreEqual("1\u200a1\u200a1", q873.ToString()); |
161 | - Assert.AreEqual("3-1 3-2 3-3", q873.ToToolTip()); | |
161 | + Assert.AreEqual("3-1:1 3-2:1 3-3:1", q873.ToToolTip()); | |
162 | 162 | var q888 = status.QuestCountList[6]; |
163 | 163 | Assert.AreEqual("1\u200a1\u200a1", q888.ToString()); |
164 | - Assert.AreEqual("5-1 5-3 5-4", q888.ToToolTip()); | |
164 | + Assert.AreEqual("5-1:1 5-3:1 5-4:1", q888.ToToolTip()); | |
165 | 165 | var q688 = status.QuestCountList[7]; |
166 | 166 | Assert.AreEqual("艦戦2 艦爆1 艦攻2 水偵1", q688.ToToolTip()); |
167 | 167 | var q893 = status.QuestCountList[8]; |
168 | 168 | Assert.AreEqual("1-5:1 7-1:1 7-2G:1 7-2M:1", q893.ToToolTip()); |
169 | 169 | var q894 = status.QuestCountList[9]; |
170 | 170 | Assert.AreEqual("1\u200a1\u200a1\u200a1\u200a1", q894.ToString()); |
171 | - Assert.AreEqual("1-3 1-4 2-1 2-2 2-3", q894.ToToolTip()); | |
171 | + Assert.AreEqual("1-3:1 1-4:1 2-1:1 2-2:1 2-3:1", q894.ToToolTip()); | |
172 | 172 | var q280 = status.QuestCountList[10]; |
173 | 173 | Assert.AreEqual("1\u200a1\u200a1\u200a1", q280.ToString()); |
174 | - Assert.AreEqual("1-2 1-3 1-4 2-1", q280.ToToolTip()); | |
174 | + Assert.AreEqual("1-2:1 1-3:1 1-4:1 2-1:1", q280.ToToolTip()); | |
175 | 175 | var q872 = status.QuestCountList.First(q => q.Id == 872); |
176 | 176 | Assert.AreEqual("1\u200a1\u200a1\u200a1", q872.ToString()); |
177 | - Assert.AreEqual("7-2M 5-5 6-2 6-5", q872.ToToolTip()); | |
177 | + Assert.AreEqual("7-2M:1 5-5:1 6-2:1 6-5:1", q872.ToToolTip()); | |
178 | 178 | var q284 = status.QuestCountList.First(q => q.Id == 284); |
179 | 179 | Assert.AreEqual("1\u200a1\u200a1\u200a1", q284.ToString()); |
180 | - Assert.AreEqual("1-4 2-1 2-2 2-3", q284.ToToolTip()); | |
180 | + Assert.AreEqual("1-4:1 2-1:1 2-2:1 2-3:1", q284.ToToolTip()); | |
181 | 181 | var q226 = status.QuestCountList.First(q => q.Id == 226); |
182 | 182 | Assert.AreEqual("2/5", q226.ToString()); |
183 | 183 | Assert.AreEqual("", q226.ToToolTip()); |
@@ -113,26 +113,19 @@ namespace KancolleSniffer.Model | ||
113 | 113 | |
114 | 114 | public string ToToolTip() |
115 | 115 | { |
116 | + if (NowArray == null) | |
117 | + return ""; | |
116 | 118 | if (Spec is QuestSortie spec && spec.Maps != null && spec.MaxArray != null) |
117 | 119 | { |
118 | - var flags = spec.MaxArray.All(x => x == 1); | |
119 | - return string.Join(" ", | |
120 | - spec.Maps.Zip(NowArray, (map, n) => n >= 1 ? $"{MapString(map)}{(flags ? "" : $":{n}")}" : "") | |
121 | - .Where(s => !string.IsNullOrEmpty(s))); | |
120 | + return string.Join(" ", spec.Maps.Zip(NowArray, (map, n) => $"{MapString(map)}:{n}")); | |
122 | 121 | } |
123 | - return Id switch | |
122 | + return string.Join(" ", (Id switch | |
124 | 123 | { |
125 | - 426 => string.Join(" ", | |
126 | - new[] {"警備任務", "対潜警戒任務", "海上護衛任務", "強硬偵察任務"}.Zip(NowArray, (mission, n) => n >= 1 ? mission : "") | |
127 | - .Where(s => !string.IsNullOrEmpty(s))), | |
128 | - 428 => string.Join(" ", | |
129 | - new[] {"対潜警戒任務", "海峡警備行動", "長時間対潜警戒"}.Zip(NowArray, (mission, n) => n >= 1 ? mission + n : "") | |
130 | - .Where(s => !string.IsNullOrEmpty(s))), | |
131 | - 688 => string.Join(" ", | |
132 | - new[] {"艦戦", "艦爆", "艦攻", "水偵"}.Zip(NowArray, (type, n) => n >= 1 ? type + n : "") | |
133 | - .Where(s => !string.IsNullOrEmpty(s))), | |
134 | - _ => "" | |
135 | - }; | |
124 | + 426 => new[] {"警備任務", "対潜警戒任務", "海上護衛任務", "強硬偵察任務"}, | |
125 | + 428 => new[] {"対潜警戒任務", "海峡警備行動", "長時間対潜警戒"}, | |
126 | + 688 => new[] {"艦戦", "艦爆", "艦攻", "水偵"}, | |
127 | + _ => new string[0] | |
128 | + }).Zip(NowArray, (entry, n) => $"{entry}{n}")); | |
136 | 129 | } |
137 | 130 | |
138 | 131 | public bool Cleared => NowArray?.Zip(Spec.MaxArray, (n, m) => n >= m).All(x => x) ?? |