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;
}
Beispiel #3
0
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];
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
Beispiel #4
0
	
	</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) {