修订版 | bad21b1362e7e80c5fae7feb1c096c0ade6ea5d5 (tree) |
---|---|
时间 | 2020-09-26 21:54:58 |
作者 | Kazuhiro Fujieda <fujieda@user...> |
Commiter | Kazuhiro Fujieda |
兵站強化遠征任務【基本作戦】【拡張作戦】のカンターを追加する
@@ -168,7 +168,9 @@ namespace KancolleSniffer.Test | ||
168 | 168 | new QuestCount {Id = 226, Now = 2}, |
169 | 169 | new QuestCount {Id = 436, NowArray = new[] {1, 0, 1, 1, 1}}, |
170 | 170 | new QuestCount {Id = 437, NowArray = new[] {1, 0, 1, 1}}, |
171 | - new QuestCount {Id = 438, NowArray = new[] {1, 0, 1, 1}} | |
171 | + new QuestCount {Id = 438, NowArray = new[] {1, 0, 1, 1}}, | |
172 | + new QuestCount {Id = 439, NowArray = new[] {1, 0, 1, 1}}, | |
173 | + new QuestCount {Id = 440, NowArray = new[] {1, 0, 1, 1, 1}} | |
172 | 174 | } |
173 | 175 | }; |
174 | 176 | var countList = new QuestCountList(); |
@@ -181,13 +183,18 @@ namespace KancolleSniffer.Test | ||
181 | 183 | new {api_id = 5, api_name = "海上護衛任務"}, |
182 | 184 | new {api_id = 9, api_name = "タンカー護衛任務"}, |
183 | 185 | new {api_id = 10, api_name = "強行偵察任務"}, |
186 | + new {api_id = 11, api_name = "ボーキサイト輸送任務"}, | |
187 | + new {api_id = 40, api_name = "水上機前線輸送"}, | |
188 | + new {api_id = 46, api_name = "南西海域戦闘哨戒"}, | |
189 | + new {api_id = 71, api_name = "ブルネイ泊地沖哨戒"}, | |
184 | 190 | new {api_id = 100, api_name = "兵站強化任務"}, |
185 | 191 | new {api_id = 101, api_name = "海峡警備行動"}, |
186 | 192 | new {api_id = 102, api_name = "長時間対潜警戒"}, |
187 | 193 | new {api_id = 104, api_name = "小笠原沖哨戒線"}, |
188 | 194 | new {api_id = 105, api_name = "小笠原沖戦闘哨戒"}, |
189 | 195 | new {api_id = 110, api_name = "南西方面航空偵察作戦"}, |
190 | - new {api_id = 114, api_name = "南西諸島捜索撃滅戦"} | |
196 | + new {api_id = 114, api_name = "南西諸島捜索撃滅戦"}, | |
197 | + new {api_id = 142, api_name = "強行鼠輸送作戦"} | |
191 | 198 | })); |
192 | 199 | new QuestInfo(countList).LoadState(status); |
193 | 200 | Assert.AreEqual("2/3", status.QuestCountList[0].ToString()); |
@@ -238,6 +245,12 @@ namespace KancolleSniffer.Test | ||
238 | 245 | var q438 = status.QuestCountList.First(q => q.Id == 438); |
239 | 246 | Assert.AreEqual("1\u200a0\u200a1\u200a1", q438.ToString()); |
240 | 247 | Assert.AreEqual("対潜警戒任務1 兵站強化任務0 タンカー護衛任務1 南西諸島捜索撃滅戦1", q438.ToToolTip()); |
248 | + var q439 = status.QuestCountList.First(q => q.Id == 439); | |
249 | + Assert.AreEqual("1\u200a0\u200a1\u200a1", q439.ToString()); | |
250 | + Assert.AreEqual("海上護衛任務1 兵站強化任務0 ボーキサイト輸送任務1 南西方面航空偵察作戦1", q439.ToToolTip()); | |
251 | + var q440 = status.QuestCountList.First(q => q.Id == 440); | |
252 | + Assert.AreEqual("1\u200a0\u200a1\u200a1\u200a1", q440.ToString()); | |
253 | + Assert.AreEqual("海上護衛任務1 ブルネイ泊地沖哨戒0 南西海域戦闘哨戒1 水上機前線輸送1 強行鼠輸送作戦1", q440.ToToolTip()); | |
241 | 254 | } |
242 | 255 | } |
243 | 256 |
@@ -1730,6 +1743,66 @@ namespace KancolleSniffer.Test | ||
1730 | 1743 | } |
1731 | 1744 | |
1732 | 1745 | /// <summary> |
1746 | + /// 439: 兵站強化遠征任務【基本作戦】 | |
1747 | + /// </summary> | |
1748 | + [TestMethod] | |
1749 | + public void MissionResult_439() | |
1750 | + { | |
1751 | + var count = InjectQuest(439); | |
1752 | + | |
1753 | + _questCounter.InspectDeck(Js( | |
1754 | + new[] | |
1755 | + { | |
1756 | + new {api_id = 2, api_mission = new[] {2, 5}}, | |
1757 | + new {api_id = 3, api_mission = new[] {2, 100}}, | |
1758 | + new {api_id = 4, api_mission = new[] {2, 11}} | |
1759 | + })); | |
1760 | + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1})); | |
1761 | + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1})); | |
1762 | + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1})); | |
1763 | + PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0})); | |
1764 | + | |
1765 | + _questCounter.InspectDeck(Js( | |
1766 | + new[] | |
1767 | + { | |
1768 | + new {api_id = 2, api_mission = new[] {2, 110}} | |
1769 | + })); | |
1770 | + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1})); | |
1771 | + PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1})); | |
1772 | + } | |
1773 | + | |
1774 | + /// <summary> | |
1775 | + /// 440: 兵站強化遠征任務【拡張作戦】 | |
1776 | + /// </summary> | |
1777 | + [TestMethod] | |
1778 | + public void MissionResult_440() | |
1779 | + { | |
1780 | + var count = InjectQuest(440); | |
1781 | + | |
1782 | + _questCounter.InspectDeck(Js( | |
1783 | + new[] | |
1784 | + { | |
1785 | + new {api_id = 2, api_mission = new[] {2, 71}}, | |
1786 | + new {api_id = 3, api_mission = new[] {2, 5}}, | |
1787 | + new {api_id = 4, api_mission = new[] {2, 40}} | |
1788 | + })); | |
1789 | + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1})); | |
1790 | + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1})); | |
1791 | + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1})); | |
1792 | + PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 1, 0})); | |
1793 | + | |
1794 | + _questCounter.InspectDeck(Js( | |
1795 | + new[] | |
1796 | + { | |
1797 | + new {api_id = 2, api_mission = new[] {2, 142}}, | |
1798 | + new {api_id = 3, api_mission = new[] {2, 46}} | |
1799 | + })); | |
1800 | + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1})); | |
1801 | + _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 })); | |
1802 | + PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1})); | |
1803 | + } | |
1804 | + | |
1805 | + /// <summary> | |
1733 | 1806 | /// 503: 艦隊大整備! |
1734 | 1807 | /// 504: 艦隊酒保祭り! |
1735 | 1808 | /// </summary> |
@@ -33,34 +33,36 @@ namespace KancolleSniffer.Test | ||
33 | 33 | new DateTime(2017, 11, 1, 5, 0, 0), new DateTime(2017, 11, 6, 5, 0, 0), |
34 | 34 | new DateTime(2017, 12, 1, 5, 0, 0), new DateTime(2018, 2, 1, 5, 0, 0), |
35 | 35 | new DateTime(2018, 3, 1, 5, 0, 0), new DateTime(2018, 5, 1, 5, 0, 0), |
36 | - new DateTime(2018, 8, 1, 5, 0, 0) | |
36 | + new DateTime(2018, 8, 1, 5, 0, 0), new DateTime(2018, 9, 1, 5, 0, 0) | |
37 | 37 | }); |
38 | 38 | var questInfo = MakeQuestInfo(() => queue.Dequeue()); |
39 | 39 | var status = new Status |
40 | 40 | { |
41 | 41 | QuestCountList = new[] |
42 | 42 | { |
43 | - new QuestCount {Id = 201, Now = 1}, new QuestCount {Id = 213, Now = 1}, | |
43 | + new QuestCount {Id = 201, Now = 1}, | |
44 | 44 | new QuestCount {Id = 265, Now = 1}, |
45 | + new QuestCount {Id = 213, Now = 1}, | |
46 | + new QuestCount {Id = 822, Now = 1}, | |
47 | + new QuestCount {Id = 904, NowArray = new[] {1, 1, 1, 1}}, | |
45 | 48 | new QuestCount {Id = 436, NowArray = new[] {1, 1, 1, 1, 0}}, |
46 | 49 | new QuestCount {Id = 437, NowArray = new[] {1, 1, 1, 1}}, |
47 | 50 | new QuestCount {Id = 438, NowArray = new[] {1, 1, 1, 1}}, |
48 | - new QuestCount {Id = 822, Now = 1}, | |
49 | - new QuestCount {Id = 904, NowArray = new[] {1, 1, 1, 1}} | |
50 | 51 | }, |
51 | 52 | QuestLastReset = new DateTime(2017, 10, 31, 5, 0, 0) |
52 | 53 | }; |
54 | + var ids = status.QuestCountList.Select(qc => qc.Id).ToArray(); | |
53 | 55 | questInfo.LoadState(status); |
54 | - CheckQuestCountList(questInfo, status, new[] {213, 436, 437, 438, 822, 904}); // デイリーとマンスリーが消える | |
55 | - CheckQuestCountList(questInfo, status, new[] {436, 437, 438, 822, 904}); // ウィークリーが消える | |
56 | - CheckQuestCountList(questInfo, status, new[] {436, 437, 438, 904}); // クォータリーが消える | |
57 | - CheckQuestCountList(questInfo, status, new[] {436, 437, 438}); // イヤーリー2月が消える | |
58 | - CheckQuestCountList(questInfo, status, new[] {437, 438}); // イヤーリー3月が消える | |
59 | - CheckQuestCountList(questInfo, status, new[] {438}); // イヤーリー5月が消える | |
60 | - CheckQuestCountList(questInfo, status, new int[0]); // イヤーリー8月が消える | |
56 | + CheckQuestCountList(questInfo, status, ids.Skip(2)); // デイリーとマンスリーが消える | |
57 | + CheckQuestCountList(questInfo, status, ids.Skip(3)); // ウィークリーが消える | |
58 | + CheckQuestCountList(questInfo, status, ids.Skip(4)); // クォータリーが消える | |
59 | + CheckQuestCountList(questInfo, status, ids.Skip(5)); // イヤーリー2月が消える | |
60 | + CheckQuestCountList(questInfo, status, ids.Skip(6)); // イヤーリー3月が消える | |
61 | + CheckQuestCountList(questInfo, status, ids.Skip(7)); // イヤーリー5月が消える | |
62 | + CheckQuestCountList(questInfo, status, ids.Skip(8)); // イヤーリー8月が消える | |
61 | 63 | } |
62 | 64 | |
63 | - private void CheckQuestCountList(QuestInfo questInfo, Status status, int[] quests) | |
65 | + private void CheckQuestCountList(QuestInfo questInfo, Status status, IEnumerable<int> quests) | |
64 | 66 | { |
65 | 67 | InspectQuestList(questInfo, new[] {201}); |
66 | 68 | questInfo.SaveState(status); |
@@ -27,6 +27,7 @@ namespace KancolleSniffer.Model | ||
27 | 27 | private const QuestInterval Yearly3 = QuestInterval.Yearly3; |
28 | 28 | private const QuestInterval Yearly5 = QuestInterval.Yearly5; |
29 | 29 | private const QuestInterval Yearly8 = QuestInterval.Yearly8; |
30 | + private const QuestInterval Yearly9 = QuestInterval.Yearly9; | |
30 | 31 | |
31 | 32 | /// <summary> |
32 | 33 | /// このテーブルは七四式電子観測儀を参考に作成した。 |
@@ -103,6 +104,8 @@ namespace KancolleSniffer.Model | ||
103 | 104 | {436, new QuestMission {Interval = Yearly3, MaxArray = new[] {1, 1, 1, 1, 1}, Ids = new[] {1, 2, 3, 4, 10}, Material = new [] {0, 4, 0, 0}}}, // 436: 練習航海及び警備任務を実施せよ! |
104 | 105 | {437, new QuestMission {Interval = Yearly5, MaxArray = new[] {1, 1, 1, 1}, Ids = new[] {4, 104, 105, 110}, Material = new [] {0, 0, 7, 3}, Shift = 1}}, // 437: 小笠原沖哨戒線の強化を実施せよ! |
105 | 106 | {438, new QuestMission {Interval = Yearly8, MaxArray = new[] {1, 1, 1, 1}, Ids = new[] {4, 100, 9, 114}, Material = new[] {0, 0, 5, 4}, Shift = 1}}, // 438: 南西諸島方面の海上護衛を強化せよ! |
107 | + {439, new QuestMission {Interval = Yearly9, MaxArray = new[] {1, 1, 1, 1}, Ids = new[] {5, 100, 11, 110}, Material = new[] {0, 0, 5, 4}, Shift = 1}}, // 439: 兵站強化遠征任務【基本作戦】 | |
108 | + {440, new QuestMission {Interval = Yearly9, MaxArray = new[] {1, 1, 1, 1, 1}, Ids = new[] {5, 71, 46, 40, 142}, Material = new[] {0, 0, 0, 4}}}, // 440: 兵站強化遠征任務【拡張作戦】 | |
106 | 109 | |
107 | 110 | {503, new QuestSpec {Interval = Daily, Max = 5, Material = new[] {0, 2, 0, 0}}}, // 503: 艦隊大整備! |
108 | 111 | {504, new QuestSpec {Interval = Daily, Max = 15, Material = new[] {1, 0, 1, 0}}}, // 504: 艦隊酒保祭り! |
@@ -65,7 +65,8 @@ namespace KancolleSniffer.Model | ||
65 | 65 | Yearly2, |
66 | 66 | Yearly3, |
67 | 67 | Yearly5, |
68 | - Yearly8 | |
68 | + Yearly8, | |
69 | + Yearly9 | |
69 | 70 | } |
70 | 71 | |
71 | 72 | public class QuestInfo : IHaveState |
@@ -199,6 +200,7 @@ namespace KancolleSniffer.Model | ||
199 | 200 | QuestInterval.Yearly3 => CrossBoundary(new DateTime(_now.Year, 3, 1, 5, 0, 0)), |
200 | 201 | QuestInterval.Yearly5 => CrossBoundary(new DateTime(_now.Year, 5, 1, 5, 0, 0)), |
201 | 202 | QuestInterval.Yearly8 => CrossBoundary(new DateTime(_now.Year, 8, 1, 5, 0, 0)), |
203 | + QuestInterval.Yearly9 => CrossBoundary(new DateTime(_now.Year, 9, 1, 5, 0, 0)), | |
202 | 204 | _ => false |
203 | 205 | }; |
204 | 206 | } |