function balanceOfUnclaimedGoo(address player) internal constant returns (uint224 gooGain) {
        if (supplyCapHit) return;
        
        uint32 lastSave = balances[player].lastGooSaveTime;
        if (lastSave > 0 && lastSave < block.timestamp) {
            gooGain = uint224(gooProduction[player] * (block.timestamp - lastSave));
        }
        
        if (totalGoo + gooGain >= MAX_SUPPLY) {
            gooGain = MAX_SUPPLY - totalGoo;
        }
    }