Пример #1
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;
 }