示例#1
0
        public TileBomb CreateTilebomb(Vector2 vector2, int direction)
        {
            var bomb = new TileBomb(_engine, vector2, direction);

            _engine.AddGameObject(bomb);

            return(bomb);
        }
示例#2
0
    /// <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();
    }