OSDN Git Service

「継戦支援能力の整備」のカウンターを実装する
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Thu, 18 Jan 2018 13:58:47 +0000 (22:58 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 27 Jan 2018 08:34:02 +0000 (17:34 +0900)
KancolleSniffer.Test/QuestInfoTest.cs
KancolleSniffer/QuestInfo.cs

index e1e94a3..bdb85ba 100644 (file)
@@ -530,12 +530,13 @@ namespace KancolleSniffer.Test
         /// 674: 工廠環境の整備\r
         /// 675: 運用装備の統合整備\r
         /// 676: 装備開発力の集中整備\r
+        /// 677: 継戦支援能力の整備\r
         /// </summary>\r
         [TestMethod]\r
-        public void DestroyItem_613_638_673_674_675_676()\r
+        public void DestroyItem_613_638_673_674_675_676_677()\r
         {\r
             var itemInfo = new ItemInfo();\r
-            var questInfo = new QuestInfo(itemInfo, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 6};\r
+            var questInfo = new QuestInfo(itemInfo, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 7};\r
 \r
             itemInfo.InjectItemSpec(new[]\r
             {\r
@@ -544,9 +545,12 @@ namespace KancolleSniffer.Test
                 new ItemSpec {Id = 19, Name = "九六式艦戦", Type = 6},\r
                 new ItemSpec {Id = 4, Name = "14cm単装砲", Type = 2},\r
                 new ItemSpec {Id = 11, Name = "15.2cm単装砲", Type = 4},\r
-                new ItemSpec {Id = 75, Name = "ドラム缶(輸送用)", Type = 30}\r
+                new ItemSpec {Id = 75, Name = "ドラム缶(輸送用)", Type = 30},\r
+                new ItemSpec {Id = 7, Name = "35.6cm連装砲", Type = 3},\r
+                new ItemSpec {Id = 25, Name = "零式水上偵察機", Type = 10},\r
+                new ItemSpec {Id = 13, Name = "61cm三連装魚雷", Type = 5}\r
             });\r
-            itemInfo.InjectItems(new[] {1, 37, 19, 4, 11, 75});\r
+            itemInfo.InjectItems(new[] {1, 37, 19, 4, 11, 75, 7, 25, 13});\r
             questInfo.InspectQuestList(Js(new\r
             {\r
                 api_list = new[]\r
@@ -556,10 +560,11 @@ namespace KancolleSniffer.Test
                     new {api_no = 673, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},\r
                     new {api_no = 674, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},\r
                     new {api_no = 675, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},\r
-                    new {api_no = 676, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0}\r
+                    new {api_no = 676, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0},\r
+                    new {api_no = 677, api_category = 6, api_state = 2, api_title = "", api_progress_flag = 0}\r
                 }\r
             }));\r
-            questInfo.InspectDestroyItem("api%5Fslotitem%5Fids=1%2C2%2C3%2C4%2C5%2C6&api%5Fverno=1", null);\r
+            questInfo.InspectDestroyItem("api%5Fslotitem%5Fids=1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9&api%5Fverno=1", null);\r
             PAssert.That(() =>\r
                 questInfo.Quests.Select(q => new {q.Id, q.Count.Now}).Take(4).SequenceEqual(new[]\r
                 {\r
@@ -570,6 +575,8 @@ namespace KancolleSniffer.Test
             PAssert.That(() => q675.Id == 675 && q675.Count.NowArray.SequenceEqual(new[] {1, 1}));\r
             var q676 = questInfo.Quests[5];\r
             PAssert.That(() => q676.Id == 676 && q676.Count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
+            var q677 = questInfo.Quests[6];\r
+            PAssert.That(() => q677.Id == 677 && q677.Count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
         }\r
 \r
         /// <summary>\r
index 267d344..18a959b 100644 (file)
@@ -117,7 +117,7 @@ namespace KancolleSniffer
             {\r
                 if (progress != 100)\r
                     return false;\r
-                NowArray = NowArray.Zip(Spec.MaxArray, (n, m) => Max(n, m)).ToArray();\r
+                NowArray = NowArray.Zip(Spec.MaxArray, Max).ToArray();\r
                 return true;\r
             }\r
             var next = 0;\r
@@ -241,6 +241,7 @@ namespace KancolleSniffer
             {674, new QuestDestroyItem {Interval = Daily, Max = 3, Items = new[] {21}, Shift = 2}}, // 674: 工廠環境の整備\r
             {675, new QuestSpec {Interval = Quarterly, MaxArray = new[] {6, 4}}}, // 675: 運用装備の統合整備\r
             {676, new QuestSpec {Interval = Weekly, MaxArray = new[] {3, 3, 1}}}, // 676: 装備開発力の集中整備\r
+            {677, new QuestSpec {Interval = Weekly, MaxArray = new[] {4, 2, 3}}}, // 677: 継戦支援能力の整備\r
 \r
             {702, new QuestPowerup {Interval = Daily, Max = 2}}, // 702: 艦の「近代化改修」を実施せよ!\r
             {703, new QuestPowerup {Interval = Weekly, Max = 15}} // 703: 「近代化改修」を進め、戦備を整えよ!\r
@@ -597,6 +598,13 @@ namespace KancolleSniffer
                 q676.Count.NowArray[2] += items.Count(id => id == 30);\r
                 NeedSave = true;\r
             }\r
+            if (_quests.TryGetValue(677, out var q677))\r
+            {\r
+                q677.Count.NowArray[0] += items.Count(id => id == 3);\r
+                q677.Count.NowArray[1] += items.Count(id => id == 10);\r
+                q677.Count.NowArray[2] += items.Count(id => id == 5);\r
+                NeedSave = true;\r
+            }\r
         }\r
 \r
         public void InspectPowerup(dynamic json)\r