@le-don Oh, that's so nice thank you!
So for the vision cones, I'm sure there are better way to do it (lots of resources on that online) but here is what I did: - For the graphic display I generate points at the enemy position, translate them along it's velocity/direction vector and rotate them gradually using the enemy as pivot point. Then check collisions between the created segments and the level geometry, moving the end point accordingly, and finally draw a polygon clockwise including one more point at the enemy's feet. - Regarding player detection it's only a matter of checking if the distance to the enemy is lower than the cone radius, that the angle is in it's arc bounds and that the line enemy->player does not intersect with level geometry.
I had never done neither cone vision nor A* pathfinding before, those were quite the time-sinks but quite a joy to see it working in the end, glad it payed off ^^.