Two more hints:
1. I would reconsider using names like 1.xxx.lua or 2.yyy.lua. Lua is a bit weird, and uses internal flat file system (do dir tree). Then all calls to that file system are actually pattern based. It means that if somebody somewhere will try to be smart and look for extension using dot "." it will get stupid results from that files. You don't have this issue now and it's very rare that it would happen - it's just a precaution for the future.
2. Those calls for unit:IsWithinDistanceXXX check all tiles within specified distance. No need to repeat them for each ring.
1. I would reconsider using names like 1.xxx.lua or 2.yyy.lua. Lua is a bit weird, and uses internal flat file system (do dir tree). Then all calls to that file system are actually pattern based. It means that if somebody somewhere will try to be smart and look for extension using dot "." it will get stupid results from that files. You don't have this issue now and it's very rare that it would happen - it's just a precaution for the future.
2. Those calls for unit:IsWithinDistanceXXX check all tiles within specified distance. No need to repeat them for each ring.