function CheckLabSettingsInQueue() { global $RESEARCH; $this->setGlobal(); return BuildFunctions::CheckLabSettingsInQueue(); }
public static function addResearchToQueue($Element, $AddMode = true) { global $PLANET, $USER, $resource, $CONF, $reslist, $pricelist; $PLANET[$resource[31] . '_inter'] = ResourceUpdate::getNetworkLevel($USER, $PLANET); if (!in_array($Element, $reslist['tech']) || !BuildFunctions::isTechnologieAccessible($USER, $PLANET, $Element) || !BuildFunctions::CheckLabSettingsInQueue($PLANET)) { return; } $CurrentQueue = unserialize($USER['b_tech_queue']); if (!empty($CurrentQueue)) { $ActualCount = count($CurrentQueue); } else { $CurrentQueue = array(); $ActualCount = 0; } if (Config::get('max_elements_tech') != 0 && Config::get('max_elements_tech') <= $ActualCount) { return false; } $BuildLevel = $USER[$resource[$Element]] + 1; if ($ActualCount == 0) { if ($pricelist[$Element]['max'] < $BuildLevel) { return; } $costRessources = BuildFunctions::getElementPrice($USER, $PLANET, $Element, !$AddMode); if (!BuildFunctions::isElementBuyable($USER, $PLANET, $Element, $costRessources)) { return; } if (isset($costRessources[901])) { $PLANET[$resource[901]] -= $costRessources[901]; } if (isset($costRessources[902])) { $PLANET[$resource[902]] -= $costRessources[902]; } if (isset($costRessources[903])) { $PLANET[$resource[903]] -= $costRessources[903]; } if (isset($costRessources[921])) { $USER[$resource[921]] -= $costRessources[921]; } $elementTime = BuildFunctions::getBuildingTime($USER, $PLANET, $Element, $costRessources); $BuildEndTime = TIMESTAMP + $elementTime; $USER['b_tech_queue'] = serialize(array(array($Element, $BuildLevel, $elementTime, $BuildEndTime, $PLANET['id']))); $USER['b_tech'] = $BuildEndTime; $USER['b_tech_id'] = $Element; $USER['b_tech_planet'] = $PLANET['id']; } else { $addLevel = 0; foreach ($CurrentQueue as $QueueSubArray) { if ($QueueSubArray[0] != $Element) { continue; } $addLevel++; } $BuildLevel += $addLevel; if ($pricelist[$Element]['max'] < $BuildLevel) { return; } $elementTime = BuildFunctions::getBuildingTime($USER, $PLANET, $Element, NULL, !$AddMode, $BuildLevel); $BuildEndTime = $CurrentQueue[$ActualCount - 1][3] + $elementTime; $CurrentQueue[] = array($Element, $BuildLevel, $elementTime, $BuildEndTime, $PLANET['id']); $USER['b_tech_queue'] = serialize($CurrentQueue); } }