Leaving my findings here. For crushers, the code at <samp>Object::performObjectDropInAction</samp> (within the branch of the only occurrence of <samp>Geode Crusher</samp> in this file) increments <samp>Game1.stats.GeodesCracked</samp> ''after'' calling <samp>Utility.getTreasureFromGeode</samp>, while Clint's code <samp>GeodeMenu::update</samp> increments the same stat long before calling <samp>Utility.getTreasureFromGeode</samp>. There's no explicit offset code, but the off-by-one difference is due to how the logic is laid out in two different code paths. I'd probably call it a glitch, though. [[User:IBugOne|IBugOne]] ([[User talk:IBugOne|talk]]) 17:48, 2 January 2023 (UTC) | Leaving my findings here. For crushers, the code at <samp>Object::performObjectDropInAction</samp> (within the branch of the only occurrence of <samp>Geode Crusher</samp> in this file) increments <samp>Game1.stats.GeodesCracked</samp> ''after'' calling <samp>Utility.getTreasureFromGeode</samp>, while Clint's code <samp>GeodeMenu::update</samp> increments the same stat long before calling <samp>Utility.getTreasureFromGeode</samp>. There's no explicit offset code, but the off-by-one difference is due to how the logic is laid out in two different code paths. I'd probably call it a glitch, though. [[User:IBugOne|IBugOne]] ([[User talk:IBugOne|talk]]) 17:48, 2 January 2023 (UTC) |