At generally indicates the general location, while in would indicate that the attack occurred within the walls. In this instance, I think you want at .
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.