Exemplo n.º 1
0
Arquivo: app.php Projeto: Kocal/LoLAPI
/**
 * 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;
        }
    }
}
Exemplo n.º 2
0
 /**
  * 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;
     }
 }