/** * Affiche les masteries du joueur */ function getMasteries() { // Nom du joueur $playerName = ask(' => Nom du joueur : '); // Nom de la région $regionName = ask(' => Région (' . implode(', ', array_keys(LoL::getPlatforms())) . ') : '); // On récupère les infos sur le joueurs pour avoir son identifiant $player = LoL::getSummonerInfo($playerName, $regionName); if ($player->httpCode === 200) { $playerId = $player->content->{strtolower($playerName)}->id; $playerMasteries = LoL::getSummonerMasteries($playerId, $regionName); if ($playerMasteries->httpCode === 200) { $masteriesPages = $playerMasteries->content->{$playerId}->pages; // Affichage du nom des pages de runes echo PHP_EOL . 'Pages de masteries' . PHP_EOL . '------------------' . PHP_EOL; foreach ($masteriesPages as $masteriesPageIndex => $masteriesPage) { echo '- ' . $masteriesPageIndex . ') ' . $masteriesPage->name . ($masteriesPage->current === true ? ' (courante)' : '') . PHP_EOL; } echo PHP_EOL; // Demande à l'utilisateur de voir une page de runes $input = null; while ($input === null || !is_numeric($input) || $input < 0 || $input >= count($masteriesPages)) { $input = ask('Numéro de page de masteries à voir : '); } _getMasteries: // On va se préparer à afficher la page de masteries du joueur $masteries = LoL::getMasteries(); $masteriesPageName = $masteriesPages[$input]->name; $masteriesPage = []; // Liaison entre l'id de rune et ses infos foreach ($masteriesPages[$input]->masteries as $mastery) { $masteryInfo = $masteries->{$mastery->id}; $masteriesPage[$masteryInfo->masteryTree][$mastery->id] = ['name' => $masteryInfo->name, 'points' => ['set' => $mastery->rank, 'max' => $masteryInfo->ranks]]; } // Pour afficher dans l'ordre : Offense - Defense - Utility $masteriesPage = array_reverse($masteriesPage); // Affichage de la page de masteries echo PHP_EOL . '---- Page de masteries : ' . $masteriesPageName . ' ----' . PHP_EOL; foreach ($masteriesPage as $masteriesType => $masteries) { echo '-- ' . ucfirst($masteriesType) . ' --' . PHP_EOL; foreach ($masteries as $mastery) { echo ' - ' . $mastery['name'] . ' (' . $mastery['points']['set'] . '/' . $mastery['points']['max'] . ')' . PHP_EOL; } echo PHP_EOL; } // Re-Demande à l'utilisateur de voir une page de masteries $input = null; while ($input === null || strtolower($input) != 'q' && !is_numeric($input) || $input < 0 || $input >= count($masteriesPages)) { $input = ask('Numéro de page de masteries à voir : '); } if ($input !== 'q') { goto _getMasteries; } } else { echo PHP_EOL . "Impossible de récupérer les masteries pour l'instant ! " . PHP_EOL; } } }
/** * Charge les masteries */ public static function loadMasteries() { $masteries = Curl::get(self::url('/v1.2/mastery?masteryListData=all&locale=fr_FR', 'euw', 'https://global.api.pvp.net/api/lol/static-data/euw')); if ($masteries->httpCode === 200) { self::$masteries = $masteries->content->data; } }