Weapon:
I've decided to start rearranging a few formulae. Some will adhere to the user's level, some will not. I was very unhappy with X2:
Damage = (UserStat + UserLevel) * 6 * (512 - TargetDefence) * AttackPower / 8192
This seems awfully convoluted and not fit for purpose. It makes working out what an attack damage will be needlessly complicated (and I assume because of the large numbers involved, this is the cause of overflows?). It also takes the user's level into account which I find redundant (the level has already increased the relevant UserStat). Not only that... how lazy to have a formula that just adds the Stat to the Level for determining damage.
So, here is my new X2
Damage = (UserStat * (101 - TargetDefence) * AttackPower ) / 32
Maximum stats are 100 (not 255 as original game).
What does the above do? It makes defence and attack closely correlated... if the attack stat is 100 but the defence stat of the target is 100, they cancel each other out. Level is no longer taken into consideration with the attack. You may be thinking that this means easy pickings for you to max your character and become invincible... but no, since attaining maximum defence stat may be impossible ( a bit like BOF3's stat increases were not worth the effort), and if I am unhappy with the balance later on, I can simply increase 101.
Let's see how they compare:
Let's assume lowest stat vs lowest defence with lowest power.
Original:
(1+1) * 6 * (512-0) * 1 / 8192= less than 1.
New:
1 * (101-0) * 1 / 32 = 3
Now let's assume maximum stat vs maximum defence with lowest power.
Original:
(255+99) * 6 * (512-255) * 1 / 8192= 67.
New:
100 * (101-100) * 1 / 32 = 3
And just for hell of it, here's what original game Bahamut Zero damage is like (120) with max stats and lowest defence (It ignores defence by default anyway).
Original:
(255+99) * 6 * (512-0) * 120 / 8192= 15930.
New:
100 * (101-0) * 120 / 32 = 37875
Hence why new game needed all values tweaking.