summaryrefslogtreecommitdiff
path: root/src/Controller/Village.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Controller/Village.php')
-rw-r--r--src/Controller/Village.php146
1 files changed, 0 insertions, 146 deletions
diff --git a/src/Controller/Village.php b/src/Controller/Village.php
deleted file mode 100644
index c678779..0000000
--- a/src/Controller/Village.php
+++ /dev/null
@@ -1,146 +0,0 @@
-<?php
-
-namespace App\Controller;
-
-use App\DB;
-use App\Guard;
-use App\Model\Event\SendUnits;
-use App\Model\Event\TrainUnits;
-use App\Model\Event\UpgradeBuilding;
-use App\Model\Village as Model;
-use App\Router;
-use App\View;
-use Symfony\Component\HttpFoundation\RedirectResponse;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\Routing\Annotation\Route;
-
-class Village
-{
- #[Route(path: '/villages', methods: ['GET'])]
- public function list(): Response
- {
- $villages = DB::fetch(
- Model::class,
- <<<SQL
- select * from villages
- join user_villages on villages.id = user_villages.village_id
- where user_villages.user_id=:id
- SQL,
- ['id' => $_SESSION['user']['id']]
- );
-
- return new Response(View::render('villages.twig', [
- 'villages' => $villages,
- ]));
- }
-
- #[Route(path: '/village/{x}/{y}', methods: ['GET'])]
- public function show(Request $request): Response
- {
- $village = Model::getByCoordinates($request->get('x'), $request->get('y'));
-
- if (! Guard::ownsVillage($village->id)) {
- return new Response(View::render('error.twig', ['message' => 'Insufficient permission']), 403);
- }
-
- $events = [];
-
- $eventsBuilding = DB::query(
- <<<SQL
- select * from events_upgrade_building as event
- left join events on event.event_id = events.id
- where events.village_id=:id
- SQL, ['id' => $village->id]
- )->fetchAll();
-
- foreach ($eventsBuilding as $row) {
- $events['UpgradeBuilding'][$row['type']][] = DB::convertToModel(UpgradeBuilding::class, $row);
- }
-
- $eventsUnits = DB::query(
- <<<SQL
- select * from events_train_units as event
- left join events on event.event_id = events.id
- where village_id=:id
- SQL, ['id' => $village->id]
- )->fetchAll();
-
- foreach ($eventsUnits as $row) {
- $events['TrainUnits'][] = DB::convertToModel(TrainUnits::class, $row);
- }
-
- $eventsUnitsSendOwn = DB::query(
- <<<SQL
- select * from events_send_units as event
- left join events on event.event_id = events.id
- where village_id=:id
- SQL, ['id' => $village->id]
- )->fetchAll();
-
- $eventsUnitsSendOther = DB::query(
- <<<SQL
- select * from events_send_units as event
- left join events on event.event_id = events.id
- where (destination=:id or source=:id) and village_id!=:id and is_canceled=false
- SQL, ['id' => $village->id]
- )->fetchAll();
-
- foreach ([...$eventsUnitsSendOwn, ...$eventsUnitsSendOther] as $row) {
- $events['SendUnits'][] = DB::convertToModel(SendUnits::class, $row);;
- }
-
- $buildings = [];
- foreach (Model::getBuildings($village->id, true) as $building) {
- $buildings[$building->type] = $building;
- }
-
-
- return new Response(View::render('village.twig', [
- 'village' => $village,
- 'events' => $events,
- 'buildings' => $buildings,
- 'villages' => DB::fetch(Model::class, "select * from villages where id!=:id", ['id' => $village->id]),
- ]));
- }
-
- #[Route(path: '/village/{x}/{y}/storage/config', methods: ['POST'])]
- public function storageConfig(Request $request): Response
- {
- $village = Model::getByCoordinates($request->get('x'), $request->get('y'));
-
- // calculate to max 100%
- $wood = intval($request->get('wood'));
- $clay = intval($request->get('clay'));
- $iron = intval($request->get('iron'));
- $food = intval($request->get('food'));
- $total = $wood + $clay + $iron + $food;
- $woodPercent = $wood / $total;
- $clayPercent = $clay / $total;
- $ironPercent = $iron / $total;
- $foodPercent = $food / $total;
-
- $wood = round($woodPercent * 100);
- $clay = round($clayPercent * 100);
- $iron = round($ironPercent * 100);
- $food = round($foodPercent * 100);
- $newTotal = $wood+$clay+$iron+$food;
- $food += (100 - $newTotal);
-
- DB::query(
- <<<SQL
- update village_storage_config
- set wood=:wood, clay=:clay, iron=:iron, food=:food
- where village_id=:id
- SQL,
- ['wood' => $wood, 'clay' => $clay, 'iron' => $iron, 'food' => $food, 'id' => $village->id]
- );
-
- return new RedirectResponse(
- Router::generate(
- 'village.show',
- ['x' => $request->get('x'), 'y' => $request->get('y')]
- )
- );
- }
-}