Мне кажется, что вам нужно нужно научиться вырезать один многоугольник из другого. Сначала у вас есть треугольник. Берем первую стену, которая есть в треугольнике. Пусть это будет отрезок. Отрезок закрывает некоторую область для противника (понятно какую, да?) Вот эту область нужно вычесть из треугольника. Дальше берем следующую стену внутри видимой области и снова вычитаем из нее т.д.
По сути нужны две операции. Определить, пересекаются ли отрезок и многоугольник, и научиться вычитать один многоугольник из другого. Вот, может, эта библиотека поможет:
https://pypi.python.org/pypi/Shapely
В любом случае рекомендую искать готовое решение.