From 2d66c05b75b80949e847783a8c47c3b0d4073b55 Mon Sep 17 00:00:00 2001 From: Kazuhiro Fujieda Date: Thu, 11 Apr 2019 22:32:39 +0900 Subject: [PATCH] =?utf8?q?=E5=85=B5=E7=AB=99=E7=B7=9A=E7=A2=BA=E4=BF=9D?= =?utf8?q?=EF=BC=81=E6=B5=B7=E4=B8=8A=E8=AD=A6=E5=82=99=E3=82=92=E5=BC=B7?= =?utf8?q?=E5=8C=96=E5=AE=9F=E6=96=BD=E3=81=9B=E3=82=88=EF=BC=81=E3=81=AE?= =?utf8?q?=E3=82=AB=E3=82=A6=E3=83=B3=E3=82=BF=E3=82=92=E5=AE=9F=E8=A3=85?= =?utf8?q?=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- KancolleSniffer.Test/QuestInfoTest.cs | 56 ++++++++++++++++++++++++++++++++- KancolleSniffer/Model/QuestCountList.cs | 3 +- KancolleSniffer/Model/QuestInfo.cs | 27 +++++++++++++++- 3 files changed, 83 insertions(+), 3 deletions(-) diff --git a/KancolleSniffer.Test/QuestInfoTest.cs b/KancolleSniffer.Test/QuestInfoTest.cs index 51ddaaa..e069bcb 100644 --- a/KancolleSniffer.Test/QuestInfoTest.cs +++ b/KancolleSniffer.Test/QuestInfoTest.cs @@ -690,6 +690,56 @@ namespace KancolleSniffer.Test } /// + /// 280: 兵站線確保!海上警備を強化実施せよ! + /// + [TestMethod] + public void BattleResult_280() + { + var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1)); + questInfo.InspectQuestList(CreateQuestList(new[] {280})); + + questInfo.InspectMapNext(Js(new + { + api_maparea_id = 1, + api_mapinfo_no = 2, + api_event_id = 4 + })); + questInfo.InspectBattleResult(Js(new {api_win_rank = "S"})); + questInfo.InspectMapNext(Js(new + { + api_maparea_id = 1, + api_mapinfo_no = 2, + api_event_id = 5 + })); + questInfo.InspectBattleResult(Js(new {api_win_rank = "A"})); + PAssert.That(() => questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {0, 0, 0, 0})); + + questInfo.InspectBattleResult(Js(new {api_win_rank = "S"})); + questInfo.InspectMapNext(Js(new + { + api_maparea_id = 1, + api_mapinfo_no = 3, + api_event_id = 5 + })); + questInfo.InspectBattleResult(Js(new {api_win_rank = "S"})); + questInfo.InspectMapNext(Js(new + { + api_maparea_id = 1, + api_mapinfo_no = 4, + api_event_id = 5 + })); + questInfo.InspectBattleResult(Js(new {api_win_rank = "S"})); + questInfo.InspectMapNext(Js(new + { + api_maparea_id = 2, + api_mapinfo_no = 1, + api_event_id = 5 + })); + questInfo.InspectBattleResult(Js(new {api_win_rank = "S"})); + PAssert.That(() => questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1, 1})); + } + + /// /// 822: 沖ノ島海域迎撃戦 /// 854: 戦果拡張任務!「Z作戦」前段作戦 /// @@ -1469,7 +1519,8 @@ namespace KancolleSniffer.Test new QuestCount {Id = 888, NowArray = new[] {1, 1, 1}}, new QuestCount {Id = 688, NowArray = new[] {2, 1, 2, 1}}, new QuestCount {Id = 893, NowArray = new[] {1, 1, 1, 1}}, - new QuestCount {Id = 894, NowArray = new[] {1, 1, 1, 1, 1}} + new QuestCount {Id = 894, NowArray = new[] {1, 1, 1, 1, 1}}, + new QuestCount {Id = 280, NowArray = new[] {1, 1, 1, 1}} } }; questInfo.LoadState(status); @@ -1500,6 +1551,9 @@ namespace KancolleSniffer.Test var q894 = status.QuestCountList[9]; PAssert.That(() => q894.ToString() == "5/5"); PAssert.That(() => q894.ToToolTip() == "1-3 1-4 2-1 2-2 2-3"); + var q280 = status.QuestCountList[10]; + PAssert.That(() => q280.ToString() == "4/4"); + PAssert.That(() => q280.ToToolTip() == "1-2 1-3 1-4 2-1"); } /// diff --git a/KancolleSniffer/Model/QuestCountList.cs b/KancolleSniffer/Model/QuestCountList.cs index 7f066d5..22ff7eb 100644 --- a/KancolleSniffer/Model/QuestCountList.cs +++ b/KancolleSniffer/Model/QuestCountList.cs @@ -56,7 +56,8 @@ namespace KancolleSniffer.Model {261, new QuestSortie {Interval = Weekly, Max = 3, Rank = "A", Maps = new[] {15}, Material = new[] {0, 0, 0, 3}}}, // 261: 海上輸送路の安全確保に努めよ! {264, new QuestSpec {Interval = Monthly, Max = 1, Material = new[] {0, 0, 0, 2}}}, // 264: 「空母機動部隊」西へ! {265, new QuestSortie {Interval = Monthly, Max = 10, Rank = "A", Maps = new[] {15}, Material = new[] {0, 0, 5, 3}}}, // 265: 海上護衛強化月間 - {266, new QuestSpec {Interval = Monthly, Max = 1, Material = new[] {0, 0, 4, 2}}}, // 266: 「水上反撃部隊」突入せよ! + {266, new QuestSpec {Interval = Monthly, Max = 1, Material = new[] {4, 4, 0, 2}}}, // 266: 「水上反撃部隊」突入せよ! + {280, new QuestSpec {Interval = Monthly, MaxArray = new[] {1, 1, 1, 1}, Material = new[] {0, 4, 4, 2}}}, // 280: 兵站線確保!海上警備を強化実施せよ! {822, new QuestSortie {Interval = Quarterly, Max = 2, Rank = "S", Maps = new[] {24}, Material = new[] {0, 0, 0, 5}}}, // 822: 沖ノ島海域迎撃戦 {854, new QuestSpec {Interval = Quarterly, MaxArray = new[] {1, 1, 1, 1}, Material = new[] {0, 0, 0, 4}}}, // 854: 戦果拡張任務!「Z作戦」前段作戦 diff --git a/KancolleSniffer/Model/QuestInfo.cs b/KancolleSniffer/Model/QuestInfo.cs index 644024a..a2cb27b 100644 --- a/KancolleSniffer/Model/QuestInfo.cs +++ b/KancolleSniffer/Model/QuestInfo.cs @@ -196,7 +196,7 @@ namespace KancolleSniffer.Model public override string ToString() { - if (Id == 426 || Id == 854 || Id == 873 || Id == 888 || Id == 894) + if (Id == 280 || Id == 426 || Id == 854 || Id == 873 || Id == 888 || Id == 894) return $"{NowArray.Count(n => n >= 1)}/{Spec.MaxArray.Length}"; return NowArray != null ? string.Join(" ", NowArray.Zip(Spec.MaxArray, (n, m) => $"{n}/{m}")) @@ -207,6 +207,10 @@ namespace KancolleSniffer.Model { switch (Id) { + case 280: + return string.Join(" ", + new[] {"1-2", "1-3", "1-4", "2-1"}.Zip(NowArray, (map, n) => n >= 1 ? map : "") + .Where(s => !string.IsNullOrEmpty(s))); case 426: return string.Join(" ", new[] {"警備任務", "対潜警戒任務", "海上護衛任務", "強硬偵察任務"} @@ -554,6 +558,27 @@ namespace KancolleSniffer.Model IncrementCount(q266.Count); } } + if (_quests.TryGetValue(280, out var q280)) + { + if (!(_boss && QuestSortie.CompareRank(rank, "S") == 0)) + return; + var count = q280.Count; + switch (_map) + { + case 12: + IncrementNowArray(count, 0); + break; + case 13: + IncrementNowArray(count, 1); + break; + case 14: + IncrementNowArray(count, 2); + break; + case 21: + IncrementNowArray(count, 3); + break; + } + } if (_quests.TryGetValue(854, out var opz) && _boss) { var count = opz.Count; -- 2.11.0