$timeLeft = 0; } if ($end > $now) { $end = $now; } $passed = $end - $start; if ($technology->getLevel() && $technology->getUpgradable()) { $realTime += $technology->getTime() * $technology->getIncrementTime() * $technology->getLevel(); } else { $realTime = $technology->getTime(); } $researched = $passed / $realTime; $progress = $technology->getProgress() + $researched; if ($researched > 0) { if ($progress >= 100) { $technologyConn->updateTechnologyLink($technology->getId(), $player->getId(), 0, 0, '*', $technology->getLevel() + 1, 0); $technology->setLevel($technology->getLevel() + 1); $technology->setProgress(0); $technology->setDateStartProgress(0); $technology->setDateEndProgress(0); } else { $technologyConn->updateTechnologyLink($technology->getId(), $player->getId(), $passed, 0, '+', $technology->getLevel(), $progress); $technology->setProgress($progress); $technology->setDateStartProgress($technology->getDateStartProgress() + $passed); if ($timeLeft <= 0) { $technologyConn->updateTechnologyLink($technology->getId(), $player->getId(), 0, 0, '*'); $technology->setDateStartProgress(0); $technology->setDateEndProgress(0); } } }