swordmasters-optimizer / BOSS_UPDATE_GUIDE.md
oettaM123's picture
improve new boss setup automation
f0bb4a4
|
Raw History Blame Contribute Delete
2.92 kB
# New Update Checklist
## Automatic item updates
`Prices4\update_prices_safe.bat` runs `tools\sync_game_catalog.py` before the
Discord price import. It downloads the public SwordMasters client files and
updates:
- all sword, shield, pet, and armor names and stats in the optimizer catalog
- sword, shield, and pet names, rarity, drop chance, and images in the marketplace
- the shared catalog in Prices4 and the price API repository
- the official enemy list and its HP, gold parameters, raw respawn, and drop pools
The changed catalogs are committed and pushed before a Discord token is needed.
## What is automatic for a new boss
The official client supplies:
- name and enemy type
- HP
- raw server respawn delay
- gold damage threshold
- gold event count
- gold reward range
- possible sword and shield drops
- item-specific sword and shield drop chances
- room capacity rules for each world number
The setup helper lists every newly discovered enemy so the actual boss can be
selected. It then lists only that enemy's official sword and shield drops and
asks which two are the featured boss drops. If their world label contains a
number such as `W11`, the matching official room capacity is selected
automatically and can still be confirmed or changed.
## What still needs one measurement
- effective downtime from the killing hit to the first hit after respawn
- normal gold divisor
- world number or room capacity only if the official item labels do not identify
the world clearly
These values are stored in `boss_overrides.json`. The website settings can
override both drop chances and room capacity at any time.
Until a timing measurement is supplied, effective downtime defaults to the
official raw respawn plus `1.15` seconds. The existing three main bosses all
matched this offset closely, but a new boss should still be measured once.
## Add a new boss
1. Start the optimizer locally.
2. Open SwordMasters, stand at the new boss, and open the browser console.
3. Load the probe from the same optimizer port:
```js
fetch("http://127.0.0.1:8000/tools/swordmasters_boss_probe.js?v=" + Date.now())
.then(response => response.text())
.then(eval)
```
4. Enter the exact current in-game gold multiplier:
```js
SM_BOSS_PROBE.setGoldMultiplier(143.25)
```
5. Stay on only that boss for at least 5 complete kills and 30 normal gold
events. Lower damage is better if every hit otherwise crosses the threshold.
6. Copy the clean result:
```js
SM_BOSS_PROBE.copyJson()
```
7. Run `configure_new_boss.bat`.
The batch refreshes the official catalog, reads the probe JSON from the
clipboard, asks which new enemy and boss drops to use, confirms the inferred
world and remaining measured values, updates `boss_overrides.json`, and pushes
the optimizer files. The new boss then appears as a settings preset.
If the optimizer uses another port, replace `8000` in the fetch command with
that port.