OSDN Git Service

DamagedShipListを削除するリファクタリング
authorKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Sun, 23 Nov 2014 00:06:11 +0000 (09:06 +0900)
committerKazuhiro Fujieda <fujieda@users.sourceforge.jp>
Sun, 23 Nov 2014 00:07:35 +0000 (09:07 +0900)
KancolleSniffer/AkashiTimer.cs
KancolleSniffer/ShipInfo.cs
KancolleSniffer/Sniffer.cs

index 62ef553..cae35b6 100644 (file)
@@ -97,7 +97,7 @@ namespace KancolleSniffer
                     select damage == 0\r
                         ? null\r
                         : new[] {first}.Concat(from d in Enumerable.Range(2, damage < 2 ? 0 : damage - 1)\r
-                            let span = s.RepairTime(d) + TimeSpan.FromSeconds(30)\r
+                            let span = s.CalcRepairTime(d) + TimeSpan.FromSeconds(30)\r
                             where span.TotalSeconds > 20 * 60\r
                             select new RepairTime(d - 1, Start + span)).ToArray()).ToArray();\r
             }\r
index 048fe19..76ccc0f 100644 (file)
@@ -63,12 +63,12 @@ namespace KancolleSniffer
             return ratio > 0.75 ? Damage.Minor : ratio > 0.5 ? Damage.Small : ratio > 0.25 ? Damage.Half : Damage.Badly;\r
         }\r
 \r
-        public TimeSpan RepairTime()\r
+        public TimeSpan RepairTime\r
         {\r
-            return RepairTime(MaxHp - NowHp);\r
+            get { return CalcRepairTime(MaxHp - NowHp); }\r
         }\r
 \r
-        public TimeSpan RepairTime(int damage)\r
+        public TimeSpan CalcRepairTime(int damage)\r
         {\r
             var weight = Spec.RepairWeight;\r
             var level = Level < 12 ? Level * 10 : Level * 5 + Math.Floor(Math.Sqrt(Level - 11)) * 10 + 50;\r
@@ -108,22 +108,6 @@ namespace KancolleSniffer
         }\r
     }\r
 \r
-    public class DamageStatus\r
-    {\r
-        public int Fleet { private set; get; }\r
-        public string Name { private set; get; }\r
-        public ShipStatus.Damage DamageLevel { private set; get; }\r
-        public TimeSpan RepairTime { private set; get; }\r
-\r
-        public DamageStatus(int fleet, string name, ShipStatus.Damage damage, TimeSpan time)\r
-        {\r
-            Fleet = fleet;\r
-            Name = name;\r
-            DamageLevel = damage;\r
-            RepairTime = time;\r
-        }\r
-    }\r
-\r
     public class ShipInfo\r
     {\r
         public const int FleetCount = 4;\r
@@ -428,13 +412,11 @@ namespace KancolleSniffer
                 select (int)Math.Floor(item.AntiAir * Math.Sqrt(slot.onslot))).DefaultIfEmpty().Sum();\r
         }\r
 \r
-        public DamageStatus[] GetDamagedShipList(DockInfo dockInfo)\r
+        public ShipStatus[] GetDamagedShipList(DockInfo dockInfo)\r
         {\r
-            int oi;\r
-            return (from s in _shipInfo.Values\r
+            return (from s in ShipList\r
                 where s.NowHp < s.MaxHp && !dockInfo.InNDock(s.Id)\r
-                select new DamageStatus(FindFleet(s.Id, out oi), s.Name, s.DamageLevel, s.RepairTime())).\r
-                OrderByDescending(entry => entry.RepairTime).ToArray();\r
+                select s).OrderByDescending(s => s.RepairTime).ToArray();\r
         }\r
 \r
         public double GetLineOfSights(int fleet)\r
index dd55f7d..5ac6eca 100644 (file)
@@ -324,7 +324,7 @@ namespace KancolleSniffer
             return _shipInfo.GetLineOfSights(fleet);\r
         }\r
 \r
-        public DamageStatus[] DamagedShipList\r
+        public ShipStatus[] DamagedShipList\r
         {\r
             get { return _shipInfo.GetDamagedShipList(_dockInfo); }\r
         }\r