OSDN Git Service

戦闘終了時に要修復一覧の入渠時間が更新されないのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 14 May 2017 10:17:32 +0000 (19:17 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sun, 14 May 2017 10:17:32 +0000 (19:17 +0900)
サーバーから送られてくる入渠時間を使っていると、次のship_deckかportで
データを受け取らないと更新できないので、自前で入渠時間を計算する。

KancolleSniffer/ShipInfo.cs
KancolleSniffer/ShipMaster.cs

index 74cbf7f..49dbfe2 100644 (file)
@@ -81,9 +81,13 @@ 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 => TimeSpan.FromMilliseconds(NdockTime);\r
+        public TimeSpan RepairTime => TimeSpan.FromSeconds((int)(RepairTimePerHp.TotalSeconds * (MaxHp - NowHp)) + 30);\r
 \r
-        public TimeSpan RepairTimePerHp => TimeSpan.FromMilliseconds((NdockTime - 30 * 1000.0) / (MaxHp - NowHp));\r
+        public TimeSpan RepairTimePerHp =>\r
+            TimeSpan.FromSeconds(Spec.RepairWeight *\r
+                                 (Level < 12\r
+                                     ? Level * 10\r
+                                     : Level * 5 + Floor(Sqrt(Level - 11)) * 10 + 50));\r
 \r
         public TimeSpan RepairTimeByDamage(int damage) => TimeSpan.FromTicks(RepairTimePerHp.Ticks * damage);\r
 \r
index 928f692..7d019fc 100644 (file)
@@ -125,6 +125,40 @@ namespace KancolleSniffer
             MaxEq = new int[0];\r
         }\r
 \r
+        public double RepairWeight\r
+        {\r
+            get\r
+            {\r
+                switch (ShipType)\r
+                {\r
+                    case 1: // 海防艦\r
+                    case 13: // 潜水艦\r
+                        return 0.5;\r
+                    case 2: // 駆逐艦\r
+                    case 3: // 軽巡洋艦\r
+                    case 4: // 重雷装巡洋艦\r
+                    case 14: // 潜水空母\r
+                    case 16: // 水上機母艦\r
+                    case 17: // 揚陸艦\r
+                    case 21: // 練習巡洋艦\r
+                        return 1.0;\r
+                    case 5: // 重巡洋艦\r
+                    case 6: // 航空巡洋艦\r
+                    case 7: // 軽空母\r
+                    case 8: // 高速戦艦\r
+                    case 20: // 潜水母艦\r
+                        return 1.5;\r
+                    case 9: // 低速戦艦\r
+                    case 10: // 航空戦艦\r
+                    case 11: // 正規空母\r
+                    case 18: // 装甲空母\r
+                    case 19: // 工作艦\r
+                        return 2.0;\r
+                }\r
+                return 1.0;\r
+            }\r
+        }\r
+\r
         public double TransportPoint\r
         {\r
             get\r