Exemple #1
0
 /**
  * @param int $id
  * @return App\GameModule\DTO\Village
  */
 public function getVillage($id)
 {
     /** @var \stdClass $VData */
     $VData = $this->VDataModel->getByWId($id);
     $village = new App\GameModule\DTO\Village();
     $village->setId($id);
     if ($VData) {
         /** @var \stdClass $owner */
         $owner = $this->userModel->get($VData->owner);
         $village->setOwner($owner);
         $village->setActualWood($VData->wood);
         $village->setActualClay($VData->clay);
         $village->setActualIron($VData->iron);
         $village->setActualCrop($VData->crop);
         $village->setStorage($VData->maxstore);
         $village->setGranary($VData->maxcrop);
         $upkeep = $VData->pop + $this->upkeepService->getUpkeep($id);
         $village->setUpkeep($upkeep);
         $village->setName($VData->name);
         $village->setLoyalty($VData->loyalty);
         $village->setCapital($VData->capital);
         $village->setType($VData->type);
         $village->setNatar($VData->natar);
         $village->setCulturePoints($VData->cp);
         $village->setPopulation($VData->pop);
         $FData = $this->FDataModel->getByVref($village->getId())->toArray();
         $village->setFData($FData);
         $village->setProductionWood($this->productionService->getProductionWood($village));
         $village->setProductionClay($this->productionService->getProductionClay($village));
         $village->setProductionIron($this->productionService->getProductionIron($village));
         $village->setProductionCrop($this->productionService->getProductionCrop($village));
         $village->setMaxUpkeep($this->productionService->getBaseProductionCrop($village));
     }
     return $village;
 }
Exemple #2
0
 /**
  * Handle all related to create new user.
  *
  * @param \stdClass $data
  */
 public function createUser($data)
 {
     $user = $this->registerUser($data);
     /** @var \stdClass $field */
     $field = $this->WDataModel->getRandom($data->position);
     $this->WDataModel->setFieldTaken($field->id);
     $villageName = $this->villageService->getNewVillageName($user);
     $vid = $this->VDataModel->addVillageForUser($user, $field, $villageName);
     $this->FDataModel->addResourceFields($field->fieldtype, $vid);
     $this->unitsModel->add(['vref' => $vid]);
     $this->TDataModel->add(['vref' => $vid]);
     $this->ABDataModel->add(['vref' => $vid]);
 }
Exemple #3
0
 public function processBuildings($time)
 {
     $buildings = $this->BDataModel->getBuilt($time);
     foreach ($buildings as $building) {
         $data = [];
         $village = $this->villageService->getVillage($building->wid);
         $buildingStats = $this->getBuilding($building->type, $building->level, $village);
         $this->FDataModel->update($building->wid, ['f' . $building->field => $building->level, 'f' . $building->field . 't' => $building->type]);
         $data['pop'] = $village->getPopulation() + $buildingStats->getUpkeep();
         $data['cp'] = $village->getCulturePoints() + $buildingStats->getCulturePoints();
         switch ($buildingStats->getBuilding()) {
             case BuildingModel::WAREHOUSE:
                 $data['maxstore'] = $this->storageMultiplier * $buildingStats->getParameter();
                 break;
             case BuildingModel::GRANARY:
                 $data['maxcrop'] = $this->storageMultiplier * $buildingStats->getParameter();
                 break;
         }
         $this->VDataModel->update($village->getId(), $data);
         $this->BDataModel->delete($building->id);
     }
 }