I saw the dynamic cast in the worldobjectcomponents.fireatpoint even though the type was checked first, I assumed it was some kind of convention