function playersRatingToCalculate($id) { global $database; $countPlayersGames = countPlayersGames($id); // new player if ($countPlayersGames < 1) { $playersLiveRating = $database->get("players", 'rating', ['id' => $id]); return $playersLiveRating; } else { $lastGameBeforeToday = selectLastGameBeforeToday($id); // games must be from today if (empty($lastGameBeforeToday)) { $selectFirstGameToday = selectFirstGameToday($id); // was the winner if ($selectFirstGameToday['winner'] == $id) { return $selectFirstGameToday['winner-original-rating']; } elseif ($selectFirstGameToday['loser'] == $id) { return $selectFirstGameToday['loser-original-rating']; } } else { // was the winner if ($lastGameBeforeToday['winner'] == $id) { return $lastGameBeforeToday['winner-new-rating']; } elseif ($lastGameBeforeToday['loser'] == $id) { return $lastGameBeforeToday['loser-new-rating']; } } } }
function playerPosition($id) { global $database; $players = $database->select('players', ['id', 'rating'], ["ORDER" => ['rating DESC']]); $oneMonthAgo = date("Y-m-d 00:00:00", strtotime('-1 month')); $leaderboardPlayers = []; foreach ($players as $player) { $lastGame = selectLastGame($player['id']); $matchesPlayed = countPlayersGames($player['id']); if ($matchesPlayed > 9) { if ($lastGame['datetime'] > $oneMonthAgo) { $leaderboardPlayers[] = $player['id']; } } } array_unshift($leaderboardPlayers, "unshift"); unset($leaderboardPlayers[0]); $playersPosition = array_search($id, $leaderboardPlayers); return $playersPosition; }
function playerStats($id) { global $database; $matchesPlayed = countPlayersGames($id); // played less than 10 games? if ($matchesPlayed < 10) { return ['levelId' => 0, 'level' => 'Newcomer', 'rating' => '~']; } else { $player = $database->get('players', ['id', 'rating'], ['id' => $id]); $playerPosition = playerPosition($id); // if this is you, you're the bandit if ($playerPosition == 1) { return ['levelId' => 50, 'level' => 'Bandit', 'rating' => $player['rating'] * 5]; } else { if (0 <= $player['rating'] && $player['rating'] <= 849) { return ['levelId' => 1, 'level' => 'Junior', 'rating' => $player['rating'] * 5]; } else { if (850 <= $player['rating'] && $player['rating'] <= 1099) { return ['levelId' => 2, 'level' => 'Rookie', 'rating' => $player['rating'] * 5]; } else { if (1100 <= $player['rating'] && $player['rating'] <= 1199) { return ['levelId' => 3, 'level' => 'Scout', 'rating' => $player['rating'] * 5]; } else { if (1200 <= $player['rating'] && $player['rating'] <= 1299) { return ['levelId' => 4, 'level' => 'Intermediate', 'rating' => $player['rating'] * 5]; } else { if (1300 <= $player['rating'] && $player['rating'] <= 1399) { return ['levelId' => 5, 'level' => 'Fighter', 'rating' => $player['rating'] * 5]; } else { if (1400 <= $player['rating'] && $player['rating'] <= 1499) { return ['levelId' => 6, 'level' => 'Knight', 'rating' => $player['rating'] * 5]; } else { if (1500 <= $player['rating'] && $player['rating'] <= 1599) { return ['levelId' => 7, 'level' => 'Assassin', 'rating' => $player['rating'] * 5]; } else { if (1600 <= $player['rating'] && $player['rating'] <= 1699) { return ['levelId' => 8, 'level' => 'Ninja', 'rating' => $player['rating'] * 5]; } else { if (1700 <= $player['rating'] && $player['rating'] <= 1799) { return ['levelId' => 9, 'level' => 'Warrior', 'rating' => $player['rating'] * 5]; } else { if (1800 <= $player['rating'] && $player['rating'] <= 1899) { return ['levelId' => 10, 'level' => 'Mega', 'rating' => $player['rating'] * 5]; } else { if (1900 <= $player['rating'] && $player['rating'] <= 1999) { return ['levelId' => 11, 'level' => 'Monster', 'rating' => $player['rating'] * 5]; } else { if (2000 <= $player['rating'] && $player['rating'] <= 2099) { return ['levelId' => 12, 'level' => 'Legendary', 'rating' => $player['rating'] * 5]; } else { if (2100 <= $player['rating'] && $player['rating'] <= 2199) { return ['levelId' => 13, 'level' => 'Lord', 'rating' => $player['rating'] * 5]; } else { if (2200 <= $player['rating']) { return ['levelId' => 14, 'level' => 'God', 'rating' => $player['rating'] * 5]; } } } } } } } } } } } } } } } } }
</header> <?php if ($matchesPlayed > 9) { include $template . 'playerStats.php'; } ?> </figure> <?php if ($matchesPlayed > 9) { include $template . 'playerStatsExtra.php'; } else { $countPlayersGames = countPlayersGames($player['id']); $gamesRemaining = 10 - $countPlayersGames; echo '<h3 class="h3 block is--textcentre prompt is--inline is--prompted">' . $gamesRemaining . ' games left to play!</h1>'; } ?> <section class="block results"> <ul> <?php $mostRecentResults = $database->select('matches', ['[><]players (winner)' => ['winner' => 'id'], '[><]players (loser)' => ['loser' => 'id']], ['matches.id', 'matches.datetime', 'matches.sent-by', 'winner.id(winner-id)', 'loser.id(loser-id)', 'winner.name(winner-name)', 'loser.name(loser-name)', 'matches.winner', 'matches.loser', 'matches.accepted', 'matches.declined', 'matches.winner-original-rating', 'matches.loser-original-rating', 'matches.difference', 'matches.winner-new-rating', 'matches.loser-new-rating'], ['AND' => ['OR' => ['winner' => $player['id'], 'loser' => $player['id']]], 'ORDER' => "matches.sent-datetime DESC", "LIMIT" => 5]); foreach ($mostRecentResults as $result) { $winnerStats = playerStats($result['winner-id']); $loserStats = playerStats($result['loser-id']); if ($result['declined'] == 1) {