It sounds like you're asking for advice on how high to make the settings for various features. This is something that would need testing under game conditions to see whether the offense or defense is too strong.
It's something that role playing games do often, where they have levels for armor, attack,shields, rate of restoration, energy creation, energy usage, etc
What they sometimes do is have a base number, and then and then each level increases the exponent by maybe 0.1
So if a weapon has a base of 1000, and they're level 0, then it has a strength of $calc( 1000 * (1 + 0/10)), which is 1000. If they're level 5, then the formula is $calc( 1000 * (1 + 5/10)) = 1500. Likewise, the defense can get a similar boost to shields and/or armor. To avoid the interaction being completely predictable, the 1000 and 1500 can be maximums, and you can have it be a random between 90-100%. Or, you can use the method shown in the prior post's link to make the outcome be irregular instead of having every outcome be equally possible.
You can probably find websites describing the minutia of online games like E2 or Evony which describe the math behind how the attack and defense works. Do you have a picture in mind of how you want the distribution of outcomes to be? like a bell curve with a bump in the middle? Once you know how often each outcome should happen, including the max and min, it should be easy to come up with formula to mimic that