static void PerformAssignment(IRepairParticipant repairParticipant, RepairData repairData) { CustomPRCData cPRCD = repairData.customControllerData as CustomPRCData; cPRCD.assignedParticipants.Add(repairParticipant); repairParticipant.AssignRepair(repairData); double newlyAssignedQuality = repairParticipant.GetAssignedQuality(repairData); if (newlyAssignedQuality > cPRCD.maxAssignedQuality) { cPRCD.maxAssignedQuality = newlyAssignedQuality; } if (repairParticipant.IsHandlingThisRepairNow(repairData) && newlyAssignedQuality > cPRCD.currentlyAvailableQuality) { cPRCD.currentlyAvailableQuality = newlyAssignedQuality; } if (newlyAssignedQuality > cPRCD.workingAtQuality && (repairData.progressRatio != 0 || cPRCD.isRunning)) { // TODO: notify about ability to restart repair for better quality } }
public void DeassignRepairParticipant(IRepairParticipant repairParticipant) { }