I would do something like this;
uncomment line 60 to see the magic
https://playground.babylonjs.com/#HTV1TD#2
Simple distance check if within explosion range, then cast a ray to the target and look for any explosion blocking meshes, note of course, that a single ray is not very accurate, even if the “explosion blocker” doesn’t cover the entire mesh, but just the small path of the ray, it will still return as blocked, for more accuracy, you can add multiple rays where target vector3 is calculated based on target mesh’s position, size, etc, e.g. position.y + half size.y = head location,
side-note, intersectsMesh() was not working properly because it was running before scene was rendered, same issue here: Odd Ray behavior