Most of this sounds possible, but I have one area of concern - the obvious one - being able to take different sides in the battle or avoid it entirely. What you want is essentially a campaign script that goes IF you are the Spartans then spawn this battle, IF you are the Persians then spawn this different battle and IF you are anyone else don't spawn any battle.
Myrddraal will have a better idea of whether all this is possible within the same script. If it isn't though, then one way you can achieve it is by having different campaigns for the three different factions (Spartan, Persian, other) - this means you can run different starting campaign scripts and the rest of it is straightforward.
Having different campaigns would also allow you to slightly alter the descr_strat so as to weight it for or against the player, for example if player takes the Persians it may be more of a challenge if he has slightly less troops at Thermopylae as he'll no doubt use them more effectly than the AI.
Bookmarks