BUG - Noitool treats "Valhe" as "Spell refresher"
Describe the bug
Pacifist chests can contain the "Valhe" (spell refresher mimic) enemy (wiki source for treasure chest loot). However, the tool does not seem to distinguish between the mimic and the actual spell refresher (it works correctly for "Pahan muisto", which is a heart mimic). The tool always displays "Spell refresher" in the pacifist chest contents, and the seed search does not allow for searching the "Valhe" mob, while "Pahan muisto" is listed.
To Reproduce
- Go to "Seed info".
- Enter the seed
1023565730, which is the seed from the daily run on2025-08-07, which should contain a Valhe in the first holy mountain's pacifist chest (see this reddit post as proof and this video for the seed source). - Hover over the said pacifist chest's contents to see that it displays "Spell refresher" (in the English localization).
- Go to "Search for Seed".
- Click "Add new rule > Pacifist Chest".
- Click "Add Entity".
- See that it only lists "Spell refresher" but not "Valhe".
Expected behavior
"Valhe" should be displayed when a pacifist chest contains this mob instead of showing "Spell refresher". The seed search should also contain the option to search for "Valhe".
Screenshots
No screenshots provided
Additional context
I have one potential solution (starting point), though I just quickly looked through the code to pinpoint the bug, and I might not know how this could interfere elsewhere.
The code in src/services/SeedInfo/infoHandler/InfoProviders/ChestRandom.ts already distinguishes the different "Heart(s)" correctly (lines 318-336):
// Heart(s)
rnd = this.randoms.Random(0, 100);
if (rnd <= 88) {
entities.push({
entity: "data/entities/items/pickup/heart.xml",
});
} else if (rnd <= 89) {
entities.push({
entity: "data/entities/animals/illusions/dark_alchemist.xml",
});
} else if (rnd <= 99) {
entities.push({
entity: "data/entities/items/pickup/heart_better.xml",
});
} else {
entities.push({
entity: "data/entities/items/pickup/heart_fullhp.xml",
});
}
An analogous case check for "Spell refresh" is missing (lines 172-175):
// Spell refresh
entities.push({
entity: "data/entities/items/pickup/spell_refresh.xml",
});
Also, src/components/EntitySelect.tsx, src/services/SeedInfo/infoHandler/InfoProviders/PacifistChest.ts, and src/components/SearchSeeds/SearchViews/PacifistChest.tsx assign special cases for "Pahan muisto" (dark_alchemist), so "Valhe" (shaman_wind) probably needs analogous treatment there additionally to keep everything consistent. I don't know which entity string for "Valhe" would be the corresponding value for "Pahan muisto's" data/entities/animals/illusions/dark_alchemist.xml, otherwise I would've been more concrete here.
Thanks! I'll take a look when I can