• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

修订版bad21b1362e7e80c5fae7feb1c096c0ade6ea5d5 (tree)
时间2020-09-26 21:54:58
作者Kazuhiro Fujieda <fujieda@user...>
CommiterKazuhiro Fujieda

Log Message

兵站強化遠征任務【基本作戦】【拡張作戦】のカンターを追加する

更改概述

差异

--- a/KancolleSniffer.Test/QuestCounterTest.cs
+++ b/KancolleSniffer.Test/QuestCounterTest.cs
@@ -168,7 +168,9 @@ namespace KancolleSniffer.Test
168168 new QuestCount {Id = 226, Now = 2},
169169 new QuestCount {Id = 436, NowArray = new[] {1, 0, 1, 1, 1}},
170170 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}}
172174 }
173175 };
174176 var countList = new QuestCountList();
@@ -181,13 +183,18 @@ namespace KancolleSniffer.Test
181183 new {api_id = 5, api_name = "海上護衛任務"},
182184 new {api_id = 9, api_name = "タンカー護衛任務"},
183185 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 = "ブルネイ泊地沖哨戒"},
184190 new {api_id = 100, api_name = "兵站強化任務"},
185191 new {api_id = 101, api_name = "海峡警備行動"},
186192 new {api_id = 102, api_name = "長時間対潜警戒"},
187193 new {api_id = 104, api_name = "小笠原沖哨戒線"},
188194 new {api_id = 105, api_name = "小笠原沖戦闘哨戒"},
189195 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 = "強行鼠輸送作戦"}
191198 }));
192199 new QuestInfo(countList).LoadState(status);
193200 Assert.AreEqual("2/3", status.QuestCountList[0].ToString());
@@ -238,6 +245,12 @@ namespace KancolleSniffer.Test
238245 var q438 = status.QuestCountList.First(q => q.Id == 438);
239246 Assert.AreEqual("1\u200a0\u200a1\u200a1", q438.ToString());
240247 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());
241254 }
242255 }
243256
@@ -1730,6 +1743,66 @@ namespace KancolleSniffer.Test
17301743 }
17311744
17321745 /// <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>
17331806 /// 503: 艦隊大整備!
17341807 /// 504: 艦隊酒保祭り!
17351808 /// </summary>
--- a/KancolleSniffer.Test/QuestInfoTest.cs
+++ b/KancolleSniffer.Test/QuestInfoTest.cs
@@ -33,34 +33,36 @@ namespace KancolleSniffer.Test
3333 new DateTime(2017, 11, 1, 5, 0, 0), new DateTime(2017, 11, 6, 5, 0, 0),
3434 new DateTime(2017, 12, 1, 5, 0, 0), new DateTime(2018, 2, 1, 5, 0, 0),
3535 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)
3737 });
3838 var questInfo = MakeQuestInfo(() => queue.Dequeue());
3939 var status = new Status
4040 {
4141 QuestCountList = new[]
4242 {
43- new QuestCount {Id = 201, Now = 1}, new QuestCount {Id = 213, Now = 1},
43+ new QuestCount {Id = 201, Now = 1},
4444 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}},
4548 new QuestCount {Id = 436, NowArray = new[] {1, 1, 1, 1, 0}},
4649 new QuestCount {Id = 437, NowArray = new[] {1, 1, 1, 1}},
4750 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}}
5051 },
5152 QuestLastReset = new DateTime(2017, 10, 31, 5, 0, 0)
5253 };
54+ var ids = status.QuestCountList.Select(qc => qc.Id).ToArray();
5355 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月が消える
6163 }
6264
63- private void CheckQuestCountList(QuestInfo questInfo, Status status, int[] quests)
65+ private void CheckQuestCountList(QuestInfo questInfo, Status status, IEnumerable<int> quests)
6466 {
6567 InspectQuestList(questInfo, new[] {201});
6668 questInfo.SaveState(status);
--- a/KancolleSniffer/Model/QuestCountList.cs
+++ b/KancolleSniffer/Model/QuestCountList.cs
@@ -27,6 +27,7 @@ namespace KancolleSniffer.Model
2727 private const QuestInterval Yearly3 = QuestInterval.Yearly3;
2828 private const QuestInterval Yearly5 = QuestInterval.Yearly5;
2929 private const QuestInterval Yearly8 = QuestInterval.Yearly8;
30+ private const QuestInterval Yearly9 = QuestInterval.Yearly9;
3031
3132 /// <summary>
3233 /// このテーブルは七四式電子観測儀を参考に作成した。
@@ -103,6 +104,8 @@ namespace KancolleSniffer.Model
103104 {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: 練習航海及び警備任務を実施せよ!
104105 {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: 小笠原沖哨戒線の強化を実施せよ!
105106 {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: 兵站強化遠征任務【拡張作戦】
106109
107110 {503, new QuestSpec {Interval = Daily, Max = 5, Material = new[] {0, 2, 0, 0}}}, // 503: 艦隊大整備!
108111 {504, new QuestSpec {Interval = Daily, Max = 15, Material = new[] {1, 0, 1, 0}}}, // 504: 艦隊酒保祭り!
--- a/KancolleSniffer/Model/QuestInfo.cs
+++ b/KancolleSniffer/Model/QuestInfo.cs
@@ -65,7 +65,8 @@ namespace KancolleSniffer.Model
6565 Yearly2,
6666 Yearly3,
6767 Yearly5,
68- Yearly8
68+ Yearly8,
69+ Yearly9
6970 }
7071
7172 public class QuestInfo : IHaveState
@@ -199,6 +200,7 @@ namespace KancolleSniffer.Model
199200 QuestInterval.Yearly3 => CrossBoundary(new DateTime(_now.Year, 3, 1, 5, 0, 0)),
200201 QuestInterval.Yearly5 => CrossBoundary(new DateTime(_now.Year, 5, 1, 5, 0, 0)),
201202 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)),
202204 _ => false
203205 };
204206 }