Если у вас есть известный максимальный диапазон каждого эффекта области, вы можете использовать выбранную структуру данных и хранить только фактические источники, оптимизированные для обычного 2D Collision Testing.
Затем при проверке эффектов на плитке просто проверьте (стиль обнаружения столкновений, оптимизированный для вашей структуры данных) для всех источников эффектов в пределах максимального диапазона, а затем примените определенную функцию тестирования (например, если область является кружок, проверьте, что расстояние меньше константы, если это квадрат, проверьте, находятся ли расстояния x и y внутри константы).
Если у вас есть небольшое (<10) количество «полевых» форм эффекта, вы даже можете сделать уникальное обнаружение столкновений для каждого типа поля эффекта в пределах их предварительно вычисленного максимального диапазона. </p>