\r
public class BattleInfo\r
{\r
- private readonly ShipMaster _shipMaster;\r
private readonly ShipInfo _shipInfo;\r
private readonly ItemInfo _itemInfo;\r
private int _fleet;\r
public BattleResultRank ResultRank { get; private set; }\r
public ShipStatus[] EnemyResultStatus { get; private set; }\r
\r
- public BattleInfo(ShipMaster shipMaster, ShipInfo shipInfo, ItemInfo itemInfo)\r
+ public BattleInfo(ShipInfo shipInfo, ItemInfo itemInfo)\r
{\r
- _shipMaster = shipMaster;\r
_shipInfo = shipInfo;\r
_itemInfo = itemInfo;\r
}\r
EnemyResultStatus =\r
(from id in ((int[])json.api_ship_ke).Skip(1)\r
where id != -1\r
- select new ShipStatus {Id = id, Spec = _shipMaster[id]}).ToArray();\r
+ select new ShipStatus {Id = id, Spec = _shipInfo.GetSpec(id)}).ToArray();\r
if (combined)\r
{\r
var gstats = _shipInfo.GetShipStatuses(1);\r
var missing = 0;\r
var maxEq = ((int[])json.api_ship_ke).Skip(1).SelectMany(id =>\r
{\r
- var r = _shipMaster[id].MaxEq;\r
+ var r = _shipInfo.GetSpec(id).MaxEq;\r
if (r != null)\r
return r;\r
missing = IncollectFighterPowerFlag;\r
public class Logger\r
{\r
private LogType _logType;\r
- private readonly ShipMaster _shipMaster;\r
private readonly ShipInfo _shipInfo;\r
private readonly ItemInfo _itemInfo;\r
private readonly BattleInfo _battleInfo;\r
set { _writer = new LogWriter(value).Write; }\r
}\r
\r
- public Logger(ShipMaster master, ShipInfo ship, ItemInfo item, BattleInfo battle)\r
+ public Logger(ShipInfo ship, ItemInfo item, BattleInfo battle)\r
{\r
- _shipMaster = master;\r
_shipInfo = ship;\r
_itemInfo = item;\r
_battleInfo = battle;\r
return;\r
var kdock = ((dynamic[])json).First(e => e.api_id == _kdockId);\r
var material = Enumerable.Range(1, 5).Select(i => (int)kdock["api_item" + i]).ToArray();\r
- var ship = _shipMaster[(int)kdock.api_created_ship_id];\r
+ var ship = _shipInfo.GetSpec((int)kdock.api_created_ship_id);\r
var avail = ((dynamic[])json).Count(e => (int)e.api_state == 0);\r
_writer("建造報告書",\r
_nowFunc().ToString(DateTimeFormat) + "," +\r
\r
private readonly int[][] _decks = new int[FleetCount][];\r
private readonly Dictionary<int, ShipStatus> _shipInfo = new Dictionary<int, ShipStatus>();\r
- private readonly ShipMaster _shipMaster;\r
+ private readonly ShipMaster _shipMaster = new ShipMaster();\r
private readonly ItemInfo _itemInfo;\r
private readonly bool[] _inMission = new bool[FleetCount];\r
private readonly bool[] _inSortie = new bool[FleetCount];\r
private readonly List<int> _escapedShips = new List<int>();\r
private int _combinedFleetType;\r
\r
- public ShipInfo(ShipMaster shipMaster, ItemInfo itemInfo)\r
+ public ShipInfo(ItemInfo itemInfo)\r
{\r
- _shipMaster = shipMaster;\r
_itemInfo = itemInfo;\r
\r
for (var fleet = 0; fleet < FleetCount; fleet++)\r
ClearShipInfo();\r
}\r
\r
+ public void InspectMaster(dynamic json)\r
+ {\r
+ _shipMaster.Inspect(json);\r
+ }\r
+\r
public void InspectShip(dynamic json)\r
{\r
if (json.api_deck_port()) // port\r
\r
public ShipStatus this[int idx] => _shipInfo[idx];\r
\r
+ public ShipSpec GetSpec(int id) => _shipMaster[id];\r
+\r
public bool InMission(int fleet) => _inMission[fleet];\r
\r
public bool InSortie(int fleet) => _inSortie[fleet];\r
return name + "(" + flagship + ")";\r
}\r
\r
- public void InspectStype(dynamic json)\r
- {\r
- }\r
-\r
public ShipSpec this[int id] => _shipSpecs[id];\r
}\r
\r
public class Sniffer\r
{\r
private bool _start;\r
- private readonly ShipMaster _shipMaster = new ShipMaster();\r
private readonly ItemInfo _itemInfo = new ItemInfo();\r
private readonly QuestInfo _questInfo = new QuestInfo();\r
private readonly MissionInfo _missionInfo = new MissionInfo();\r
\r
public Sniffer()\r
{\r
- _shipInfo = new ShipInfo(_shipMaster, _itemInfo);\r
+ _shipInfo = new ShipInfo(_itemInfo);\r
_conditionTimer = new ConditionTimer(_shipInfo);\r
_dockInfo = new DockInfo(_shipInfo, _itemInfo);\r
_akashiTimer = new AkashiTimer(_shipInfo, _itemInfo, _dockInfo);\r
- _battleInfo = new BattleInfo(_shipMaster, _shipInfo, _itemInfo);\r
- _logger = new Logger(_shipMaster, _shipInfo, _itemInfo, _battleInfo);\r
+ _battleInfo = new BattleInfo(_shipInfo, _itemInfo);\r
+ _logger = new Logger(_shipInfo, _itemInfo, _battleInfo);\r
_haveState = new List<IHaveState> {_achievement, _itemInfo, _conditionTimer, _exMapInfo};\r
}\r
\r
\r
if (url.EndsWith("api_start2"))\r
{\r
- _shipMaster.Inspect(data);\r
+ _shipInfo.InspectMaster(data);\r
_missionInfo.InspectMaster(data.api_mst_mission);\r
_itemInfo.InspectMaster(data);\r
_exMapInfo.ResetIfNeeded();\r