Use unique_ptr for shield geom.
Fix the shield active logic.