From: Kazuhiro Fujieda Date: Wed, 1 Aug 2018 13:10:50 +0000 (+0900) Subject: DockInfoからShipInfoへの依存をなくす X-Git-Tag: v11.0~5^2~2 X-Git-Url: http://git.osdn.net/view?p=kancollesniffer%2FKancolleSniffer.git;a=commitdiff_plain;h=d07f46c2328cf9c003d0e9a7aa351396db5e3131 DockInfoからShipInfoへの依存をなくす --- diff --git a/KancolleSniffer/Model/DockInfo.cs b/KancolleSniffer/Model/DockInfo.cs index 1f5724a..5f0bd42 100644 --- a/KancolleSniffer/Model/DockInfo.cs +++ b/KancolleSniffer/Model/DockInfo.cs @@ -21,15 +21,15 @@ namespace KancolleSniffer.Model public class DockInfo { public const int DockCount = 4; - private readonly ShipInfo _shipInfo; + private readonly ShipInventry _shipInventry; private readonly MaterialInfo _materialInfo; private readonly int[] _ndoc = new int[DockCount]; private readonly AlarmTimer[] _ndocTimers = new AlarmTimer[DockCount]; private readonly AlarmTimer[] _kdocTimers = new AlarmTimer[DockCount]; - public DockInfo(ShipInfo ship, MaterialInfo material) + public DockInfo(ShipInventry shipInventry, MaterialInfo material) { - _shipInfo = ship; + _shipInventry = shipInventry; _materialInfo = material; for (var i = 0; i < _ndocTimers.Length; i++) _ndocTimers[i] = new AlarmTimer(); @@ -46,7 +46,7 @@ namespace KancolleSniffer.Model var prev = _ndoc[id]; _ndoc[id] = (int)entry.api_ship_id; if (prev != 0 && _ndoc[id] == 0) // 修復完了 - _shipInfo.RepairShip(prev); + _shipInventry[prev].RepairShip(); } } @@ -54,25 +54,25 @@ namespace KancolleSniffer.Model { var values = HttpUtility.ParseQueryString(request); var id = int.Parse(values["api_ship_id"]); - var ship = _shipInfo.GetStatus(id); + var ship = _shipInventry[id]; var m = ship.NdockItem; _materialInfo.SubMaterial(Material.Fuel, m[0]); _materialInfo.SubMaterial(Material.Steal, m[1]); if (int.Parse(values["api_highspeed"]) == 1) { - _shipInfo.RepairShip(id); + ship.RepairShip(); _materialInfo.SubMaterial(Material.Bucket, 1); return; } if (ship.RepairTime.CompareTo(TimeSpan.FromMinutes(1)) <= 0) - _shipInfo.RepairShip(id); + ship.RepairShip(); } public void InspectSpeedChange(string request) { var values = HttpUtility.ParseQueryString(request); var dock = int.Parse(values["api_ndock_id"]) - 1; - _shipInfo.RepairShip(_ndoc[dock]); + _shipInventry[_ndoc[dock]].RepairShip(); _ndoc[dock] = 0; _ndocTimers[dock].SetEndTime(0); _materialInfo.SubMaterial(Material.Bucket, 1); @@ -80,7 +80,7 @@ namespace KancolleSniffer.Model public NameAndTimer[] NDock => _ndoc.Zip(_ndocTimers, - (id, timer) => new NameAndTimer {Name = id == 0 ? "" : _shipInfo.GetStatus(id).Name, Timer = timer}).ToArray(); + (id, timer) => new NameAndTimer {Name = id == 0 ? "" : _shipInventry[id].Name, Timer = timer}).ToArray(); public bool InNDock(int id) => _ndoc.Any(n => n == id); // 空のドックのidは0 diff --git a/KancolleSniffer/Model/ShipInfo.cs b/KancolleSniffer/Model/ShipInfo.cs index 15c5ed2..250e862 100644 --- a/KancolleSniffer/Model/ShipInfo.cs +++ b/KancolleSniffer/Model/ShipInfo.cs @@ -16,7 +16,6 @@ using System; using System.Collections.Generic; using System.Linq; using KancolleSniffer.Util; -using static System.Math; namespace KancolleSniffer.Model { @@ -329,13 +328,6 @@ namespace KancolleSniffer.Model _fleets[fleet].State = FleetState.Practice; } - public void RepairShip(int id) - { - var s = _shipInventry[id]; - s.NowHp = s.MaxHp; - s.Cond = Max(40, s.Cond); - } - public Fleet[] Fleets => _fleets; public ShipStatus GetStatus(int id) => FillUp(_shipInventry[id]); diff --git a/KancolleSniffer/Model/ShipStatus.cs b/KancolleSniffer/Model/ShipStatus.cs index da7f54f..ba0bba4 100644 --- a/KancolleSniffer/Model/ShipStatus.cs +++ b/KancolleSniffer/Model/ShipStatus.cs @@ -88,6 +88,12 @@ namespace KancolleSniffer.Model Sunk } + public void RepairShip() + { + NowHp = MaxHp; + Cond = Max(40, Cond); + } + public static Damage CalcDamage(int now, int max) { if (now == 0 && max > 0) diff --git a/KancolleSniffer/Sniffer.cs b/KancolleSniffer/Sniffer.cs index adb170b..5fc84da 100644 --- a/KancolleSniffer/Sniffer.cs +++ b/KancolleSniffer/Sniffer.cs @@ -82,7 +82,7 @@ namespace KancolleSniffer _itemInfo = new ItemInfo(_itemMaster, _itemInventry); _shipInfo = new ShipInfo(_shipMaster, _shipInventry, _itemInventry); _conditionTimer = new ConditionTimer(_shipInfo); - _dockInfo = new DockInfo(_shipInfo, _materialInfo); + _dockInfo = new DockInfo(_shipInventry, _materialInfo); _akashiTimer = new AkashiTimer(_shipInfo, _dockInfo, _presetDeck); _battleInfo = new BattleInfo(_shipInfo, _itemInfo); _logger = new Logger(_shipInfo, _itemInfo, _battleInfo);