Пример #1
0
 public function actionCancel($id)
 {
     $BData = $this->BDataModel->get($id);
     $this->BDataModel->delete($id);
     if ($BData->type < 19) {
         $this->redirect(':Game:OuterVillage:default', $BData->wid);
     } else {
         $this->redirect(':Game:InnerVillage:default', $BData->wid);
     }
 }
Пример #2
0
 public function render()
 {
     $id = $this->presenter->getParameter('id');
     if (!$id) {
         /** @var \stdClass $field */
         $field = $this->VDataModel->getByUser($this->presenter->user->getId());
         $id = $field->wref;
     }
     $this->template->buildings = $this->BDataModel->getBuildingQueue($id);
     $this->template->village = $this->villageService->getVillage($id);
     $this->template->names = $this->buildingModel->getAll();
     $this->template->setFile(__DIR__ . '/BuildingControl.latte');
     $this->template->render();
 }
Пример #3
0
 /**
  * @param App\GameModule\DTO\Building $building
  * @param int $field
  * @param App\GameModule\DTO\Village $village
  * @return bool
  */
 public function canBuildLevel($building, $field, $village)
 {
     if (!$building) {
         return 'Building is at maximum level';
     }
     $current = $this->getBuilding($village->getFData()['f' . $field . 't'], $village->getFData()['f' . $field], $village);
     if ($current) {
         if ($current->getLevel() === $building->getLevel()) {
             return 'Building is at same level.';
         }
         /** @var \stdClass $maxLevel */
         $maxLevel = $this->buildingModel->getBuildingMaxLevel($building->getBuilding());
         if ($current->getLevel() === $maxLevel->level) {
             return 'Building is at maximum level';
         }
         $queue = $this->BDataModel->getBuildingQueue($village->getId());
         foreach ($queue as $single) {
             if ($single->level === $building->getLevel() && $single->type === $building->getBuilding() && $single->field == $field) {
                 return 'Building is already being build.';
             }
             if ($maxLevel->level === $single->level && $single->type === $building->getBuilding() && $single->field == $field) {
                 return 'Building max level under construction';
             }
         }
     }
     return TRUE;
 }