We need to see what actually happened. The 'last resort' is rpm itself, which checks if each packages fits to disk before actually installing it. However if you did not run 'zypper dup' on the console but within a terminal while your desktop crashes, it could explain the heavy damage....