export const tick = new Task<Tick>('tick', async (task, job) => {
const nextTick = job.data.lastTick+1;
+ const start = Date.now();
// +population*1.1 is where we take into account farms for bonus food production
let sql = `update cities set
energy = min(
max(
energy - (
- farms * 40 +
- barracks * 60 +
- special_attacker_trainer * 100 +
- special_defender_trainer * 80 +
- homes * 10 +
- warehouses * 30 +
- solar_panels * 10 +
- accumulators * 100
+ farms * 4 +
+ barracks * 6 +
+ special_attacker_trainer * 10 +
+ special_defender_trainer * 8 +
+ homes * 1 +
+ warehouses * 3 +
+ solar_panels * 1 +
+ accumulators * 10 +
+ mining_facilities * 8 +
+ ore_refinery * 4
),
0
- ),
+ ) + solar_panels * 125,
accumulators * 150
),
alloys = min(
console.log(e);
}
finally {
- const now = new Date();
- const nextTickAt = 60 - now.getMinutes();
- console.log(`Tick scheduled for ${nextTickAt}min`);
-
- task.trigger({
- lastTickAt: +now,
- lastTick: nextTick
- }, { delay: 60000 * nextTickAt});
+ console.log('Tick complete', Date.now() - start);
}
-
});