+ if (repair.DeckChanged(deck))\r
+ {\r
+ repair.State = State.Reset;\r
+ repair.Deck = deck;\r
+ }\r
+ var target = RepairTarget(deck);\r
+ if (repair.IsRepaired(target))\r
+ repair.State = State.Reset;\r
+ repair.UpdateTarget(target);\r
+ }\r
+\r
+ private ShipStatus[] RepairTarget(int[] deck)\r
+ {\r
+ var fs = _shipInfo.GetStatus(deck[0]);\r
+ if (!fs.Spec.IsRepairShip || _dockInfo.InNDock(fs.Id) || fs.DamageLevel >= ShipStatus.Damage.Half)\r
+ return new ShipStatus[0];\r
+ var cap = fs.Slot.Count(item => item.Spec.IsRepairFacility) + 2;\r