// limitations under the License.\r
\r
using System;\r
+using System.Collections.Generic;\r
using System.Linq;\r
using DynaJson;\r
using ExpressionToCodeLib;\r
\r
\r
private BattleInfo _battleInfo;\r
- private ItemInfo _itemInfo;\r
+ private ItemInventory _itemInventory;\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
+ _itemInventory = new ItemInventory();\r
_questInfo = new QuestInfo(new QuestCountList(), () => new DateTime(2015, 1, 1));\r
- _questCounter = new QuestCounter(_questInfo, _itemInfo, _battleInfo);\r
+ _questCounter = new QuestCounter(_questInfo, _itemInventory, _battleInfo);\r
}\r
\r
/// <summary>\r
[TestMethod]\r
public void DestroyItem_613_638_643_645_653_654_655_657_663_673_674_675_676_677_678_680_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 = 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, 242, 249};\r
- _itemInfo.InjectItems(items);\r
var questList = new[] {613, 638, 643, 645, 655, 653, 654, 657, 663, 673, 674, 675, 676, 677, 678, 680, 686, 688};\r
InjectQuestList(questList);\r
_questCounter.InspectDestroyItem(\r
- $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1");\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
}\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
public class QuestCounter\r
{\r
private readonly QuestInfo _questInfo;\r
- private readonly ItemInfo _itemInfo;\r
+ private readonly ItemInventory _itemInventory;\r
private readonly BattleInfo _battleInfo;\r
private readonly SortedDictionary<int, QuestStatus> _quests;\r
private int _map;\r
}\r
}\r
\r
- public QuestCounter(QuestInfo questInfo, ItemInfo itemInfo, BattleInfo battleInfo)\r
+ public QuestCounter(QuestInfo questInfo, ItemInventory itemInventory, BattleInfo battleInfo)\r
{\r
_questInfo = questInfo;\r
_quests = questInfo.QuestDictionary;\r
- _itemInfo = itemInfo;\r
+ _itemInventory = itemInventory;\r
_battleInfo = battleInfo;\r
}\r
\r
{\r
var values = HttpUtility.ParseQueryString(request);\r
var items = values["api_slotitem_ids"].Split(',')\r
- .Select(id => _itemInfo.GetStatus(int.Parse(id)).Spec).ToArray();\r
+ .Select(id => _itemInventory[int.Parse(id)].Spec).ToArray();\r
Increment(613); // 613: 資源の再利用\r
foreach (var quest in _quests.Values)\r
{\r
_battleInfo = new BattleInfo(_shipInfo, _itemInfo, _airBase);\r
_logger = new Logger(_shipInfo, _itemInfo, _battleInfo);\r
_questInfo = new QuestInfo(_questCountList);\r
- _questCounter = new QuestCounter(_questInfo, _itemInfo, _battleInfo);\r
+ _questCounter = new QuestCounter(_questInfo, _itemInventory, _battleInfo);\r
_miscTextInfo = new MiscTextInfo(_shipInfo, _itemInfo);\r
_haveState = new List<IHaveState> {_achievement, _materialInfo, _conditionTimer, _exMapInfo, _questInfo};\r
AdditionalData = new AdditionalData();\r