diff --git a/CLAUDE.md b/CLAUDE.md index 0edef27..471c465 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -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//pickit/ > config/pickit_profiles// > 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). diff --git a/config/params.ini b/config/params.ini index 77be765..c34240b 100644 --- a/config/params.ini +++ b/config/params.ini @@ -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().