public void Solution(PuzzlePiece piece)
 {
     if (routine != null)
     {
         return;
     }
     piece.Attach(solutionSocket.position);
     if (piece.solution)
     {
         audioCtrl.source.PlayOneShot(canvas.right);
         routine = StartCoroutine(EndPuzzle());
     }
     else
     {
         piece.Cancel();
         ctrl.ApplyPenalty();
     }
 }