The problem is, the current system effectively gives the AI a "win", regardless of the outcome of the battle. The system works as intended when the AI sallies out on the last turn and is defeated, the town effectively is forced to surrender and you claim the territory. However when the AI comes out early and attacks, it doesn't seem to matter how many you kill, if even a single flintlock militia unit escapes, the entire pool of city defenders is replenished and the siege is broken. As if to say, because Corporal Bort managed to elude your 20,000 man army and return to the city, he was able to close the gates extra-extra tight and raise another defense force in short order. On the one hand, I guess it makes sense, but its not internally consistent with how Total War is supposed to work, in all past incarnations of the series. Can't say whether or not it will ever be "fixed" since I'm not sure its actually a bug myself.
Bookmarks