updated for 1.04
This commit is contained in:
parent
35ab32ead5
commit
5e603392a0
2 changed files with 43 additions and 82 deletions
49
README.md
49
README.md
|
@ -4,59 +4,16 @@
|
|||
|
||||
### Regulation Extraction
|
||||
|
||||
1. [UXM](https://cdn.discordapp.com/attachments/529900741998149643/949045219175825448/UXM_2.4.ER_EldenRingQuickhack.zip) to extract the game files.
|
||||
1. [UXM](https://cdn.discordapp.com/attachments/529900741998149643/955650210711892029/UXM_2.4.ER-1.03.1-fix01.zip) to extract the game files.
|
||||
2. [Yapped (Rune Bear)](https://github.com/vawser/Yapped-Rune-Bear) for converting regulation to `.csv`.
|
||||
|
||||
## Required Files
|
||||
|
||||
- `AttackElementCorrectParam.csv`
|
||||
- `CalcCorrectGraph.csv`
|
||||
- `CharaInitParam.csv`
|
||||
- `EquipParamAccessory.csv`
|
||||
- `EquipParamProtector.csv`
|
||||
- `EquipParamWeapon.csv`
|
||||
- `ReinforceWeaponParam.csv`
|
||||
- `SpEffectParam.csv`
|
||||
|
||||
## Param Categories
|
||||
|
||||
### Armor
|
||||
|
||||
- Weight: `EquipParamProtector.csv`
|
||||
- Poise: `EquipParamProtector.csv` - in-game poise value is $(poise \cdot 1000)$
|
||||
- Resistance: `EquipParamProtector.csv`
|
||||
- Defenses: `EquipParamProtector.csv` - defense is $(1 - absorption) \cdot 100$
|
||||
- Stats: ???
|
||||
|
||||
### Classes
|
||||
|
||||
- Starting: `CharaInitParam.csv`
|
||||
- Softcaps: `CalcCorrectGraph.csv`
|
||||
|
||||
### Weapons
|
||||
|
||||
- Damage: `EquipParamWeapon.csv`
|
||||
- Upgrading: `ReinforceParamWeapon.csv`
|
||||
- Scaling: `EquipParamWeapon.csv`
|
||||
- Scaling Corrections: `AttackElementCorrectParam.csv` // TODO
|
||||
- Ash of War: `EquipParamGem.csv`
|
||||
|
||||
### Talismans
|
||||
|
||||
- Weight: `EquipParamAccessory.csv`
|
||||
- Stats: `SpEffectParam.csv`
|
||||
- Effects: `SpEffectParam.csv`
|
||||
|
||||
### Magic
|
||||
|
||||
- FP cost: `Magic.csv`
|
||||
- Stam. cost: `Magic.csv`
|
||||
- Reqs.: `Magic.csv`
|
||||
|
||||
## Correction Formula
|
||||
|
||||
**Base Damage**: $base = weaponDamage _ (infusionDamage + upgradeLevel _ infusionUpgrade)
|
||||
|
||||
if $stat > cap$:
|
||||
|
||||
$$
|
||||
growth + (growth - gprev) \cdot \left(\frac{stat - cap}{cnext - cap}\right)^{adj}
|
||||
$$
|
||||
|
|
|
@ -380,7 +380,7 @@ def process_talisman(row, effects):
|
|||
|
||||
item["weight"] = row["Weight"]
|
||||
|
||||
effect_id = row["SpEffect ID 1"]
|
||||
effect_id = row["SpEffect ID [0]"]
|
||||
for effect in effects:
|
||||
if effect["Row ID"] == effect_id:
|
||||
item["stats"] = [
|
||||
|
@ -443,11 +443,11 @@ def process_weapon(row, masks, caps):
|
|||
]
|
||||
|
||||
scaling = [
|
||||
float(row["Scaling: STR"]) / 100.0,
|
||||
float(row["Scaling: DEX"]) / 100.0,
|
||||
float(row["Scaling: INT"]) / 100.0,
|
||||
float(row["Scaling: FTH"]) / 100.0,
|
||||
float(row["Scaling: ARC"]) / 100.0,
|
||||
float(row["Correction: STR"]) / 100.0,
|
||||
float(row["Correction: DEX"]) / 100.0,
|
||||
float(row["Correction: INT"]) / 100.0,
|
||||
float(row["Correction: FTH"]) / 100.0,
|
||||
float(row["Correction: ARC"]) / 100.0,
|
||||
]
|
||||
|
||||
mask_id = row["Attack Element Correct ID"]
|
||||
|
@ -455,39 +455,39 @@ def process_weapon(row, masks, caps):
|
|||
|
||||
weapon_masks = [
|
||||
[ # physical
|
||||
to_mask(mask_row["Physical Scaling: STR"]),
|
||||
to_mask(mask_row["Physical Scaling: DEX"]),
|
||||
to_mask(mask_row["Physical Scaling: INT"]),
|
||||
to_mask(mask_row["Physical Scaling: FTH"]),
|
||||
to_mask(mask_row["Physical Scaling: ARC"]),
|
||||
to_mask(mask_row["Physical Correction: STR"]),
|
||||
to_mask(mask_row["Physical Correction: DEX"]),
|
||||
to_mask(mask_row["Physical Correction: INT"]),
|
||||
to_mask(mask_row["Physical Correction: FTH"]),
|
||||
to_mask(mask_row["Physical Correction: ARC"]),
|
||||
],
|
||||
[ # magic
|
||||
to_mask(mask_row["Magic Scaling: STR"]),
|
||||
to_mask(mask_row["Magic Scaling: DEX"]),
|
||||
to_mask(mask_row["Magic Scaling: INT"]),
|
||||
to_mask(mask_row["Magic Scaling: FTH"]),
|
||||
to_mask(mask_row["Magic Scaling: ARC"]),
|
||||
to_mask(mask_row["Magic Correction: STR"]),
|
||||
to_mask(mask_row["Magic Correction: DEX"]),
|
||||
to_mask(mask_row["Magic Correction: INT"]),
|
||||
to_mask(mask_row["Magic Correction: FTH"]),
|
||||
to_mask(mask_row["Magic Correction: ARC"]),
|
||||
],
|
||||
[ # fire
|
||||
to_mask(mask_row["Fire Scaling: STR"]),
|
||||
to_mask(mask_row["Fire Scaling: DEX"]),
|
||||
to_mask(mask_row["Fire Scaling: INT"]),
|
||||
to_mask(mask_row["Fire Scaling: FTH"]),
|
||||
to_mask(mask_row["Fire Scaling: ARC"]),
|
||||
to_mask(mask_row["Fire Correction: STR"]),
|
||||
to_mask(mask_row["Fire Correction: DEX"]),
|
||||
to_mask(mask_row["Fire Correction: INT"]),
|
||||
to_mask(mask_row["Fire Correction: FTH"]),
|
||||
to_mask(mask_row["Fire Correction: ARC"]),
|
||||
],
|
||||
[ # lightning
|
||||
to_mask(mask_row["Lightning Scaling: STR"]),
|
||||
to_mask(mask_row["Lightning Scaling: DEX"]),
|
||||
to_mask(mask_row["Lightning Scaling: INT"]),
|
||||
to_mask(mask_row["Lightning Scaling: FTH"]),
|
||||
to_mask(mask_row["Lightning Scaling: ARC"]),
|
||||
to_mask(mask_row["Lightning Correction: STR"]),
|
||||
to_mask(mask_row["Lightning Correction: DEX"]),
|
||||
to_mask(mask_row["Lightning Correction: INT"]),
|
||||
to_mask(mask_row["Lightning Correction: FTH"]),
|
||||
to_mask(mask_row["Lightning Correction: ARC"]),
|
||||
],
|
||||
[ # holy
|
||||
to_mask(mask_row["Holy Scaling: STR"]),
|
||||
to_mask(mask_row["Holy Scaling: DEX"]),
|
||||
to_mask(mask_row["Holy Scaling: INT"]),
|
||||
to_mask(mask_row["Holy Scaling: FTH"]),
|
||||
to_mask(mask_row["Holy Scaling: ARC"]),
|
||||
to_mask(mask_row["Holy Correction: STR"]),
|
||||
to_mask(mask_row["Holy Correction: DEX"]),
|
||||
to_mask(mask_row["Holy Correction: INT"]),
|
||||
to_mask(mask_row["Holy Correction: FTH"]),
|
||||
to_mask(mask_row["Holy Correction: ARC"]),
|
||||
],
|
||||
]
|
||||
|
||||
|
@ -499,6 +499,8 @@ def process_weapon(row, masks, caps):
|
|||
row["Correction Type: Holy"],
|
||||
]
|
||||
|
||||
buffable = "True" in row["Is Buffable"]
|
||||
|
||||
if id in weapons:
|
||||
if not id in IGNORED_WEAPON_INFUSIONS:
|
||||
weapon = weapons[id]
|
||||
|
@ -507,6 +509,7 @@ def process_weapon(row, masks, caps):
|
|||
"scaling": scaling,
|
||||
"masks": weapon_masks,
|
||||
"corrections": corrections,
|
||||
"buffable": buffable,
|
||||
}
|
||||
return
|
||||
else:
|
||||
|
@ -536,6 +539,7 @@ def process_weapon(row, masks, caps):
|
|||
"scaling": scaling,
|
||||
"masks": weapon_masks,
|
||||
"corrections": corrections,
|
||||
"buffable": buffable,
|
||||
}
|
||||
|
||||
weapons[id] = weapon
|
||||
|
@ -594,11 +598,11 @@ def extract_infusions(rows):
|
|||
]
|
||||
|
||||
# scaling
|
||||
strength = [float(relevant[i]["Scaling %: STR"]) for i in range(0, 26)]
|
||||
dexterity = [float(relevant[i]["Scaling %: DEX"]) for i in range(0, 26)]
|
||||
intelligence = [float(relevant[i]["Scaling %: INT"]) for i in range(0, 26)]
|
||||
faith = [float(relevant[i]["Scaling %: FTH"]) for i in range(0, 26)]
|
||||
arcane = [float(relevant[i]["Scaling %: ARC"]) for i in range(0, 26)]
|
||||
strength = [float(relevant[i]["Correction %: STR"]) for i in range(0, 26)]
|
||||
dexterity = [float(relevant[i]["Correction %: DEX"]) for i in range(0, 26)]
|
||||
intelligence = [float(relevant[i]["Correction %: INT"]) for i in range(0, 26)]
|
||||
faith = [float(relevant[i]["Correction %: FTH"]) for i in range(0, 26)]
|
||||
arcane = [float(relevant[i]["Correction %: ARC"]) for i in range(0, 26)]
|
||||
|
||||
str_growth, str_scaling = regression(xs, strength)
|
||||
dex_growth, dex_scaling = regression(xs, dexterity)
|
||||
|
|
Loading…
Reference in a new issue