diff --git a/js/engine.js b/js/engine.js index a96e953..0414ce6 100644 --- a/js/engine.js +++ b/js/engine.js @@ -77,13 +77,15 @@ function updateRates() { G.userRate += 5 * timmyCount * (timmyMult - 1); } - // Bilbo randomness: 10% chance of massive creative burst - if (G.buildings.bilbo > 0 && Math.random() < CONFIG.BILBO_BURST_CHANCE) { - G.creativityRate += 50 * G.buildings.bilbo; - } - // Bilbo vanishing: 5% chance of zero creativity this tick - if (G.buildings.bilbo > 0 && Math.random() < CONFIG.BILBO_VANISH_CHANCE) { - G.creativityRate = 0; + // Bilbo randomness: flags are set per-tick in tick(), not here + // updateRates() is called from many non-tick contexts (buy, resolve, sprint) + if (G.buildings.bilbo > 0) { + if (G.bilboBurstActive) { + G.creativityRate += 50 * G.buildings.bilbo; + } + if (G.bilboVanishActive) { + G.creativityRate = 0; + } } // Allegro requires trust