Correct builder item level scaling

This commit is contained in:
JB
2026-07-25 22:18:50 -04:00
parent 478a37c17a
commit 1c32b1dfdc
4 changed files with 70 additions and 10 deletions
+16
View File
@@ -79,6 +79,12 @@ rawMinimum(level) = hiddenMinimum × gearMultiplier(level)
rawMaximum(level) = hiddenMaximum × gearMultiplier(level)
```
ISAC gear `base_health` and `base_armor` endpoints are these hidden,
level-independent bases. Builder base survivability therefore uses the direct
multiplier form above rather than treating those endpoints as observations at
the row's legacy reference level. Rolled Attributes and shared core profiles
retain their separately defined reference semantics.
Given an unrounded range recorded at a known reference level:
```text
@@ -150,6 +156,16 @@ targetRaw =
/ weaponMultiplier(referenceLevel)
```
Per-weapon damage endpoints in ISAC are hidden base ranges, not observations at
the shared core profile's reference level. Calculate weapon damage directly:
```text
damageRaw(level) = storedDamageBase × weaponMultiplier(level)
```
Firepower, Toughness, and Engineering remain shared reference-level
observations and continue to use the ratio form.
SHD.build stores the reference level associated with each weapon-tier range.
Builder calculations use that recorded observation level in the ratio above.
The curve's level-1 origin does not imply that every stored range was observed