Beispiel #1
0
        public override void ExecuteDelayed()
        {
            // Let the gameObject deal with this...
            this.pBomb.Remove(SpriteBatch.Name.Bomb, SpriteBatch.Name.CollisionBox);

            // Remove from BombRoot
            Composite pBombRoot = GameStateManager.GetGame().GetStateCompositeManager().Find(Composite.CompositeName.BombRoot);

            pBombRoot.Remove(this.pBomb);

            // Add a time event to drop next bomb
            if (pBomb.GetType() == typeof(FlyingSaucerBomb))
            {
                TimerManager.Add(TimeEvent.Name.DropBomb, new DropFlyingSaucerBombCommand(), 1.5f);
            }
            else
            {
                // Rate-limit bombs -- TODO refactor
                if (GameStateManager.GetGame().GetStateCompositeManager().Find(Composite.CompositeName.BombRoot).GetNumOfChildren() < 6)
                {
                    TimerManager.Add(TimeEvent.Name.DropBomb, new DropBombCommand(), 0.2f);
                }
            }
        }