Exemple #1
0
    private void SetFirecrackerBoom(int y, int x, int directionK, SwapDirectionType swapDirectionType)
    {
        if (mapModel.CheckRangeOver(y, x))
        {
            return;
        }
        if (mapModel.CheckFixedBlock(y, x))
        {
            return;
        }
        if (!mapModel.CheckShowBlock(y, x))
        {
            return;
        }
        if (mapModel.CheckEmptyBlock(y, x))
        {
            return;
        }
        if (!mapModel.CompareBlockType(y, x, BlockType.UFO) &&
            !mapModel.CheckQuestBlock(y, x))
        {
            mapModel.SetBoomFlag(y, x, isBoom: true);
        }

        int        directionIndex = (x % 2);
        Vector2Int direction      = mapModel.GetDirection(directionIndex, (int)swapDirectionType, directionK);
        int        nextY          = y + direction.y;
        int        nextX          = x + direction.x;

        SetFirecrackerBoom(nextY, nextX, directionK, swapDirectionType);
    }