private Piece copyPiece(Piece p) { if (p is WholePiece) { // Debug.Log("Copying whole piece at ("+p.position.x+","+p.position.y+")"); return(PieceFactory.createWholePiece(p)); } else if (p is CompoundPiece) { // Debug.Log("Copying compound piece at ("+p.position.x+","+p.position.y+")"); return(PieceFactory.createCompoundPiece(p.color, p)); } else if (p is BasicPiece) { // Debug.Log("Copying basic piece at ("+p.position.x+","+p.position.y+")"); return(PieceFactory.createBasicPiece(p)); } else { Debug.Log("Model.State.copyPiece shouldn't have gotten here"); return(null); } }