サーバーから送られてくる入渠時間を使っていると、次のship_deckかportで
データを受け取らないと更新できないので、自前で入渠時間を計算する。
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
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