{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "dropship_001");\r
- PAssert.That(() => sniffer.ItemList[0].Ship.Id == 250);\r
+ PAssert.That(() => sniffer.ItemList[0].Holder.Id == 250);\r
}\r
\r
/// <summary>\r
public ItemSpec Spec { get; set; } = new ItemSpec();\r
public int Level { get; set; }\r
public int Alv { get; set; }\r
- public ShipStatus Ship { get; set; }\r
+ public ShipStatus Holder { get; set; }\r
\r
public ItemStatus()\r
{\r
return _itemInfo.TryGetValue(id, out item) ? item : new ItemStatus(id);\r
}\r
\r
- public ItemStatus[] GetItemListWithOwner(ShipStatus[] shipList)\r
+ public void ClearHolder()\r
{\r
- foreach (var e in _itemInfo)\r
- e.Value.Ship = new ShipStatus();\r
- foreach (var s in shipList)\r
- {\r
- foreach (var item in s.Slot)\r
- item.Ship = s;\r
- s.SlotEx.Ship = s;\r
- }\r
- return (from e in _itemInfo where e.Key != -1 select e.Value).ToArray();\r
+ foreach (var item in _itemInfo.Values)\r
+ item.Holder = new ShipStatus();\r
}\r
\r
+ public ItemStatus[] ItemList => (from e in _itemInfo where e.Key != -1 select e.Value).ToArray();\r
+\r
public string GetUseItemName(int id) => _useItemName[id];\r
}\r
}
\ No newline at end of file
into grp\r
from byShip in\r
(from item in grp\r
- let ship = item.Ship\r
+ let ship = item.Holder\r
orderby ship.Level descending, ship.Spec.SortNo\r
- group item by item.Ship.Id)\r
+ group item by item.Holder.Id)\r
group byShip by grp.Key)\r
group byItem by byItem.First().First().Spec.Type;\r
\r
typeNode.Nodes.Add(itemNode);\r
foreach (var byShip in byItem)\r
{\r
- var ship = byShip.First().Ship;\r
+ var ship = byShip.First().Holder;\r
var name = byShip.Key == -1\r
? "未装備x" + byShip.Count()\r
: (ship.Fleet != -1 ? ship.Fleet + 1 + " " : "") +\r
{\r
Level = org.Level,\r
Spec = org.Spec,\r
- Ship = new ShipStatus {Id = org.Ship.Id, Fleet = org.Ship.Fleet}\r
+ Holder = new ShipStatus {Id = org.Holder.Id, Fleet = org.Holder.Fleet}\r
};\r
}\r
\r
private class ItemStatusComparer : IEqualityComparer<ItemStatus>\r
{\r
public bool Equals(ItemStatus x, ItemStatus y)\r
- => x.Level == y.Level && x.Spec == y.Spec && x.Ship.Id == y.Ship.Id && x.Ship.Fleet == y.Ship.Fleet;\r
+ => x.Level == y.Level && x.Spec == y.Spec && x.Holder.Id == y.Holder.Id && x.Holder.Fleet == y.Holder.Fleet;\r
\r
- public int GetHashCode(ItemStatus obj) => obj.Level + obj.Spec.GetHashCode() + obj.Ship.GetHashCode();\r
+ public int GetHashCode(ItemStatus obj) => obj.Level + obj.Spec.GetHashCode() + obj.Holder.GetHashCode();\r
}\r
\r
[DllImport("user32.dll")]\r
return s;\r
}\r
\r
+ public void SetItemHolder()\r
+ {\r
+ foreach (var ship in _shipInfo.Values)\r
+ foreach (var item in ship.Slot)\r
+ _itemInfo.GetStatus(item.Id).Holder = ship;\r
+ }\r
+\r
public ShipSpec GetSpec(int id) => _shipMaster[id];\r
\r
public bool InMission(int fleet) => _inMission[fleet];\r
\r
public string[] BadlyDamagedShips => _shipInfo.BadlyDamagedShips;\r
\r
- public ItemStatus[] ItemList => _itemInfo.GetItemListWithOwner(ShipList);\r
+ public ItemStatus[] ItemList\r
+ {\r
+ get\r
+ {\r
+ _itemInfo.ClearHolder();\r
+ _shipInfo.SetItemHolder();\r
+ return _itemInfo.ItemList;\r
+ }\r
+ }\r
\r
public AkashiTimer AkashiTimer => _akashiTimer;\r
\r