Bug fix: $oasisowned was fetched but never applied — this is the
"time to overflow" timer's own, independent recomputation of the
production rate (used only for display here), and it silently
excluded oasis bonuses entirely. Village::getCropProd()/getWoodProd()
etc. (which actually grow the stored resource in the DB on every
page load via processProduction()) do add a flat 25% per matching
oasis (Village::sortOasis()), so the real stockpile was growing
faster than this timer's denominator assumed — understating the
rate, and therefore overstating the time remaining. Mirrored here
with the same counting + application order (oasis bonus on the raw
field total, then the building bonus below on top of that), so this
rate matches the one actually used to fill the storage.