public TileBomb CreateTilebomb(Vector2 vector2, int direction) { var bomb = new TileBomb(_engine, vector2, direction); _engine.AddGameObject(bomb); return(bomb); }
/// <summary> /// This function creates and places a bomb on the board /// </summary> public void CreateBomb() { //Create Bomb for (int i = 0; i < m_bombPosition.Count; i++) { //Get bomb tile from factory Tile bombTile = m_tileManager.GetTileFromFactory(Constants.BOMB_TILE_CODE); //Get x , y position to place bomb int x = (int)m_bombPosition[i].tileData.X; int y = (int)m_bombPosition[i].tileData.Y; //Set bomb position bombTile.transform.position = new Vector2(x, y); //Set bomb color and code TileBomb bombComponent = bombTile.GetComponent <TileBomb>(); bombComponent.tileData.TILE_CODE = m_bombPosition[i].tileData.TILE_CODE; //place bomb on board PlaceTilesOnBoard(bombTile, m_bombPosition[i].tileData.TILE_CODE, x, y); bombComponent.SwitchBombColor(m_bombPosition[i].tileData.TILE_CODE); //Remove the bomb position to fill if (m_matchedTiles.Contains(m_bombPosition[i])) { m_matchedTiles.Remove(m_bombPosition[i]); } } if (m_bombPosition.Count > 0) { m_audioManager.PlaySFX("OnBomb"); } else { m_audioManager.PlaySFX("OnMatch"); } //Clear bomb positions after placing bombs m_bombPosition.Clear(); }