/// <summary>
        /// Invoked when any of this waves entities is disposed
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void EntityDisposed(object sender, DisposeEventArgs e)
        {
            this.dispose_bag.Add(e.Sprite);

            if (this.dispose_bag.Count == this.num_entities)
            {
                this.WaveFinished.Invoke(this, new WaveFinishedEventArgs(this, this.waveID));
            }
        }
        /// <summary>
        /// Enqueues an item to the Concurrent DisposeQueue
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void Dispose(object sender, DisposeEventArgs e)
        {
            // PlayerOne being disposed.. game over.
            if (e.Sprite == objectManager.PlayerOne)
            {
                this.updateQueue.Enqueue(new GameOverEventArgs(false));
            }

            disposeQueue.Enqueue(e);
        }
 public void ParentDisposed(object sender, DisposeEventArgs e)
 {
     this.Dispose.Invoke(this, new DisposeEventArgs(this.bar));
 }