public function show() { global $PLANET, $USER, $UNI, $LNG, $resource, $reslist, $CONF, $pricelist; if ($PLANET[$resource[31]] == 0) { $this->printMessage($LNG['bd_lab_required']); } $TheCommand = HTTP::_GP('cmd', ''); $Element = HTTP::_GP('tech', 0); $ListID = HTTP::_GP('listid', 0); $PLANET[$resource[31] . '_inter'] = ResourceUpdate::getNetworkLevel($USER, $PLANET); if (!empty($TheCommand) && $_SERVER['REQUEST_METHOD'] === 'POST' && $USER['urlaubs_modus'] == 0) { switch ($TheCommand) { case 'insert': $this->AddBuildingToQueue($Element, true); break; } $this->redirectTo('game.php?page=dmtech'); } $bContinue = $this->CheckLabSettingsInQueue($PLANET); $queueData = $this->getQueueData(); $TechQueue = $queueData['queue']; $QueueCount = count($TechQueue); $ResearchList = array(); $Elements = array(106, 108, 109, 110, 111, 113, 114, 115, 117, 118, 120, 121, 122, 123, 124, 131, 132, 133); foreach ($Elements as $ID => $Element) { if (!BuildFunctions::isBusyToBuild($USER, $PLANET, $Element)) { continue; } $AllTech = array(); $GetAll = $GLOBALS['DATABASE']->query("SELECT * FROM `uni1_vars_requriements` WHERE elementID = " . $Element . " ;"); if ($GLOBALS['DATABASE']->numRows($GetAll) > 0) { while ($x = $GLOBALS['DATABASE']->fetch_array($GetAll)) { $AllTech[] = $x; } } if (isset($queueData['quickinfo'][$Element])) { $levelToBuild = $queueData['quickinfo'][$Element]; } else { $levelToBuild = $USER[$resource[$Element]]; } $costRessources = max(1, ($pricelist[$Element]['cost']['901'] + $pricelist[$Element]['cost']['902'] * 2 + $pricelist[$Element]['cost']['903'] * 4) * pow($pricelist[$Element]['factor'], $USER[$resource[$Element]]) / 2500); $elementTime = 0; $ResearchList[$Element] = array('id' => $Element, 'level' => $USER[$resource[$Element]], 'maxLevel' => $pricelist[$Element]['max'], 'costRessources' => pretty_number($costRessources), 'levelToBuild' => $levelToBuild, 'techacc' => BuildFunctions::isTechnologieAccessible($USER, $PLANET, $Element), 'AllTech' => $AllTech); } $premium_stage = 0; if ($USER['premium_reward_stage'] > 0 && $USER['premium_reward_days'] > TIMESTAMP) { $premium_stage = $USER['premium_reward_stage']; } $this->tplObj->assign_vars(array('ResearchList' => $ResearchList, 'IsLabinBuild' => !$bContinue, 'IsFullQueue' => Config::get('max_elements_tech') == 0 || Config::get('max_elements_tech') + $premium_stage == count($TechQueue), 'Queue' => $TechQueue)); $this->display('page.dmtech.default.tpl'); }
public function show() { global $ProdGrid, $LNG, $UNI, $resource, $reslist, $CONF, $PLANET, $USER, $pricelist; $TheCommand = HTTP::_GP('cmd', ''); // wellformed buildURLs if (!empty($TheCommand) && $_SERVER['REQUEST_METHOD'] === 'POST' && $USER['urlaubs_modus'] == 0) { $Element = HTTP::_GP('building', 0); $ListID = HTTP::_GP('listid', 0); switch ($TheCommand) { case 'insert': $this->AddBuildingToQueue($Element, true); break; } $this->redirectTo('game.php?page=dmbuild'); } $premium_stage = 0; if ($USER['premium_reward_stage'] > 0 && $USER['premium_reward_days'] > TIMESTAMP) { $premium_stage = $USER['premium_reward_stage']; } $queueData = $this->getQueueData(); $Queue = $queueData['queue']; $QueueCount = count($Queue); $CanBuildElement = isVacationMode($USER) || Config::get('max_elements_build') == 0 || $QueueCount < Config::get('max_elements_build') + $premium_stage; $CurrentMaxFields = CalculateMaxPlanetFields($PLANET); $RoomIsOk = $PLANET['field_current'] < $CurrentMaxFields - $QueueCount; $BuildEnergy = $USER[$resource[113]]; $BuildLevelFactor = 10; $BuildTemp = $PLANET['temp_max']; $BuildInfoList = array(); if ($PLANET['planet_type'] == 1) { $Elements = $reslist['allow'][$PLANET['planet_type']]; } elseif ($PLANET['planet_type'] == 3) { $Elements = array(14, 15, 21, 22, 23, 24, 41, 42, 43); } foreach ($Elements as $ID => $Element) { if (!BuildFunctions::isBusyToBuild($USER, $PLANET, $Element)) { continue; } $AllTech = array(); $GetAll = $GLOBALS['DATABASE']->query("SELECT * FROM `uni1_vars_requriements` WHERE elementID = " . $Element . " ;"); if ($GLOBALS['DATABASE']->numRows($GetAll) > 0) { while ($x = $GLOBALS['DATABASE']->fetch_array($GetAll)) { $AllTech[] = $x; } } $infoEnergy = ""; if (isset($queueData['quickinfo'][$Element])) { $levelToBuild = $queueData['quickinfo'][$Element]; } else { $levelToBuild = $PLANET[$resource[$Element]]; } if (in_array($Element, $reslist['prod'])) { $premium_resource = 0; if ($USER['premium_reward_extraction'] > 0 && $USER['premium_reward_extraction_days'] > TIMESTAMP) { $premium_resource = $USER['premium_reward_extraction']; } $premium_resource = $premium_resource; $peacefull_resource = 0; if ($USER['experience_peace_level'] > 0) { $peacefull_resource = $USER['experience_peace_level']; } $peacefull_resource = $peacefull_resource; $combat_collider = 0; if ($USER['combat_reward_collider'] > 0) { $combat_collider = $USER['combat_reward_collider']; } $combat_collider = $combat_collider; $academy_mines = 0; if ($USER['academy_1201'] > 0) { $academy_mines = getbonusOneBis(1201, $USER['academy_1201']); } $academy_mines = $academy_mines; $daily_prod_bonus = 0; if ($USER['daily_produ'] > TIMESTAMP) { $daily_prod_bonus = 30; } $daily_prod_bonus = $daily_prod_bonus; $academy_energy = 0; if ($USER['academy_1202'] > 0) { $academy_energy = getbonusOneBis(1202, $USER['academy_1202']); } $academy_energy = $academy_energy; $academy_fusion = 0; if ($USER['academy_1209'] > 0) { $academy_fusion = getbonusOneBis(1209, $USER['academy_1209']); } $academy_fusion = $academy_fusion; $academy_solar = 0; if ($USER['academy_1210'] > 0) { $academy_solar = getbonusOneBis(1210, $USER['academy_1210']); } $academy_solar = $academy_solar; $allyInfo = $GLOBALS['DATABASE']->query("SELECT alliance_prod FROM `uni1_alliance` WHERE id = " . $USER['ally_id'] . ";"); $allyInfo = $GLOBALS['DATABASE']->fetch_array($allyInfo); $alliance_prod = 0; if ($allyInfo['alliance_prod'] > 0) { $alliance_prod = $allyInfo['alliance_prod']; } $alliance_prod = $alliance_prod; $BuildLevel = $PLANET[$resource[$Element]]; $Need = round(eval(ResourceUpdate::getProd($ProdGrid[$Element]['production'][911]))); $BuildLevel = $levelToBuild + 1; $Prod = round(eval(ResourceUpdate::getProd($ProdGrid[$Element]['production'][911]))); $requireEnergy = $Prod - $Need; if ($requireEnergy < 0) { $infoEnergy = sprintf($LNG['bd_need_engine'], pretty_number(abs($requireEnergy)), $LNG['tech'][911]); } else { $infoEnergy = sprintf($LNG['bd_more_engine'], pretty_number(abs($requireEnergy)), $LNG['tech'][911]); } } $costRessources = round(max(1, ($pricelist[$Element]['cost']['901'] + $pricelist[$Element]['cost']['902'] + $pricelist[$Element]['cost']['903']) * pow($pricelist[$Element]['factor'], $PLANET[$resource[$Element]]) / 5000)); $elementTime = 0; $BuildInfoList[$Element] = array('level' => $PLANET[$resource[$Element]], 'maxLevel' => $pricelist[$Element]['max'], 'infoEnergy' => $infoEnergy, 'costRessources' => pretty_number($costRessources), 'techacc' => BuildFunctions::isTechnologieAccessible($USER, $PLANET, $Element), 'elementTime' => $elementTime, 'levelToBuild' => $levelToBuild, 'AllTech' => $AllTech); } $this->tplObj->loadscript('buildlist.js'); $this->tplObj->assign_vars(array('BuildInfoList' => $BuildInfoList, 'CanBuildElement' => $CanBuildElement, 'RoomIsOk' => $RoomIsOk, 'Queue' => $Queue, 'isBusy' => array('shipyard' => !empty($PLANET['b_hangar_id']), 'research' => $USER['b_tech_planet'] != 0), 'HaveMissiles' => (bool) $PLANET[$resource[503]] + $PLANET[$resource[502]], 'HaveMissiles' => (bool) $PLANET[$resource[503]] + $PLANET[$resource[502]], 'field_used' => $PLANET['field_current'], 'field_max' => CalculateMaxPlanetFields($PLANET), 'field_left' => CalculateMaxPlanetFields($PLANET) - $PLANET['field_current'], 'field_percent' => $PLANET['field_current'] * 100 / CalculateMaxPlanetFields($PLANET))); $this->display('page.dmbuild.default.tpl'); }