OSDN Git Service

DockInfoからShipInfoへの依存をなくす
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Wed, 1 Aug 2018 13:10:50 +0000 (22:10 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Thu, 2 Aug 2018 08:30:16 +0000 (17:30 +0900)
KancolleSniffer/Model/DockInfo.cs
KancolleSniffer/Model/ShipInfo.cs
KancolleSniffer/Model/ShipStatus.cs
KancolleSniffer/Sniffer.cs

index 1f5724a..5f0bd42 100644 (file)
@@ -21,15 +21,15 @@ namespace KancolleSniffer.Model
     public class DockInfo\r
     {\r
         public const int DockCount = 4;\r
-        private readonly ShipInfo _shipInfo;\r
+        private readonly ShipInventry _shipInventry;\r
         private readonly MaterialInfo _materialInfo;\r
         private readonly int[] _ndoc = new int[DockCount];\r
         private readonly AlarmTimer[] _ndocTimers = new AlarmTimer[DockCount];\r
         private readonly AlarmTimer[] _kdocTimers = new AlarmTimer[DockCount];\r
 \r
-        public DockInfo(ShipInfo ship, MaterialInfo material)\r
+        public DockInfo(ShipInventry shipInventry, MaterialInfo material)\r
         {\r
-            _shipInfo = ship;\r
+            _shipInventry = shipInventry;\r
             _materialInfo = material;\r
             for (var i = 0; i < _ndocTimers.Length; i++)\r
                 _ndocTimers[i] = new AlarmTimer();\r
@@ -46,7 +46,7 @@ namespace KancolleSniffer.Model
                 var prev = _ndoc[id];\r
                 _ndoc[id] = (int)entry.api_ship_id;\r
                 if (prev != 0 && _ndoc[id] == 0) // 修復完了\r
-                    _shipInfo.RepairShip(prev);\r
+                    _shipInventry[prev].RepairShip();\r
             }\r
         }\r
 \r
@@ -54,25 +54,25 @@ namespace KancolleSniffer.Model
         {\r
             var values = HttpUtility.ParseQueryString(request);\r
             var id = int.Parse(values["api_ship_id"]);\r
-            var ship = _shipInfo.GetStatus(id);\r
+            var ship = _shipInventry[id];\r
             var m = ship.NdockItem;\r
             _materialInfo.SubMaterial(Material.Fuel, m[0]);\r
             _materialInfo.SubMaterial(Material.Steal, m[1]);\r
             if (int.Parse(values["api_highspeed"]) == 1)\r
             {\r
-                _shipInfo.RepairShip(id);\r
+                ship.RepairShip();\r
                 _materialInfo.SubMaterial(Material.Bucket, 1);\r
                 return;\r
             }\r
             if (ship.RepairTime.CompareTo(TimeSpan.FromMinutes(1)) <= 0)\r
-                _shipInfo.RepairShip(id);\r
+                ship.RepairShip();\r
         }\r
 \r
         public void InspectSpeedChange(string request)\r
         {\r
             var values = HttpUtility.ParseQueryString(request);\r
             var dock = int.Parse(values["api_ndock_id"]) - 1;\r
-            _shipInfo.RepairShip(_ndoc[dock]);\r
+            _shipInventry[_ndoc[dock]].RepairShip();\r
             _ndoc[dock] = 0;\r
             _ndocTimers[dock].SetEndTime(0);\r
             _materialInfo.SubMaterial(Material.Bucket, 1);\r
@@ -80,7 +80,7 @@ namespace KancolleSniffer.Model
 \r
         public NameAndTimer[] NDock\r
             => _ndoc.Zip(_ndocTimers,\r
-                    (id, timer) => new NameAndTimer {Name = id == 0 ? "" : _shipInfo.GetStatus(id).Name, Timer = timer}).ToArray();\r
+                    (id, timer) => new NameAndTimer {Name = id == 0 ? "" : _shipInventry[id].Name, Timer = timer}).ToArray();\r
 \r
         public bool InNDock(int id) => _ndoc.Any(n => n == id); // 空のドックのidは0\r
 \r
index 15c5ed2..250e862 100644 (file)
@@ -16,7 +16,6 @@ using System;
 using System.Collections.Generic;\r
 using System.Linq;\r
 using KancolleSniffer.Util;\r
-using static System.Math;\r
 \r
 namespace KancolleSniffer.Model\r
 {\r
@@ -329,13 +328,6 @@ namespace KancolleSniffer.Model
             _fleets[fleet].State = FleetState.Practice;\r
         }\r
 \r
-        public void RepairShip(int id)\r
-        {\r
-            var s = _shipInventry[id];\r
-            s.NowHp = s.MaxHp;\r
-            s.Cond = Max(40, s.Cond);\r
-        }\r
-\r
         public Fleet[] Fleets => _fleets;\r
 \r
         public ShipStatus GetStatus(int id) => FillUp(_shipInventry[id]);\r
index da7f54f..ba0bba4 100644 (file)
@@ -88,6 +88,12 @@ namespace KancolleSniffer.Model
             Sunk\r
         }\r
 \r
+        public void RepairShip()\r
+        {\r
+            NowHp = MaxHp;\r
+            Cond = Max(40, Cond);\r
+        }\r
+\r
         public static Damage CalcDamage(int now, int max)\r
         {\r
             if (now == 0 && max > 0)\r
index adb170b..5fc84da 100644 (file)
@@ -82,7 +82,7 @@ namespace KancolleSniffer
             _itemInfo = new ItemInfo(_itemMaster, _itemInventry);\r
             _shipInfo = new ShipInfo(_shipMaster, _shipInventry, _itemInventry);\r
             _conditionTimer = new ConditionTimer(_shipInfo);\r
-            _dockInfo = new DockInfo(_shipInfo, _materialInfo);\r
+            _dockInfo = new DockInfo(_shipInventry, _materialInfo);\r
             _akashiTimer = new AkashiTimer(_shipInfo, _dockInfo, _presetDeck);\r
             _battleInfo = new BattleInfo(_shipInfo, _itemInfo);\r
             _logger = new Logger(_shipInfo, _itemInfo, _battleInfo);\r