Exemplo n.º 1
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.º 2
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.º 3
0
 public function ConstructShipsOf(Colony $c)
 {
     $rb = ResourceBuilder::GetShipListOfColony($c, true);
     if ($this->ConstructUnits($rb)) {
         $rb->BuildList()->Colony()->Fleet()->UpdateDatabase();
     }
 }