From 97703acf85f1c9ae8a771bd8329dfc406c7ea8ce Mon Sep 17 00:00:00 2001 From: alexpolo1 Date: Wed, 26 Aug 2026 19:04:50 +0200 Subject: [PATCH] config: disable gem transmuting; document the live pickit set and keep/id/sell interaction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- CLAUDE.md | 31 +++++++++++++++++++++++++++++++ config/params.ini | 6 +++++- 2 files changed, 36 insertions(+), 1 deletion(-) 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().