I need a favor.
I've actually figured out workarounds for most things, now; a few bits, like nuke interception, will remain broken for the foreseeable future, but I found a way to make things like Psi units work. I'm going to start working on this, but I have one major issue: the Promotion cap. For many of these methods to work I'll need to add more promotions, but I was already running right up against the cap before G&K came out.
Previously, the game would break once you exceeded 200 promotions in the database. It'd break by giving the 201st promotion (and every one after that) to every unit in the game, including your starting settler and warrior. So I need someone to load various combinations of my mods (Base+Empires absolutely, but I also need Mythology and/or Ascension) to see how many promotions are given to all units in each case. That is, I need to know if/how many extra promotions are given to each unit in all four cases (B+E, B+E+A, B+E+A+M, B+E+M). I'd do it myself, but my cable's been out at home for the past two days, and without that I can't load Steam. (For some unknown reason, "offline mode" requires you to go online.)
Best Case: no more cap, Ascension+Mythology works with no promotion overflow. This frees me up to do a lot of new things.
Worst Case: the limit still exists and the G&K expansion added more promotions, to where dropping either Mythology or Ascension STILL puts me over the limit.
In case you're interested, the workarounds are things like this:
> Instead of scaling their strength, Psi units would receive after-the-fact damage/healing depending on the relative strength of their opponent. That is, against a marginally stronger opponent the Psi unit would deal 1 extra damage and take 1 less damage (actually it'd take full damage and then heal 1 point, so if the full damage would kill it then it'd still die), a somewhat stronger opponent gets +2/-2, and so on up the line. When fighting a weaker opponent the bonuses are inverted, to where the Psi unit takes extra damage and deals less (by healing its opponent AFTER the combat damage is dealt).
The Balance focus would work similarly, except I wouldn't have it depend on actual strength differences. Just that if the opposing unit is stronger, Balance I gives +1/-1 and if it's weaker it gives -1/+1, Balance II doubling those, and so on.
There's still a problem, where if the Psi unit dies in the process its opponent won't take any extra damage, but I can work with that in other ways.
> Instead of weakening Orbital units whenever they're used against someone with ODPs, I'd instead give all units anti-Orbital promotions at the start of each turn depending on how many ODPs that player has. (I'd actually handle this through hidden Wonder-style buildings that give the promotions, instead of looping over all units one by one.) This would require at least four new promotions, unless I want to change the number of ODPs possible.
> Right now, Battle Favor is given based on how much damage is dealt, with a bonus if the opponent is killed in the process. That is, right now you get 1 point per damage dealt, plus 2 if the opponent is killed, and this total is doubled if you're the attacker.
What I'd do is switch it to a flat value, something like "1 point per damage dealt if the enemy survives, or a flat 5 points if the enemy dies", that way I don't actually NEED to know anything about the enemy unit if it was killed in the process. All I need is the player ID of its owner, and the functions do keep that from what I can see. Now, RunCombatSim's argument list does include a lot of information about damage dealt/taken, but I'm not sure how much of that remains accurate here.
> Similarly, the spawn chance for Zombies and Vampires scales with the relative unit strengths, where killing a stronger unit gives a higher chance. That'd have to go to a straight value, probably depending on unit type.
> Most of the stuff in EndCombatSim will migrate up to RunCombatSim, with no real change in the results. The main reason before to keep them separate was to avoid my recalculation of Psi strengths and such from affecting the results, but if the Psi adjustment is handled through a different mechanism, like the one I described, then there's no conflict.
So this mod MIGHT be salvageable, but a big part of it hinges on whether I can add more promotions. And this still doesn't help with nuke interception, which has its own set of problems. But I might be able to get it close enough that it's still worth playing.