public void CancelWorkOrder(int index) { var workOrder = workOrderQueue.Remove(index); resourcesManager.Refund(workOrder.cost); OnWorkOrderQueueUpdated?.Invoke(workOrderQueue.GetReadonlyList()); if (index == 0) { pendingCancel = true; } }