public static function GetBuildingListOfColony(Colony $colony, $readyToBeBuilt = false) { global $NN_config; $IDrangeFrom = $NN_config["building_id_range"]["from"]; $IDrangeTo = $NN_config["building_id_range"]["to"]; return ResourceBuilder::GetBuildListBy($colony, $IDrangeFrom, $IDrangeTo, $readyToBeBuilt, "production_building"); }
public function BuildingPage(User $u) { $this->_user = $u; $this->_queue = ResourceBuilder::GetBuildingListOfColony($u->CurrentColony()); $this->_time = $this->_queue->BuildList()->CommissionedTime(); // Include language files for buildings page, useful to put error messages there. $this->_text =& array_merge($u->Language()->GetFilesByPage("buildings"), $u->Language()->GetFilesByPage("trader"), $u->Language()->GetFilesByPage("research")); }
public function FillItemsInDatabase() { $c = $this->Colony(); $this->ItemsInDatabase(ResourceBuilder::GetBuildingListOfColony($c)->BuildList()); }
public function FillItemsInDatabase() { $c = $this->Colony(); if ($this->Type() === "BUILDING") { $rb = ResourceBuilder::GetBuildingListOfColony($c); } elseif ($this->Type() === "SHIP") { $rb = ResourceBuilder::GetShipListOfColony($c); } elseif ($this->Type() === "MISSILE") { $rb = ResourceBuilder::GetMissileListOfColony($c); } else { $rb = ResourceBuilder::GetDefenseListOfColony($c); } $this->ItemsInDatabase($rb->BuildList()); }
// Only recalculate commissioned time when first item is deleted $action->CancelBuildings(array($itemName), array($pos), $firstItem); break; case "update": $id = $_GET['building']; $itemName = ResourceParser::Instance()->GetItemNameByID($id); $pos = $_GET['position']; Database::Instance()->SetDebugging(true); // Tap into the Think function and override it for a second Think::Instance()->OverrideUser($user); Think::Instance()->ConstructBuildingsOf($user->CurrentColony()); Think::Instance()->ReturnControl(); break; case "reorder": $rows = explode("_", $_GET['rows']); $rb = ResourceBuilder::GetBuildingListOfColony($user->CurrentColony(), false); $rb->BuildList()->Reorder($rows); $rb->BuildList()->UpdateDatabase(); break; } } } // Render new buildings page $view = new BuildingPage($user); $vars['build_list_overiew'] = $view->RenderRows(); $queue = $view->RenderQueue(); $vars['timer_layout'] = "{d<}{dn}:{d>}{hnn}:{mnn}:{snn}"; $vars['building_queue'] =& $queue['building_queue']; $vars['building_timers'] =& $queue['building_timers']; $vars['fields_used'] = $user->CurrentColony()->UsedFields(); $vars['fields_total'] = $user->CurrentColony()->MaxFields();
public function CancelUnits(array $resources, array $amounts, array $positions, $type) { $c = $this->User()->CurrentColony(); $buildGroup = BuildGroup::FromList($resources, $amounts, $c, $positions); switch ($type) { case "SHIP": $rb = ResourceBuilder::GetShipListOfColony($c); break; case "DEFENSE": $rb = ResourceBuilder::GetDefenseListOfColony($c); break; case "MISSILE": $rb = ResourceBuilder::GetMissileListOfColony($c); break; case "BUILDING": return $this->CancelBuildings($resources, $positions); break; } foreach ($buildGroup->Members() as $item) { if (!$rb->BuildList()->ContainsBuildItem($item)) { throw new Exception("This item has already been deleted!"); } } // Reimburse costs $reimbursedCosts = $buildGroup->ReimbursedCosts(); $c->CurrentResources()->AddCost($reimbursedCosts); $c->UpdateResources(); // Deduct the units $rb->BuildList()->DeductUnits($buildGroup); // Update Build times $rb->BuildList()->UpdateBuildTimes(); // Update the database $rb->UpdateDatabase(); }
public function ConstructMissilesOf(Colony $c) { $rb = ResourceBuilder::GetMissileListOfColony($c, true); $this->ConstructUnits($rb); }