/// 303: 「演習」で練度向上!\r
/// 304: 「演習」で他提督を圧倒せよ!\r
/// 311: 精鋭艦隊演習\r
+ /// 318: 給糧艦「伊良湖」の支援\r
/// </summary>\r
[TestMethod]\r
- public void PracticeResult_303_304_302_311()\r
+ public void PracticeResult_303_304_302_311_318()\r
{\r
- var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311}));\r
+ var battleInfo = new BattleInfo(null, null);\r
+ var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311, 318}));\r
\r
+ battleInfo.InjectResultStatus(new[]\r
+ {\r
+ ShipStatus(2, 543), ShipStatus(3, 488)\r
+ }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
questInfo.InspectPracticeResult(Js(new {api_win_rank = "C"}));\r
questInfo.InspectPracticeResult(Js(new {api_win_rank = "A"}));\r
PAssert.That(() =>\r
.SequenceEqual(new[]\r
{\r
new {Id = 302, Now = 1}, new {Id = 303, Now = 2}, new {Id = 304, Now = 1},\r
- new {Id = 311, Now = 1}\r
+ new {Id = 311, Now = 1}, new {Id = 318, Now = 0}\r
}));\r
+ // 318\r
+ battleInfo.Result.Friend.Main[0] = ShipStatus(3, 200);\r
+ questInfo.InspectPracticeResult(Js(new {api_win_rank = "A"}));\r
+ PAssert.That(() => questInfo.Quests[4].Count.Now == 1);\r
+ questInfo.Quests[4].Count.Now = 3;\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {318}));\r
+ PAssert.That(() => questInfo.Quests[4].Count.Now == 3, "進捗調節しない");\r
}\r
\r
/// <summary>\r
/// 675: 運用装備の統合整備\r
/// 676: 装備開発力の集中整備\r
/// 677: 継戦支援能力の整備\r
+ /// 678: 主力艦上戦闘機の更新\r
/// </summary>\r
[TestMethod]\r
- public void DestroyItem_613_638_663_673_674_675_676_677()\r
+ public void DestroyItem_613_638_663_673_674_675_676_677_678()\r
{\r
var itemInfo = new ItemInfo();\r
- var questInfo = new QuestInfo(itemInfo, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 8};\r
+ var questInfo = new QuestInfo(itemInfo, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 9};\r
\r
itemInfo.InjectItemSpec(new[]\r
{\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
+ new ItemSpec {Id = 13, Name = "61cm三連装魚雷", Type = 5},\r
+ new ItemSpec {Id = 20, Name = "零式艦戦21型", Type = 6}\r
});\r
- itemInfo.InjectItems(new[] {1, 37, 19, 4, 11, 75, 7, 25, 13});\r
- questInfo.InspectQuestList(CreateQuestList(new[] {613, 638, 663, 673, 674, 675, 676, 677}));\r
- questInfo.InspectDestroyItem("api%5Fslotitem%5Fids=1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9&api%5Fverno=1", null);\r
+ itemInfo.InjectItems(new[] {1, 37, 19, 4, 11, 75, 7, 25, 13, 20});\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {613, 638, 663, 673, 674, 675, 676, 677, 678}));\r
+ questInfo.InspectDestroyItem(\r
+ "api%5Fslotitem%5Fids=1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10&api%5Fverno=1", null);\r
PAssert.That(() =>\r
questInfo.Quests.Select(q => new {q.Id, q.Count.Now}).Take(5).SequenceEqual(new[]\r
{\r
new {Id = 673, Now = 1}, new {Id = 674, Now = 1}\r
}));\r
var q675 = questInfo.Quests[5];\r
- PAssert.That(() => q675.Id == 675 && q675.Count.NowArray.SequenceEqual(new[] {1, 1}));\r
+ PAssert.That(() => q675.Id == 675 && q675.Count.NowArray.SequenceEqual(new[] {2, 1}));\r
var q676 = questInfo.Quests[6];\r
PAssert.That(() => q676.Id == 676 && q676.Count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
var q677 = questInfo.Quests[7];\r
PAssert.That(() => q677.Id == 677 && q677.Count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
+ var q678 = questInfo.Quests[8];\r
+ PAssert.That(() => q678.Id == 678 && q678.Count.NowArray.SequenceEqual(new[] {1, 1}));\r
}\r
\r
/// <summary>\r
public void NotImplemented()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {318}));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {679}));\r
PAssert.That(() => questInfo.Quests[0].Count.Spec.Material.Length == 0);\r
}\r
\r
},\r
QuestCountList = new[]\r
{\r
- new QuestCount{Id = 854,NowArray = new []{1,0,1,0}}\r
+ new QuestCount {Id = 854, NowArray = new[] {1, 0, 1, 0}}\r
}\r
};\r
questInfo.LoadState(status);\r
{304, new QuestPractice {Interval = Daily, Max = 5, Win = true, Material = new[] {0, 0, 1, 0}}}, // 304: 「演習」で他提督を圧倒せよ!\r
{302, new QuestPractice {Interval = Weekly, Max = 20, Win = true, Material = new[] {0, 0, 2, 1}}}, // 302: 大規模演習\r
{311, new QuestPractice {Interval = Daily, Max = 7, Win = true, Material = new[] {0, 2, 0, 0}}}, // 311: 精鋭艦隊演習\r
+ {318, new QuestSpec {Interval = Daily, Max = 3, Material = new[] {0, 2, 2, 0}, AdjustCount = false}}, // 318: 給糧艦「伊良湖」の支援\r
\r
{402, new QuestMission {Interval = Daily, Max = 3, Material = new[] {0, 0, 1, 0}}}, // 402: 「遠征」を3回成功させよう!\r
{403, new QuestMission {Interval = Daily, Max = 10, Material = new[] {0, 0, 0, 0}}}, // 403: 「遠征」を10回成功させよう!\r
{675, new QuestSpec {Interval = Quarterly, MaxArray = new[] {6, 4}, Material = new[] {0, 0, 0, 0}}}, // 675: 運用装備の統合整備\r
{676, new QuestSpec {Interval = Weekly, MaxArray = new[] {3, 3, 1}, Material = new[] {0, 1, 7, 0}}}, // 676: 装備開発力の集中整備\r
{677, new QuestSpec {Interval = Weekly, MaxArray = new[] {4, 2, 3}, Material = new[] {0, 5, 0, 0}}}, // 677: 継戦支援能力の整備\r
+ {678, new QuestSpec {Interval = Quarterly, MaxArray = new[] {3, 5}, Material = new[] {0, 0, 8, 0}}}, // 678: 主力艦上戦闘機の更新\r
\r
{702, new QuestPowerup {Interval = Daily, Max = 2, Material = new[] {0, 1, 0, 0}}}, // 702: 艦の「近代化改修」を実施せよ!\r
{703, new QuestPowerup {Interval = Weekly, Max = 15, Material = new[] {1, 0, 2, 0}}} // 703: 「近代化改修」を進め、戦備を整えよ!\r
if (practice.Check(json.api_win_rank))\r
IncrementCount(count);\r
}\r
+ if (_quests.TryGetValue(318, out var q318))\r
+ {\r
+ if (QuestSortie.CompareRank(json.api_win_rank, "B") <= 0 &&\r
+ _battleInfo.Result.Friend.Main.Count(s => s.Spec.ShipType == 3) >= 2)\r
+ {\r
+ IncrementCount(q318.Count);\r
+ }\r
+ }\r
}\r
\r
private readonly int[] _missionId = new int[ShipInfo.FleetCount];\r
{\r
var values = HttpUtility.ParseQueryString(request);\r
var items = values["api_slotitem_ids"].Split(',')\r
- .Select(id => _itemInfo.GetStatus(int.Parse(id)).Spec.Type).ToArray();\r
+ .Select(id => _itemInfo.GetStatus(int.Parse(id)).Spec).ToArray();\r
IncrementCount(613); // 613: 資源の再利用\r
foreach (var quest in _quests.Values)\r
{\r
var count = quest.Count;\r
if (!(count.Spec is QuestDestroyItem destroy))\r
continue;\r
- AddCount(count, items.Count(destroy.Check));\r
+ AddCount(count, items.Count(spec => destroy.Check(spec.Type)));\r
}\r
if (_quests.TryGetValue(675, out var q675))\r
{\r
- q675.Count.NowArray[0] += items.Count(id => id == 6);\r
- q675.Count.NowArray[1] += items.Count(id => id == 21);\r
+ q675.Count.NowArray[0] += items.Count(spec => spec.Type == 6);\r
+ q675.Count.NowArray[1] += items.Count(spec => spec.Type == 21);\r
NeedSave = true;\r
}\r
if (_quests.TryGetValue(676, out var q676))\r
{\r
- q676.Count.NowArray[0] += items.Count(id => id == 2);\r
- q676.Count.NowArray[1] += items.Count(id => id == 4);\r
- q676.Count.NowArray[2] += items.Count(id => id == 30);\r
+ q676.Count.NowArray[0] += items.Count(spec => spec.Type == 2);\r
+ q676.Count.NowArray[1] += items.Count(spec => spec.Type == 4);\r
+ q676.Count.NowArray[2] += items.Count(spec => spec.Type == 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
+ q677.Count.NowArray[0] += items.Count(spec => spec.Type == 3);\r
+ q677.Count.NowArray[1] += items.Count(spec => spec.Type == 10);\r
+ q677.Count.NowArray[2] += items.Count(spec => spec.Type == 5);\r
+ NeedSave = true;\r
+ }\r
+ if (_quests.TryGetValue(678, out var q678))\r
+ {\r
+ q678.Count.NowArray[0] += items.Count(spec => spec.Id == 19);\r
+ q678.Count.NowArray[1] += items.Count(spec => spec.Id == 20);\r
NeedSave = true;\r
}\r
}\r