static Long ai_calculateDateOfDoom(long time1, double value1, long time2, double value2, double criticalMinimum) { if (value2 <= criticalMinimum) ret time2; if (value2 >= value1) null; // upward slope, no doom double time = time1+(criticalMinimum-value1)*(time2-time1)/(value2-value1); ret lround(max(min(time, Long.MAX_VALUE), time2)); }