Stat dependency testingI'll name the following sets of formulae "Expected_1" and "Expected_2" respectively:
Expected_1:- Code: Select all
player.str=floor((base.str+gear.str+cons.str).*mod.BoK);
player.sta=floor(floor((base.sta+gear.sta+cons.sta).*(1+mod.TbtL)).*mod.BoK);
Expected_2:- Code: Select all
player.str=floor(base.str.*mod.BoK)+floor((gear.str+cons.str).*mod.BoK);
player.sta=floor(base.sta.*(1+mod.TbtL).*mod.BoK)+floor((gear.sta+cons.sta).*(1+mod.TbtL).*mod.BoK);
(I omitted mod.mining, mod.SoE, mod.PWF and extra in this test. That causes player.agi and player.int to have the same formula as player.str, thus they're not included)Specimen: Level 83 Paladin
Tests: 1) naked, 2) heavy-stamina gear, 3) heavy-stamina gear plus consumables (+40 str/+40 sta food)
Variations for every test: a) untalented, b) untalented w/ BoK, c) talented (TbtL), d) talented /w BoK
1. Nakeda. untalented
- Code: Select all
Strength 164
Stamina 152
b. untalented /w BoK
- Code: Select all
| Real | Expected_1 | Expected_2 |
----------|------|------------|------------|-
Strength | 172 | 172 | 172 |
Stamina | 159 | 159 | 159 |
OKc. talented
- Code: Select all
| Real | Expected_1 | Expected_2 |
----------|------|------------|------------|-
Strength | 164 | 164 | 164 |
Stamina | 174 | 174 | 174 |
OKd. talented /w BoK
- Code: Select all
| Real | Expected_1 | Expected_2 |
----------|------|------------|------------|-
Strength | 172 | 172 | 172 |
Stamina | 183 | 182 | 183 |
Expected_1 is off. This is caused by flooring after multiplying with mod.TbtL, before multiplying with mod.BoK. However, if we don't floor after multiplying with mod.TbtL, we'll get wrong values later on.2. Heavy-Stamina Geara. untalented
- Code: Select all
| Real | Expected_1 | Expected_2 |
----------|------|------------|------------|-
Strength | 1637 | 1637 | 1637 |
Stamina | 3450 | 3450 | 3450 |
OKb. untalented /w BoK
- Code: Select all
| Real | Expected_1 | Expected_2 |
----------|------|------------|------------|-
Strength | 1718 | 1718 | 1718 |
Stamina | 3622 | 3622 | 3621 |
Expected_2 is off. This is caused by flooring before adding.c. talented
- Code: Select all
| Real | Expected_1 | Expected_2 |
----------|------|------------|------------|-
Strength | 1637 | 1637 | 1637 |
Stamina | 3966 | 3967 | 3966 |
Expected_1 is off. This is caused by adding before flooring.d. talented /w BoK
- Code: Select all
| Real | Expected_1 | Expected_2 |
----------|------|------------|------------|-
Strength | 1718 | 1718 | 1718 |
Stamina | 4165 | 4165 | 4165 |
OK3. Heave-Stamina Gear + Consumablesa. untalented
- Code: Select all
| Real | Expected_1 | Expected_2 |
----------|------|------------|------------|-
Strength | 1677 | 1677 | 1677 |
Stamina | 3490 | 3490 | 3490 |
OKb. untalented /w BoK
- Code: Select all
| Real | Expected_1 | Expected_2 |
----------|------|------------|------------|-
Strength | 1760 | 1760 | 1760 |
Stamina | 3664 | 3664 | 3663 |
Expected_2 is off. This is caused by flooring before adding.c. talented
- Code: Select all
| Real | Expected_1 | Expected_2 |
----------|------|------------|------------|-
Strength | 1677 | 1677 | 1677 |
Stamina | 4012 | 4013 | 4012 |
Expected_1 is off. This is caused by adding before flooring.d. talented /w BoK
- Code: Select all
| Real | Expected_1 | Expected_2 |
----------|------|------------|------------|-
Strength | 1760 | 1760 | 1760 |
Stamina | 4213 | 4213 | 4213 |
OKSo, both sets are wrong. They must actually be a little bit more complicate that we thought.