config: disable gem transmuting; document the live pickit set and keep/id/sell interaction
Gem conversion is off: [transmute] transmute= is now empty, which makes run_transmutes()
bail at "No gem tiers configured". That path also defeats force=True
(tools/gem_transmute.py), unlike transmute_every_x_game=0. Rejuv potion conversion is
unaffected — it runs independently via town_manager.convert_rejuv_potions().
Docs: record that the ACTIVE pickit set is config/bnip/Den gode.bnip and that it is
gitignored, so config/default.bnip edits have no effect on runs — an easy hour to lose.
Also document how should_pickup / should_id / should_keep interact, since that is what
makes a trailing catch-all rule work (pickup ignores the '#' clause, should_keep returns
on first match, so specific rules above still win).
Loot rule changes themselves live in the gitignored pickit file and are not in this commit:
- catch-all "[Quality] == Rare # [Strength] >= 999" so every rare is picked up and
identified, kept only if a specific rule matches, otherwise vendored for gamble gold.
Previously only 7 rare types had any rule, so rare weapons/armour/helms/shields were
never picked up and never sold.
- Flawless and Perfect gem lines uncommented (all gem rules had been commented out, so
no gems were being collected at all).
Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
5df9ff4732
commit
97703acf85
@@ -617,6 +617,37 @@ Convert via `screen.py`: `convert_monitor_to_screen()`, `convert_screen_to_abs()
|
||||
|
||||
---
|
||||
|
||||
## Pickit / loot rules — which file is actually live
|
||||
|
||||
**The active pickit set is `config/bnip/Den gode.bnip`, which is gitignored** (`.gitignore:89`
|
||||
= `config/bnip/*`). `config/default.bnip` is only a fallback and is NOT in use — editing it
|
||||
has no effect on runs. Resolution order is in `bnip/actions.py::_resolve_bnip_dir()`:
|
||||
|
||||
```
|
||||
config/profiles/<active>/pickit/ > config/pickit_profiles/<general.pickit_profile>/ > config/bnip/ > default.bnip
|
||||
```
|
||||
|
||||
Confirm which file loaded by the startup line `Loaded N nip files with M total expressions`
|
||||
and re-check M after editing — if the count doesn't move, you edited the wrong file.
|
||||
|
||||
**How the three decisions interact** (`bnip/actions.py`):
|
||||
|
||||
| Function | Evaluates | Notes |
|
||||
|---|---|---|
|
||||
| `should_pickup` | only the part **before** `#` | so a rule with stat conditions still picks the item up unidentified |
|
||||
| `should_id` | returns **False** only if a rule **without** a `#` matches | any rule carrying `#` leaves the item to be identified |
|
||||
| `should_keep` | full expression, returns on the **first** match | so ordering matters: specific rules must sit above any catch-all |
|
||||
|
||||
That combination is what lets a catch-all work: `[Quality] == Rare # [Strength] >= 999`
|
||||
placed last picks up and identifies every rare, can never itself keep one, and lets every
|
||||
specific rare rule above it win. Anything falling through is vendored (`sell_junk=1`).
|
||||
|
||||
**Current setup (2026-08-26):** gem transmuting is disabled (`[transmute] transmute=` empty
|
||||
in `params.ini` — this also defeats `force=True`, unlike `transmute_every_x_game=0`).
|
||||
Flawless and Perfect gems are picked up and stashed; chipped/flawed/standard are ignored.
|
||||
|
||||
---
|
||||
|
||||
## Config System
|
||||
|
||||
Singleton `Config()` merges in priority order: `custom.ini` > `params.ini` > `game.ini` > `shop.ini` > `transmute.ini`. First instantiation loads; subsequent calls return the same object. User overrides go in `custom.ini` (not tracked in git).
|
||||
|
||||
+5
-1
@@ -386,7 +386,11 @@ pick_gold=1
|
||||
stash_destination=0,1,2,3
|
||||
; Add these possible gems to "transmute" to transmute them:
|
||||
; chipped, flawed, standard, flawless
|
||||
transmute=flawless
|
||||
; DISABLED 2026-08-26: gems are stashed to the GEMS tab and left alone, no cube/convert
|
||||
; runs. An empty value makes run_transmutes() bail at "No gem tiers configured", which
|
||||
; also holds for force=True (tools/gem_transmute.py), unlike transmute_every_x_game=0.
|
||||
; Re-enable by listing tiers again, e.g. transmute=flawless
|
||||
transmute=
|
||||
;how often we want to run transmute routine(e.g. every 100 games)
|
||||
transmute_every_x_game=60
|
||||
; number of stash tabs — drives tab click geometry in inventory/common.tab_properties().
|
||||
|
||||
Reference in New Issue
Block a user