コード例 #1
0
 private function addResource(ResourceSource $resourceSource)
 {
     /** @var Island $island */
     $island = $resourceSource->getHexagon()->getIsland();
     /** @var ResourceType $resourceType */
     $resourceType = $resourceSource->getResourceType();
     $mainResourceStorage = $this->checkExistsAndGetResourceStorage($island, $resourceType);
     $resourceChanges = [];
     if ($this->managedToDeductRequiredResources($resourceSource, $resourceChanges)) {
         $mainResourceStorage->setCount($mainResourceStorage->getCount() + $resourceSource->getIncrement());
         $resourceChanges[] = ['resource_type' => $resourceType->getName(), 'amount' => '+' . $resourceSource->getIncrement()];
         $resourceSource->setLastTick(new \DateTime());
         $this->em->flush();
         return ['hexagon_id' => $resourceSource->getHexagon()->getId(), 'resource_changes' => $resourceChanges];
     } else {
         return null;
     }
 }