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 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()); }
public function ConstructDefensesOf(Colony $c) { $rb = ResourceBuilder::GetDefenseListOfColony($c, true); $this->ConstructUnits($rb); }