More item cleanup

Refactoring only, everything works exactly the same as before, but the code is cleaner.
Thanks for kicking me in the right direction for the artifact spawning handling BevapDin.