internal static void DestroyAlienGrid(AlienGrid pAlienGrid) { // Iterate through AlienGridColumns AlienGridColumn pGridColumn = (AlienGridColumn)pAlienGrid.GetFirstChild(); while (pGridColumn != null) { // Iterate through shield bricks Alien pAlien = (Alien)pGridColumn.GetFirstChild(); while (pAlien != null) { // Remove Alien from composite pGridColumn.Remove(pAlien); // Kill Alien pAlien.Remove(SpriteBatch.Name.Alien, SpriteBatch.Name.CollisionBox); // Get next Alien pAlien = (Alien)pGridColumn.GetFirstChild(); } // Remove AlienGridColumn from composite pAlienGrid.Remove(pGridColumn); // Kill AlienGridColumn pGridColumn.Remove(SpriteBatch.Name.Alien, SpriteBatch.Name.CollisionBox); // Get next AlienGridColumn pGridColumn = (AlienGridColumn)pAlienGrid.GetFirstChild(); } }
public override void Execute(float deltaTime) { float NewTime = RandomManager.RandomInt(1, 3); float randColumn = RandomManager.RandomInt(1, 12); AlienGrid pGrid = (AlienGrid)GameObjectManager.Find(GameObject.Name.AlienGrid); AlienColumn pColumn = (AlienColumn)pGrid.GetFirstChild(); AlienColumn temp = pColumn; int col = 0; while (temp != null) { col++; if (col == randColumn) { temp.DropBomb(); } temp = (AlienColumn)Iterator.GetSibling(temp); } // Add itself back to timer TimerManager.Add(TimeEvent.Name.DropBomb, this, NewTime); }