src/Controller/FishersQuest/LeaderboardController.php line 63

  1. <?php
  2. namespace App\Controller\FishersQuest;
  3. use App\Entity\NftMetadata;
  4. use App\Entity\User;
  5. use App\Entity\UserGear;
  6. use Doctrine\Persistence\ManagerRegistry;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class LeaderboardController extends AbstractController
  11. {
  12.     public function __construct(private ManagerRegistry $doctrine) {}
  13. //    #[Route('/leaderboard', name: 'leaderboard')]
  14. //    public function index(): Response
  15. //    {
  16. //        return $this->render('leaderboard/index.html.twig', [
  17. //            'controller_name' => 'LeaderboardController',
  18. //        ]);
  19. //    }
  20.     #[Route('/leaderboard/catchable/season-one'name'leaderboard_catchable_season_one'requirements: ['domain' => 'tinyknightgames.com|tinyknightgames.wip|tkgstage.com'], host'{domain}')]
  21.     public function leaderboardCatchableSeasonOne(): Response
  22.     {
  23.         $em $this->doctrine->getManager();
  24.         $nftMetadatas $em->getRepository(NftMetadata::class)->findAllForLeaderboardByCollection(1);
  25.         $expLeaders $em->getRepository(User::class)->findBy([],['experience' => 'desc'], 10);
  26.         $gearScoreLeaders $em->getRepository(User::class)->getUserGearScores();
  27.         $nftMetadatasByTier = array('Extreme' => [], 'Legendary' => [], 'Epic' => [], 'Rare' => [], 'Uncommon' => [], 'Common' => [], 'Fodder' => []);
  28.         foreach($nftMetadatas as $nftMetadata) {
  29.             $tier $nftMetadata->getTemplate()->getTier();
  30.             if($tier === && count($nftMetadatasByTier['Fodder']) < 3) {
  31.                 array_push($nftMetadatasByTier['Fodder'], $nftMetadata);
  32.             } elseif($tier === 2  && count($nftMetadatasByTier['Common']) < 3) {
  33.                 array_push($nftMetadatasByTier['Common'], $nftMetadata);
  34.             }elseif($tier === 3  && count($nftMetadatasByTier['Uncommon']) < 3) {
  35.                 array_push($nftMetadatasByTier['Uncommon'], $nftMetadata);
  36.             }elseif($tier === 4  && count($nftMetadatasByTier['Rare']) < 3) {
  37.                 array_push($nftMetadatasByTier['Rare'], $nftMetadata);
  38.             }elseif($tier === 5  && count($nftMetadatasByTier['Epic']) < 3) {
  39.                 array_push($nftMetadatasByTier['Epic'], $nftMetadata);
  40.             }elseif($tier === 6  && count($nftMetadatasByTier['Legendary']) < 3) {
  41.                 array_push($nftMetadatasByTier['Legendary'], $nftMetadata);
  42.             }elseif($tier === 7  && count($nftMetadatasByTier['Extreme']) < 3) {
  43.                 array_push($nftMetadatasByTier['Extreme'], $nftMetadata);
  44.             }
  45.         }
  46.         return $this->render('leaderboard/catchable/season-one.html.twig', [
  47.             'controller_name' => 'LeaderboardController',
  48.             'nftMetadatasByTier' => $nftMetadatasByTier,
  49.             'expLeaders' => $expLeaders,
  50.             'gearScoreLeaders' => $gearScoreLeaders,
  51.         ]);
  52.     }
  53.     #[Route('/leaderboard/catchable/season-two'name'leaderboard_catchable_season_two'requirements: ['domain' => 'tinyknightgames.com|tinyknightgames.wip|tkgstage.com'], host'{domain}')]
  54.     public function leaderboardCatchableSeasonTwo(): Response
  55.     {
  56.         $em $this->doctrine->getManager();
  57.         $nftMetadatas $em->getRepository(NftMetadata::class)->findAllForLeaderboardByCollection(2);
  58.         $expLeaders $em->getRepository(User::class)->findBy([],['experience' => 'desc'], 10);
  59.         $gearScoreLeaders $em->getRepository(User::class)->getUserGearScores();
  60.         $nftMetadatasByTier = array('Extreme' => [], 'Legendary' => [], 'Epic' => [], 'Rare' => [], 'Uncommon' => [], 'Common' => [], 'Fodder' => []);
  61.         foreach($nftMetadatas as $nftMetadata) {
  62.             $tier $nftMetadata->getTemplate()->getTier();
  63.             if($tier === && count($nftMetadatasByTier['Fodder']) < 3) {
  64.                 array_push($nftMetadatasByTier['Fodder'], $nftMetadata);
  65.             } elseif($tier === 2  && count($nftMetadatasByTier['Common']) < 3) {
  66.                 array_push($nftMetadatasByTier['Common'], $nftMetadata);
  67.             }elseif($tier === 3  && count($nftMetadatasByTier['Uncommon']) < 3) {
  68.                 array_push($nftMetadatasByTier['Uncommon'], $nftMetadata);
  69.             }elseif($tier === 4  && count($nftMetadatasByTier['Rare']) < 3) {
  70.                 array_push($nftMetadatasByTier['Rare'], $nftMetadata);
  71.             }elseif($tier === 5  && count($nftMetadatasByTier['Epic']) < 3) {
  72.                 array_push($nftMetadatasByTier['Epic'], $nftMetadata);
  73.             }elseif($tier === 6  && count($nftMetadatasByTier['Legendary']) < 3) {
  74.                 array_push($nftMetadatasByTier['Legendary'], $nftMetadata);
  75.             }elseif($tier === 7  && count($nftMetadatasByTier['Extreme']) < 3) {
  76.                 array_push($nftMetadatasByTier['Extreme'], $nftMetadata);
  77.             }
  78.         }
  79.         return $this->render('leaderboard/catchable/season-two.html.twig', [
  80.             'controller_name' => 'LeaderboardController',
  81.             'nftMetadatasByTier' => $nftMetadatasByTier,
  82.             'expLeaders' => $expLeaders,
  83.             'gearScoreLeaders' => $gearScoreLeaders,
  84.         ]);
  85.     }
  86.     #[Route('/leaderboard/catchable/season-three'name'leaderboard_catchable_season_three'requirements: ['domain' => 'tinyknightgames.com|tinyknightgames.wip|tkgstage.com'], host'{domain}')]
  87.     public function leaderboardCatchableSeasonThree(): Response
  88.     {
  89.         $em $this->doctrine->getManager();
  90.         $nftMetadatas $em->getRepository(NftMetadata::class)->findAllForLeaderboardByCollection(3);
  91.         $expLeaders $em->getRepository(User::class)->findBy([],['experience' => 'desc'], 25);
  92.         $gearScoreLeaders $em->getRepository(User::class)->getUserGearScores();
  93.         $nftMetadatasByTier = array('Extreme' => [], 'Legendary' => [], 'Epic' => [], 'Rare' => [], 'Uncommon' => [], 'Common' => [], 'Fodder' => []);
  94.         foreach($nftMetadatas as $nftMetadata) {
  95.             $tier $nftMetadata->getTemplate()->getTier();
  96.             if($tier === && count($nftMetadatasByTier['Fodder']) < 3) {
  97.                 array_push($nftMetadatasByTier['Fodder'], $nftMetadata);
  98.             } elseif($tier === 2  && count($nftMetadatasByTier['Common']) < 3) {
  99.                 array_push($nftMetadatasByTier['Common'], $nftMetadata);
  100.             }elseif($tier === 3  && count($nftMetadatasByTier['Uncommon']) < 3) {
  101.                 array_push($nftMetadatasByTier['Uncommon'], $nftMetadata);
  102.             }elseif($tier === 4  && count($nftMetadatasByTier['Rare']) < 3) {
  103.                 array_push($nftMetadatasByTier['Rare'], $nftMetadata);
  104.             }elseif($tier === 5  && count($nftMetadatasByTier['Epic']) < 3) {
  105.                 array_push($nftMetadatasByTier['Epic'], $nftMetadata);
  106.             }elseif($tier === 6  && count($nftMetadatasByTier['Legendary']) < 3) {
  107.                 array_push($nftMetadatasByTier['Legendary'], $nftMetadata);
  108.             }elseif($tier === 7  && count($nftMetadatasByTier['Extreme']) < 3) {
  109.                 array_push($nftMetadatasByTier['Extreme'], $nftMetadata);
  110.             }
  111.         }
  112.         return $this->render('leaderboard/catchable/season-three.html.twig', [
  113.             'controller_name' => 'LeaderboardController',
  114.             'nftMetadatasByTier' => $nftMetadatasByTier,
  115.             'expLeaders' => $expLeaders,
  116.             'gearScoreLeaders' => $gearScoreLeaders,
  117.         ]);
  118.     }
  119.     #[Route('/leaderboard/catchable/season-four'name'leaderboard_catchable_season_four'requirements: ['domain' => 'tinyknightgames.com|tinyknightgames.wip|tkgstage.com'], host'{domain}')]
  120.     public function leaderboardCatchableSeasonFour(): Response
  121.     {
  122.         $em $this->doctrine->getManager();
  123.         $nftMetadatas $em->getRepository(NftMetadata::class)->findAllForLeaderboardByCollection(4);
  124.         $expLeaders $em->getRepository(User::class)->findBy([],['experience' => 'desc'], 25);
  125.         $gearScoreLeaders $em->getRepository(User::class)->getUserGearScores();
  126.         $nftMetadatasByTier = array('Extreme' => [], 'Legendary' => [], 'Epic' => [], 'Rare' => [], 'Uncommon' => [], 'Common' => [], 'Fodder' => []);
  127.         foreach($nftMetadatas as $nftMetadata) {
  128.             $tier $nftMetadata->getTemplate()->getTier();
  129.             if($tier === && count($nftMetadatasByTier['Fodder']) < 3) {
  130.                 array_push($nftMetadatasByTier['Fodder'], $nftMetadata);
  131.             } elseif($tier === 2  && count($nftMetadatasByTier['Common']) < 3) {
  132.                 array_push($nftMetadatasByTier['Common'], $nftMetadata);
  133.             }elseif($tier === 3  && count($nftMetadatasByTier['Uncommon']) < 3) {
  134.                 array_push($nftMetadatasByTier['Uncommon'], $nftMetadata);
  135.             }elseif($tier === 4  && count($nftMetadatasByTier['Rare']) < 3) {
  136.                 array_push($nftMetadatasByTier['Rare'], $nftMetadata);
  137.             }elseif($tier === 5  && count($nftMetadatasByTier['Epic']) < 3) {
  138.                 array_push($nftMetadatasByTier['Epic'], $nftMetadata);
  139.             }elseif($tier === 6  && count($nftMetadatasByTier['Legendary']) < 3) {
  140.                 array_push($nftMetadatasByTier['Legendary'], $nftMetadata);
  141.             }elseif($tier === 7  && count($nftMetadatasByTier['Extreme']) < 3) {
  142.                 array_push($nftMetadatasByTier['Extreme'], $nftMetadata);
  143.             }
  144.         }
  145.         return $this->render('leaderboard/catchable/season-four.html.twig', [
  146.             'controller_name' => 'LeaderboardController',
  147.             'nftMetadatasByTier' => $nftMetadatasByTier,
  148.             'expLeaders' => $expLeaders,
  149.             'gearScoreLeaders' => $gearScoreLeaders,
  150.         ]);
  151.     }
  152. }