@Override
    public void update(long deltaMs) {
        super.update(deltaMs);
        
        if(firing) {
            elapsed += deltaMs;
            if(elapsed >= delay) {
                fireOnce();
                fired++;
                elapsed = 0;
                if(fired >= burst) {
                    firing = false;
                    fired = 0;
                }
            }
        }
    }