// limitations under the License.\r
\r
using System;\r
+using System.Collections.Generic;\r
using System.Linq;\r
+using DynaJson;\r
using ExpressionToCodeLib;\r
using KancolleSniffer.Model;\r
-using KancolleSniffer.Util;\r
using Microsoft.VisualStudio.TestTools.UnitTesting;\r
\r
namespace KancolleSniffer.Test\r
new QuestCount {Id = 872, NowArray = new[] {1, 1, 1, 1}},\r
new QuestCount {Id = 284, NowArray = new[] {1, 1, 1, 1}},\r
new QuestCount {Id = 226, Now = 2},\r
+ new QuestCount {Id = 434, NowArray = new[] {1, 0, 1, 0, 1}},\r
new QuestCount {Id = 436, NowArray = new[] {1, 0, 1, 1, 1}},\r
+ new QuestCount {Id = 437, NowArray = new[] {1, 0, 1, 1}},\r
+ new QuestCount {Id = 438, NowArray = new[] {1, 0, 1, 1}},\r
+ new QuestCount {Id = 439, NowArray = new[] {1, 0, 1, 1}},\r
+ new QuestCount {Id = 440, NowArray = new[] {1, 0, 1, 1, 1}}\r
}\r
};\r
- new QuestInfo().LoadState(status);\r
+ var countList = new QuestCountList();\r
+ countList.SetMissionNames(new JsonObject(new[]\r
+ {\r
+ new {api_id = 1, api_name = "練習航海"},\r
+ new {api_id = 2, api_name = "長距離練習航海"},\r
+ new {api_id = 3, api_name = "警備任務"},\r
+ new {api_id = 4, api_name = "対潜警戒任務"},\r
+ new {api_id = 5, api_name = "海上護衛任務"},\r
+ new {api_id = 9, api_name = "タンカー護衛任務"},\r
+ new {api_id = 10, api_name = "強行偵察任務"},\r
+ new {api_id = 11, api_name = "ボーキサイト輸送任務"},\r
+ new {api_id = 40, api_name = "水上機前線輸送"},\r
+ new {api_id = 41, api_name = "ブルネイ泊地沖哨戒"},\r
+ new {api_id = 46, api_name = "南西海域戦闘哨戒"},\r
+ new {api_id = 100, api_name = "兵站強化任務"},\r
+ new {api_id = 101, api_name = "海峡警備行動"},\r
+ new {api_id = 102, api_name = "長時間対潜警戒"},\r
+ new {api_id = 104, api_name = "小笠原沖哨戒線"},\r
+ new {api_id = 105, api_name = "小笠原沖戦闘哨戒"},\r
+ new {api_id = 110, api_name = "南西方面航空偵察作戦"},\r
+ new {api_id = 114, api_name = "南西諸島捜索撃滅戦"},\r
+ new {api_id = 142, api_name = "強行鼠輸送作戦"}\r
+ }));\r
+ new QuestInfo(countList).LoadState(status);\r
Assert.AreEqual("2/3", status.QuestCountList[0].ToString());\r
Assert.AreEqual("20/36 7/6 10/24 8/12", status.QuestCountList[1].ToString());\r
var z = status.QuestCountList[2];\r
Assert.AreEqual("2-4:0 6-1:0 6-3:0 6-4:0", z.ToToolTip());\r
var q426 = status.QuestCountList[3];\r
Assert.AreEqual("1\u200a1\u200a1\u200a1", q426.ToString());\r
- Assert.AreEqual("警備任務1 対潜警戒任務1 海上護衛任務1 強硬偵察任務1", q426.ToToolTip());\r
+ Assert.AreEqual("警備任務1 対潜警戒任務1 海上護衛任務1 強行偵察任務1", q426.ToToolTip());\r
var q428 = status.QuestCountList[4];\r
Assert.AreEqual("対潜警戒任務1 海峡警備行動1 長時間対潜警戒1", q428.ToToolTip());\r
q428.NowArray = new[] {0, 1, 0};\r
var q226 = status.QuestCountList.First(q => q.Id == 226);\r
Assert.AreEqual("2/5", q226.ToString());\r
Assert.AreEqual("", q226.ToToolTip());\r
+ var q434 = status.QuestCountList.First(q => q.Id == 434);\r
+ Assert.AreEqual("1\u200a0\u200a1\u200a0\u200a1", q434.ToString());\r
+ Assert.AreEqual("警備任務1 海上護衛任務0 兵站強化任務1 海峡警備行動0 タンカー護衛任務1", q434.ToToolTip());\r
var q436 = status.QuestCountList.First(q => q.Id == 436);\r
Assert.AreEqual("1\u200a0\u200a1\u200a1\u200a1", q436.ToString());\r
Assert.AreEqual("練習航海1 長距離練習航海0 警備任務1 対潜警戒任務1 強行偵察任務1", q436.ToToolTip());\r
+ var q437 = status.QuestCountList.First(q => q.Id == 437);\r
+ Assert.AreEqual("1\u200a0\u200a1\u200a1", q437.ToString());\r
+ Assert.AreEqual("対潜警戒任務1 小笠原沖哨戒線0 小笠原沖戦闘哨戒1 南西方面航空偵察作戦1", q437.ToToolTip());\r
+ var q438 = status.QuestCountList.First(q => q.Id == 438);\r
+ Assert.AreEqual("1\u200a0\u200a1\u200a1", q438.ToString());\r
+ Assert.AreEqual("兵站強化任務1 対潜警戒任務0 タンカー護衛任務1 南西諸島捜索撃滅戦1", q438.ToToolTip());\r
+ var q439 = status.QuestCountList.First(q => q.Id == 439);\r
+ Assert.AreEqual("1\u200a0\u200a1\u200a1", q439.ToString());\r
+ Assert.AreEqual("海上護衛任務1 兵站強化任務0 ボーキサイト輸送任務1 南西方面航空偵察作戦1", q439.ToToolTip());\r
+ var q440 = status.QuestCountList.First(q => q.Id == 440);\r
+ Assert.AreEqual("1\u200a0\u200a1\u200a1\u200a1", q440.ToString());\r
+ Assert.AreEqual("ブルネイ泊地沖哨戒1 海上護衛任務0 水上機前線輸送1 強行鼠輸送作戦1 南西海域戦闘哨戒1", q440.ToToolTip());\r
}\r
}\r
\r
[TestClass]\r
public class QuestCounterTest\r
{\r
- private JsonObject Js(object obj) => JsonObject.CreateJsonObject(obj);\r
+ private JsonObject Js(object obj) => new JsonObject(obj);\r
\r
private object CreateQuestList(int[] ids) => Js(new\r
{\r
\r
private QuestCount InjectQuest(int id)\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {id}));\r
+ InjectQuestList(new[] {id});\r
return _questInfo.Quests[0].Count;\r
}\r
\r
+ private void InjectQuestList(int[] ids)\r
+ {\r
+ _questInfo.InspectQuestList("api_tab_id=0", CreateQuestList(ids));\r
+ }\r
+\r
private void InjectMapStart(int map, int eventId)\r
{\r
_questCounter.InspectMapStart(CreateMap(map, eventId));\r
\r
\r
private BattleInfo _battleInfo;\r
- private ItemInfo _itemInfo;\r
+ private ItemInventory _itemInventory;\r
+ private ShipInventory _shipInventory;\r
private QuestInfo _questInfo;\r
private QuestCounter _questCounter;\r
\r
public void Initialize()\r
{\r
_battleInfo = new BattleInfo(null, null, null);\r
- _itemInfo = new ItemInfo(new ItemMaster(), new ItemInventory());\r
- _questInfo = new QuestInfo(() => new DateTime(2015, 1, 1)) {AcceptMax = 10};\r
- _questCounter = new QuestCounter(_questInfo, _itemInfo, _battleInfo);\r
+ _itemInventory = new ItemInventory();\r
+ _shipInventory = new ShipInventory();\r
+ _questInfo = new QuestInfo(new QuestCountList(), () => new DateTime(2015, 1, 1));\r
+ _questCounter = new QuestCounter(_questInfo, _itemInventory, _shipInventory, _battleInfo);\r
}\r
\r
/// <summary>\r
[TestMethod]\r
public void BattleResult_201_216_210_214()\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {201, 216, 210, 214}));\r
+ InjectQuestList(new[] {201, 216, 210, 214});\r
\r
InjectMapStart(11, 4);\r
var counts = _questInfo.Quests.Select(q => q.Count).ToArray();\r
new {Id = 214, Now = 0}, new {Id = 216, Now = 2}\r
}));\r
PAssert.That(() => counts[2].NowArray.SequenceEqual(new[] {1, 1, 2, 1}));\r
+\r
+ // 1-6 ゴール\r
+ InjectMapNext(16,8);\r
+ Assert.AreEqual(2, counts[0].Now);\r
}\r
\r
/// <summary>\r
[TestMethod]\r
public void BattleResult_211_212_213_218_220_221()\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {211, 212, 213, 218, 220, 221}));\r
+ InjectQuestList(new[] {211, 212, 213, 218, 220, 221});\r
// 補給艦1隻と空母2隻\r
_battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
{\r
[TestMethod]\r
public void BattleResult_228_230()\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {228, 230}));\r
+ InjectQuestList(new[] {228, 230});\r
// 潜水艦3\r
_battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
{\r
}\r
\r
/// <summary>\r
+ /// 840: 【節分任務】令和三年節分作戦\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void BattleResult_840()\r
+ {\r
+ var count = InjectQuest(840);\r
+\r
+ _battleInfo.InjectResultStatus(\r
+ ShipStatusList(7, 2, 1), new ShipStatus[0],\r
+ new ShipStatus[0], new ShipStatus[0]);\r
+\r
+ InjectMapNext(21, 5);\r
+ InjectBattleResult("A");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
+ _battleInfo.Result.Friend.Main = ShipStatusList(7, 2, 1, 1);\r
+ InjectBattleResult("B");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
+ InjectBattleResult("A");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}));\r
+\r
+ _battleInfo.Result.Friend.Main = ShipStatusList(3, 2, 1, 1);\r
+ InjectMapNext(22, 5);\r
+ InjectBattleResult("A");\r
+ _battleInfo.Result.Friend.Main = ShipStatusList(21, 2, 1, 1);\r
+ InjectMapNext(23, 5);\r
+ InjectBattleResult("A");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
+ }\r
+\r
+ /// <summary>\r
/// 822: 沖ノ島海域迎撃戦\r
/// 854: 戦果拡張任務!「Z作戦」前段作戦\r
/// </summary>\r
[TestMethod]\r
public void BattleResult_822_854()\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {822, 854}));\r
+ InjectQuestList(new[] {822, 854});\r
var c822 = _questInfo.Quests[0].Count;\r
var c854 = _questInfo.Quests[1].Count;\r
\r
InjectBattleResult("S");\r
PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "ボス以外はカウントしない");\r
\r
+ _battleInfo.Result.Friend.Main[0] = ShipStatus("夕張改");\r
+ InjectBattleResult("S");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "旗艦が夕張改");\r
+\r
_battleInfo.Result.Friend.Main = new[] {ShipStatus("睦月"), ShipStatus("如月"), ShipStatus("夕張改二")};\r
InjectMapNext(54, 5);\r
InjectBattleResult("S");\r
InjectMapNext(65, 5);\r
InjectBattleResult("S");\r
PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "6-5");\r
+\r
+ _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("由良改")};\r
+ InjectBattleResult("S");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "由良改");\r
+\r
+ _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("由良改二")};\r
+ InjectBattleResult("S");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 2}), "由良改二");\r
}\r
\r
/// <summary>\r
{\r
var count = InjectQuest(904);\r
_battleInfo.InjectResultStatus(\r
- new []{ShipStatus("綾波改二"), ShipStatus("敷波")},\r
+ new[] {ShipStatus("綾波改二"), ShipStatus("敷波")},\r
new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
\r
InjectMapNext(25, 5);\r
{\r
var count = InjectQuest(912);\r
_battleInfo.InjectResultStatus(\r
- new []{ShipStatus("明石"), ShipStatus(2), ShipStatus(2), ShipStatus(1)},\r
+ new[] {ShipStatus("明石"), ShipStatus(2), ShipStatus(2), ShipStatus(1)},\r
new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
\r
InjectMapNext(13, 5);\r
{\r
var count = InjectQuest(914);\r
_battleInfo.InjectResultStatus(\r
- new []{ShipStatus(5), ShipStatus(5), ShipStatus(5), ShipStatus(1)},\r
+ new[] {ShipStatus(5), ShipStatus(5), ShipStatus(5), ShipStatus(1)},\r
new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
\r
InjectMapNext(41, 5);\r
}\r
\r
/// <summary>\r
+ /// 928: 歴戦「第十方面艦隊」、全力出撃!\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void BattleResult_928()\r
+ {\r
+ var count = InjectQuest(928);\r
+ _battleInfo.InjectResultStatus(\r
+ new[]\r
+ {\r
+ ShipStatus("羽黒改二"), ShipStatus("那智"), ShipStatus(1), ShipStatus(1), ShipStatus(1), ShipStatus(1)\r
+ },\r
+ new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+\r
+ InjectMapNext(732, 5);\r
+ InjectBattleResult("S");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
+\r
+ _battleInfo.Result.Friend.Main[1] = ShipStatus("妙高");\r
+ InjectBattleResult("A");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
+ InjectBattleResult("S");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}));\r
+\r
+ _battleInfo.Result.Friend.Main[0] = ShipStatus("妙高");\r
+ _battleInfo.Result.Friend.Main[1] = ShipStatus("高雄");\r
+ InjectMapNext(722, 5);\r
+ InjectBattleResult("S");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0}));\r
+\r
+ _battleInfo.Result.Friend.Main[0] = ShipStatus("神風");\r
+ _battleInfo.Result.Friend.Main[1] = ShipStatus("高雄");\r
+ InjectMapNext(42, 5);\r
+ InjectBattleResult("S");\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
+ }\r
+\r
+ /// <summary>\r
/// 280と854以降を同時に遂行していると854以降がカウントされないことがある\r
/// </summary>\r
[TestMethod]\r
public void BattleResult_280_854()\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {280, 854}));\r
+ InjectQuestList(new[] {280, 854});\r
\r
_battleInfo.InjectResultStatus(\r
ShipStatusList(1, 1, 1, 1, 1, 1), new ShipStatus[0],\r
[TestMethod]\r
public void BattleResult_888_893()\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {888, 893}));\r
+ InjectQuestList(new[] {888, 893});\r
\r
_battleInfo.InjectResultStatus(\r
ShipStatusList(1, 1, 1, 1, 1, 1), new ShipStatus[0],\r
[TestMethod]\r
public void PracticeResult_303_304_302_311_315()\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311, 315}));\r
+ InjectQuestList(new[] {302, 303, 304, 311, 315});\r
\r
_battleInfo.InjectResultStatus(new[]\r
{\r
Assert.AreEqual(1, count.Now);\r
\r
count.Now = 2;\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {318}));\r
+ InjectQuestList(new[] {318});\r
Assert.AreEqual(2, count.Now, "進捗調節しない");\r
}\r
\r
/// <summary>\r
+ /// 329: 【節分任務】節分演習!\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void PracticeResult_329()\r
+ {\r
+ var count = InjectQuest(329);\r
+\r
+ _battleInfo.InjectResultStatus(\r
+ ShipStatusList(3, 2),\r
+ new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+ InjectPracticeResult("S");\r
+ Assert.AreEqual(0, count.Now, "軽巡、駆逐");\r
+\r
+ _battleInfo.Result.Friend.Main = ShipStatusList(3, 2, 1);\r
+ InjectPracticeResult("A");\r
+ Assert.AreEqual(0, count.Now, "A勝利でカウントしない");\r
+\r
+ _battleInfo.Result.Friend.Main = ShipStatusList(3, 2, 1);\r
+ InjectPracticeResult("S");\r
+ Assert.AreEqual(1, count.Now, "軽巡、駆逐、海防");\r
+ }\r
+\r
+ /// <summary>\r
/// 330: 空母機動部隊、演習始め!\r
/// </summary>\r
[TestMethod]\r
{\r
var count = InjectQuest(337);\r
\r
- _battleInfo.InjectResultStatus(new []\r
+ _battleInfo.InjectResultStatus(new[]\r
{\r
ShipStatus("霰"), ShipStatus("霰"),\r
ShipStatus("陽炎"), ShipStatus("不知火"),\r
{\r
var count = InjectQuest(339);\r
\r
- _battleInfo.InjectResultStatus(new []\r
+ _battleInfo.InjectResultStatus(new[]\r
{\r
ShipStatus("磯波"), ShipStatus("浦波"),\r
ShipStatus("綾波"), ShipStatus("敷波"),\r
}\r
\r
/// <summary>\r
+ /// 342: 小艦艇群演習強化任務\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void PracticeResult_342()\r
+ {\r
+ var count = InjectQuest(342);\r
+\r
+ _battleInfo.InjectResultStatus(new[] {ShipStatus(1), ShipStatus(1), ShipStatus(2), ShipStatus(5)},\r
+ new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+ InjectPracticeResult("A");\r
+ Assert.AreEqual(0, count.Now);\r
+\r
+ InjectPracticeResult("B");\r
+ Assert.AreEqual(0, count.Now);\r
+\r
+ _battleInfo.Result.Friend.Main[3] = ShipStatus(2);\r
+ InjectPracticeResult("A");\r
+ Assert.AreEqual(1, count.Now);\r
+\r
+ _battleInfo.Result.Friend.Main[3] = ShipStatus(3);\r
+ InjectPracticeResult("A");\r
+ Assert.AreEqual(2, count.Now);\r
+\r
+ _battleInfo.Result.Friend.Main[3] = ShipStatus(4);\r
+ InjectPracticeResult("A");\r
+ Assert.AreEqual(3, count.Now);\r
+\r
+ _battleInfo.Result.Friend.Main[3] = ShipStatus(21);\r
+ InjectPracticeResult("A");\r
+ Assert.AreEqual(4, count.Now);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 345: 演習ティータイム!\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void PracticeResult_345()\r
+ {\r
+ var count = InjectQuest(345);\r
+\r
+ _battleInfo.InjectResultStatus(new []{ShipStatus("Warspite"), ShipStatus("金剛"), ShipStatus("Ark Royal"), ShipStatus("Richelieu"), ShipStatus("Perth")},\r
+ new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+ InjectPracticeResult("B");\r
+ Assert.AreEqual(0, count.Now);\r
+\r
+ InjectPracticeResult("A");\r
+ Assert.AreEqual(0, count.Now);\r
+\r
+ _battleInfo.Result.Friend.Main[3] = ShipStatus("Jervis");\r
+ InjectPracticeResult("A");\r
+ Assert.AreEqual(1, count.Now);\r
+\r
+ _battleInfo.Result.Friend.Main[0] = ShipStatus("Janus");\r
+ InjectPracticeResult("A");\r
+ Assert.AreEqual(2, count.Now);\r
+\r
+ _battleInfo.Result.Friend.Main[1] = ShipStatus("Richelieu");\r
+ InjectPracticeResult("A");\r
+ Assert.AreEqual(2, count.Now);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 346: 最精鋭!主力オブ主力、演習開始!\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void PracticeResult_346()\r
+ {\r
+ var count = InjectQuest(346);\r
+\r
+ _battleInfo.InjectResultStatus(new []{ShipStatus("夕雲改二"), ShipStatus("巻雲改二"), ShipStatus("風雲改二"), ShipStatus("秋雲改")},\r
+ new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+ InjectPracticeResult("A");\r
+ Assert.AreEqual(0, count.Now);\r
+\r
+ InjectPracticeResult("S");\r
+ Assert.AreEqual(0, count.Now);\r
+\r
+ _battleInfo.Result.Friend.Main[3] = ShipStatus("秋雲改二");\r
+ InjectPracticeResult("S");\r
+ Assert.AreEqual(1, count.Now);\r
+\r
+ _battleInfo.Result.Friend.Main[0] = ShipStatus("綾波改二");\r
+ InjectPracticeResult("S");\r
+ Assert.AreEqual(1, count.Now);\r
+ }\r
+\r
+ /// <summary>\r
/// 402: 「遠征」を3回成功させよう!\r
/// 403: 「遠征」を10回成功させよう!\r
/// 404: 大規模遠征作戦、発令!\r
[TestMethod]\r
public void MissionResult_402_403_404_410_411()\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {402, 403, 404, 410, 411}));\r
+ InjectQuestList(new[] {402, 403, 404, 410, 411});\r
\r
_questCounter.InspectDeck(Js(\r
new[]\r
}\r
\r
/// <summary>\r
+ /// 434: 特設護衛船団司令部、活動開始!\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void MissionResult_434()\r
+ {\r
+ var count = InjectQuest(434);\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 3}},\r
+ new {api_id = 3, api_mission = new[] {2, 5}},\r
+ new {api_id = 4, api_mission = new[] {2, 100}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}));\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 101}},\r
+ new {api_id = 3, api_mission = new[] {2, 9}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
+ }\r
+\r
+ /// <summary>\r
/// 436: 練習航海及び警備任務を実施せよ!\r
/// </summary>\r
[TestMethod]\r
}\r
\r
/// <summary>\r
+ /// 437: 小笠原沖哨戒線の強化を実施せよ!\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void MissionResult_437()\r
+ {\r
+ var count = InjectQuest(437);\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 4}},\r
+ new {api_id = 3, api_mission = new[] {2, 104}},\r
+ new {api_id = 4, api_mission = new[] {2, 105}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 110}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
+ }\r
+\r
+ /// <summary>\r
+ /// 438: 南西諸島方面の海上護衛を強化せよ!\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void MissionResult_438()\r
+ {\r
+ var count = InjectQuest(438);\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 4}},\r
+ new {api_id = 3, api_mission = new[] {2, 100}},\r
+ new {api_id = 4, api_mission = new[] {2, 9}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new { api_clear_result = 1 }));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 0 }));\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 114}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 }));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 1 }));\r
+ }\r
+\r
+ /// <summary>\r
+ /// 439: 兵站強化遠征任務【基本作戦】\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void MissionResult_439()\r
+ {\r
+ var count = InjectQuest(439);\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 5}},\r
+ new {api_id = 3, api_mission = new[] {2, 100}},\r
+ new {api_id = 4, api_mission = new[] {2, 11}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 110}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
+ }\r
+\r
+ /// <summary>\r
+ /// 440: 兵站強化遠征任務【拡張作戦】\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void MissionResult_440()\r
+ {\r
+ var count = InjectQuest(440);\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 41}},\r
+ new {api_id = 3, api_mission = new[] {2, 5}},\r
+ new {api_id = 4, api_mission = new[] {2, 40}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}));\r
+\r
+ _questCounter.InspectDeck(Js(\r
+ new[]\r
+ {\r
+ new {api_id = 2, api_mission = new[] {2, 142}},\r
+ new {api_id = 3, api_mission = new[] {2, 46}}\r
+ }));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+ _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 }));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
+ }\r
+\r
+ /// <summary>\r
/// 503: 艦隊大整備!\r
/// 504: 艦隊酒保祭り!\r
/// </summary>\r
[TestMethod]\r
public void PowerUp_503_504()\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {503, 504}));\r
+ InjectQuestList(new[] {503, 504});\r
\r
_questCounter.CountNyukyo();\r
_questCounter.CountCharge();\r
[TestMethod]\r
public void Kousyou_605_606_607_608_609_619()\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {605, 606, 607, 608, 609, 619}));\r
+ InjectQuestList(new[] {605, 606, 607, 608, 609, 619});\r
\r
_questCounter.InspectCreateItem(\r
"api_verno=1&api_item1=10&api_item2=10&api_item3=30&api_item4=10&api_multiple_flag=0");\r
/// 643: 主力「陸攻」の調達\r
/// 645: 「洋上補給」物資の調達\r
/// 653: 工廠稼働!次期作戦準備!\r
+ /// 654: 精鋭複葉機飛行隊の編成\r
+ /// 657: 新型兵装開発整備の強化\r
/// 663: 新型艤装の継続研究\r
/// 673: 装備開発力の整備\r
/// 674: 工廠環境の整備\r
/// 677: 継戦支援能力の整備\r
/// 678: 主力艦上戦闘機の更新\r
/// 680: 対空兵装の整備拡充\r
+ /// 681: 航空戦力の再編増強準備\r
/// 688: 航空戦力の強化\r
/// </summary>\r
[TestMethod]\r
- public void DestroyItem_613_638_643_645_653_663_673_674_675_676_677_678_680_686_688()\r
+ public void DestroyItem_613_638_643_645_653_654_655_657_663_673_674_675_676_677_678_680_681_686_688()\r
{\r
- _itemInfo.InjectItemSpec(new[]\r
+ InjectItems(new[]\r
{\r
new ItemSpec {Id = 1, Name = "12cm単装砲", Type = 1},\r
new ItemSpec {Id = 37, Name = "7.7mm機銃", Type = 21},\r
new ItemSpec {Id = 23, Name = "九九式艦爆", Type = 7},\r
new ItemSpec {Id = 16, Name = "九七式艦攻", Type = 8},\r
new ItemSpec {Id = 3, Name = "10cm連装高角砲", Type = 1},\r
- new ItemSpec {Id = 121, Name = "94式高射装置", Type = 36}\r
+ new ItemSpec {Id = 121, Name = "94式高射装置", Type = 36},\r
+ new ItemSpec {Id = 242, Name = "Swordfish", Type = 8},\r
+ new ItemSpec {Id = 249, Name = "Fulmar", Type = 6}\r
});\r
- var items = new[] {1, 37, 19, 4, 11, 75, 7, 25, 13, 20, 28, 31, 35, 23, 16, 3, 121};\r
- _itemInfo.InjectItems(items);\r
- var questList = new[] {613, 638, 643, 645, 653, 663, 673, 674, 675, 676, 677, 678, 680, 686, 688};\r
- _questInfo.AcceptMax = questList.Length;\r
- _questInfo.InspectQuestList(CreateQuestList(questList));\r
+ var questList = new[] {613, 638, 643, 645, 655, 653, 654, 657, 663, 673, 674, 675, 676, 677, 678, 680, 681, 686, 688};\r
+ InjectQuestList(questList);\r
_questCounter.InspectDestroyItem(\r
- $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1", null);\r
+ $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, _itemInventory.Count))}&api%5Fverno=1");\r
var scalar = new[]\r
{\r
new {Id = 613, Now = 1}, new {Id = 638, Now = 1}, new {Id = 643, Now = 1}, new {Id = 645, Now = 1},\r
}\r
var array = new[]\r
{\r
- new {Id = 675, NowArray = new[] {2, 1}}, new {Id = 676, NowArray = new[] {1, 1, 1}},\r
+ new {Id = 654, NowArray = new[] {1, 1}}, new {Id = 655, NowArray = new[] {2, 1, 1, 1, 2}},\r
+ new {Id = 657, NowArray = new[] {2, 1, 1}},\r
+ new {Id = 675, NowArray = new[] {3, 1}}, new {Id = 676, NowArray = new[] {1, 1, 1}},\r
new {Id = 677, NowArray = new[] {1, 1, 1}}, new {Id = 678, NowArray = new[] {1, 1}},\r
new {Id = 680, NowArray = new[] {1, 2}}, new {Id = 686, NowArray = new[] {1, 1}},\r
- new {Id = 688, NowArray = new[] {2, 1, 1, 1}}\r
+ new {Id = 681, NowArray = new[] {1, 2}},\r
+ new {Id = 688, NowArray = new[] {3, 1, 2, 1}}\r
};\r
foreach (var e in array)\r
{\r
}\r
}\r
\r
+ private void InjectItems(IEnumerable<ItemSpec> specs)\r
+ {\r
+ _itemInventory.Add(specs.Select((s, i) => new ItemStatus{Id = i + 1, Spec = s}));\r
+ }\r
+\r
/// <summary>\r
/// 702: 艦の「近代化改修」を実施せよ!\r
/// 703: 「近代化改修」を進め、戦備を整えよ!\r
[TestMethod]\r
public void PowerUp_702_703()\r
{\r
- _questInfo.InspectQuestList(CreateQuestList(new[] {702, 703}));\r
- _questCounter.InspectPowerUp(Js(new {api_powerup_flag = 1}));\r
+ InjectQuestList(new[] {702, 703});\r
+ _questCounter.InspectPowerUp("", Js(new {api_powerup_flag = 1}));\r
PAssert.That(() =>\r
_questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
.SequenceEqual(new[] {new {Id = 702, Now = 1}, new {Id = 703, Now = 1}}));\r
}\r
+\r
+ /// <summary>\r
+ /// 714: 「駆逐艦」の改修工事を実施せよ!\r
+ /// 715: 続:「駆逐艦」の改修工事を実施せよ!\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void PowerUp_714_715()\r
+ {\r
+ var ships = new[]\r
+ {\r
+ ShipStatus(2), ShipStatus(2), ShipStatus(2), ShipStatus(2),\r
+ ShipStatus(3), ShipStatus(3), ShipStatus(3), ShipStatus(3)\r
+ };\r
+ _shipInventory.Add(ships.Select((s, i) =>\r
+ {\r
+ s.Id = i + 1;\r
+ return s;\r
+ }));\r
+\r
+ var q714 = InjectQuest(714);\r
+ _questCounter.InspectPowerUp("api_id=3&api_id_items=1,2", Js(new {api_powerup_flag = 1}));\r
+ Assert.AreEqual(0, q714.Now);\r
+ _questCounter.InspectPowerUp("api_id=5&api_id_items=1,2,3", Js(new {api_powerup_flag = 1}));\r
+ Assert.AreEqual(0, q714.Now);\r
+ _questCounter.InspectPowerUp("api_id=4&api_id_items=1,2,3", Js(new {api_powerup_flag = 1}));\r
+ Assert.AreEqual(1, q714.Now);\r
+\r
+ var q715 = InjectQuest(715);\r
+ _questCounter.InspectPowerUp("api_id=4&api_id_items=1,2,3", Js(new {api_powerup_flag = 1}));\r
+ Assert.AreEqual(0, q715.Now);\r
+ _questCounter.InspectPowerUp("api_id=4&api_id_items=5,6,7", Js(new {api_powerup_flag = 1}));\r
+ Assert.AreEqual(1, q715.Now);\r
+ }\r
}\r
}
\ No newline at end of file