Exemplo n.º 1
0
 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");
 }
Exemplo n.º 2
0
 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());
 }
Exemplo n.º 4
0
 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());
 }
Exemplo n.º 5
0
                // 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();
Exemplo n.º 6
0
 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();
 }
Exemplo n.º 7
0
 public function ConstructMissilesOf(Colony $c)
 {
     $rb = ResourceBuilder::GetMissileListOfColony($c, true);
     $this->ConstructUnits($rb);
 }