diff options
Diffstat (limited to 'src/Controller/Building.php')
-rw-r--r-- | src/Controller/Building.php | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/src/Controller/Building.php b/src/Controller/Building.php deleted file mode 100644 index e141113..0000000 --- a/src/Controller/Building.php +++ /dev/null @@ -1,47 +0,0 @@ -<?php - -namespace App\Controller; - -use App\Model\Building as Model; -use App\Model\Event; -use App\Model\Event\UpgradeBuilding; -use App\Model\Village; -use App\Router; -use Symfony\Component\HttpFoundation\RedirectResponse; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\Routing\Annotation\Route; - -class Building -{ - #[Route(path: '/village/{x}/{y}/building/{type}/level-up', methods: ['POST'])] - public function levelUp(Request $request): Response - { - $village = Village::getByCoordinates($request->get('x'), $request->get('y')); - $building = Model::getByVillage($village->id, $request->get('type')) ?? Model::getEmpty($village->id, $request->get('type')); - - // resources - foreach ($building->getResourceRequirements() as $resourceType => $resourceValue) { - $village->{$resourceType} -= $resourceValue; - } - $village->updateResources(); - - // event - $event = new Event(); - $event->time = (new \DateTime())->add(\DateInterval::createFromDateString( - $building->getBuildTimeForLevel($building->getEffectiveLevel() + 1) . ' seconds' - )); - $event->villageId = $building->villageId; - $upgradeBuildingEvent = new UpgradeBuilding(); - $upgradeBuildingEvent->event = $event; - $upgradeBuildingEvent->type = $building->type; - $upgradeBuildingEvent->dbInsert(); - - return new RedirectResponse( - Router::generate( - 'village.show', - ['x' => $request->get('x'), 'y' => $request->get('y')] - ) - ); - } -} |