12.5 dps Weapons Ignore Shield Mitigation. Fix?
As Hound mentioned, in the Illum vs. Assailant thread, stronger weapons can be rendered similar in dps to weaker ones by shield mitigation. Suppose a strong weapon can raise shield mitigation to 50% quickly. Suppose a weaker weapon has half the dps of the strong weapon. In that case, both weapons do similar dps in effect.
The unfortunate case of the Illum vs. Assailant is likely because the Assailant's vanilla dps is 13, and that would raise the Illum's mitigation. The Illum's is 8.2 dps, assuming left/right banks not firing. It seems all firing arcs are 120 degrees.
Hound thinks this needs correction. I agree.
Mitigation growth should not be based on damage, but on the number of times a ship is being hit by a particular "weapon class type" (beam, laser, autocannon, etc). Yes, this will mean more calculations and CPU load, but I believe not by much more. Calculations will then not be a simple single formula to do with "damage received per second"; it will involve every single "weapon class type" firing at a ship.
That said, would shield mitigation then have to be split up into a few categories, one for each "weapon class type"? I think not. Let's simplify it. A ship being hit will have to decide which weapon class type to defeat. It's shield mitigation would only work for 1 weapon class type at any one time. (Please display which type the mitigation is currently targetting.)
That would truly defeat spams. And it would realistically defeat a race that focuses upgrades on only a single weapon class type. Also, cap ships firing a variety of weapon class types will do much more damage now.
"shieldAbsorbGrowthPerDamage" might be changed to "shieldAbsorbGrowthPerHit".
Now, to implement the AI that decides which weapon class type to target, I suggest simplicity again. Each ship "learns" (gains) more shield mitigation ability (potential, not actual or applied yet) from hits from each weapon class type it received.
For each ship, we'll need a "mitigation potential" counter for each weapon class type. Each time a ship gets hit by a particular weapon class type, the relevant counter is raised. Each counter will also decay over time.
When deciding which weapon class type to defeat, each ship looks at its "mitigation potential" for all weapon class types. It picks the weapon class type it knows how to defeat the best. Simple as that.
(But don't let AI flip back and forth between almost similar mitigation potentials! That would cause a "thrashing", and the shields may never mitigate any hits at all. There should be a threshold, say "choose best mitigation type if it is X points more than current type".)
It short, the manual could say: "Each ship's computer learns from hits it received. The more hits a ship gets from a particular weapon class type, the more the ship's computer can tune the shields to mitigate damage from that weapon class type. A ship can only choose 1 weapon class type to mitigate at any 1 time; it will choose the one it can best defeat."
Be prepared to hear Ironclad say the game will then support less ships at any 1 time! But not by much less, I believe. Maybe more memory is needed.
What do you guys think?