To re-express things in hopefully more concrete terms, here's what would happen in what I'm proposing when computing how much shot a damage does to a target (like one of those "how a bill becomes a law" presentations in gradeschool, or more appropriately "how my boot becomes your face") :
1) Calculate Defender_Armor_Percent, starting from zero:
1.a) Add the defender's base armor rating. (this is just the literal number like you see it now, but somewhat fewer ships would have it, and the values would be different)
1.b) Subtract armor rotter damage
1.c) Multiply according to armor boosting (or zero out if there's one of those armor-negaters around).
- We may also have armor boosting add some base amount to help that mechanic work on armorless ships, but that's not core to this.
1.d) Set to 1000/(1000+number_computed_thus_far) to yield a number between 0 and 1.
- A simple change would be to let armor rot exceed armor by some margin, making this actually able to yield a number somewhat larger than 1.
2) Calculate Attacker_ArmorPiercing_Percent, starting from zero:
2.a) Add the attacker's base armor piercing rating (this is just the literal number like you see it now, but fewer ships would have this and it would effectively be some number between 0 and 1)
2.b) Add someFunction(log10(damage_per_shot)), which returns some number between 0 and 1
- Note that it's a function _using_ the log10, not just the log10. I'm also open to using sqrt or whatever makes sense.
- Also, note that damage_per_shot is literally the base attack power per shot, so something firing 10 shots per salvo doing 1,000 per shot is
very different than something firing 1 shot per salvo doing 10,000 per shot.
- While I'm noting things: this whole "2" step is done during game-initialization for each ship type and stored as a literal value (probably actually 0 to 100 instead of 0 to 1 so I can use int instead of FInt), but that doesn't impact the game rules.
2.c) If greater than Defender_Armor_Percent, set to Defender_Armor_Percent
3) Calculate Effective_Armor_Multiplier, starting from One:
3.a) Subtract (1-Defender_Armor_Percent)
3.b) Add Attacker_ArmorPiercing_Percent
(edit, forgot: ) 3.c) If < 0.1, set to 0.1 (the minimum 10% damage rule)
4) Calculate actual damage, starting from zero:
4.a) Add attacker's damage-per-shot
4.b) Multiply by hull-type bonuses (if any)
4.c) Mulitply by Effective_Armor_Multiplier
Done
There's probably some other things that can happen that I'm forgetting, but that's all that's relevant to armor.