Fixed a nasty component pointer crash. Refactored most of the existing "gameplay" logic to update via the task scheduling system