Right now modifiers manage shields. In the event a shield is destroyed by damage, the modifier will persist in the current state. Need an OnShieldRemove listener to allow modifier implementations to self remove the modifier when the shield is destroyed.