Tweaks to shield generators

See commit log for more details. Don't merge this yet.