Improved Compact View

Tidied up the code to make it much faster, handled edge cases/ overlaps
better and put some logic in for critical damage multiplier as there are
two lists, one for weapons and one for non-weapons.