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); }