diff options
author | BlueRaja <BlueRaja.admin@gmail.com> | 2013-01-25 19:27:51 -0600 |
---|---|---|
committer | BlueRaja <BlueRaja.admin@gmail.com> | 2013-01-25 19:27:51 -0600 |
commit | aeacdd6ac410d4b576cf9e804d709cd64fa00384 (patch) | |
tree | 44fd65a626b44eb5e099e2cf2525ef11cef20def /pages/challengelist.php | |
parent | fed89ebc174dda0963856f992f6f9a26bbe1b182 (diff) | |
download | pathery-aeacdd6ac410d4b576cf9e804d709cd64fa00384.tar.xz |
Tiers are now unlocked as the user players through challenges; challenges left to next tier displayed on challengelist page
(untested)
Diffstat (limited to 'pages/challengelist.php')
-rw-r--r-- | pages/challengelist.php | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/pages/challengelist.php b/pages/challengelist.php index db20081..b252c38 100644 --- a/pages/challengelist.php +++ b/pages/challengelist.php @@ -9,6 +9,7 @@ include_once ('./includes/mapoftheday.php'); include_once ('./includes/sqlEmbedded.php'); include_once ('./includes/datas.php'); include_once ('./includes/mapclass.php'); +include_once ('./includes/constants.php'); topbar($Links); ?> @@ -43,7 +44,7 @@ $userID = $_SESSION['userID']; //Display the actual challenge list $challengeListResultset = loadChallengeListing($userID); //displayChallengeList($challengeListResultset); -echo ChallengeList($challengeListResultset); +echo getChallengeListHtml($challengeListResultset); ?> @@ -55,7 +56,7 @@ htmlFooter(); <?php -function ChallengeList($challengeListResultset) { +function getChallengeListHtml($challengeListResultset) { //First gather data to a more useful form. $r = ''; while($data = mysql_fetch_array($challengeListResultset)) { @@ -65,6 +66,7 @@ function ChallengeList($challengeListResultset) { $challenges[$tier][$challengeSuborder][$ordering] = $data; } + $numCompletedChallenges = 0; foreach ($challenges as $tier => $challengeMap) { $r .= "<b>Section $tier</b> levels:<div class='challengelist_tier' style='border: 1px solid yellow; overflow: auto;'>"; foreach ($challengeMap as $challengeSuborder => $challenge) { @@ -83,9 +85,14 @@ function ChallengeList($challengeListResultset) { foreach ($challenge as $ordering => $content) { //Each challenge gets its own star if($content["dateSolved"] !== NULL) + { $cssClass = "challengelist_complete"; + $numCompletedChallenges++; + } else + { $cssClass = "challengelist_incomplete"; + } $r .= "<div class='$cssClass'></div>"; } $r .= "</div>"; @@ -93,9 +100,51 @@ function ChallengeList($challengeListResultset) { } $r .= "</div>"; } + + $r .= getNextChallengeTierHtml($numCompletedChallenges); return $r; } +function getNextChallengeTierHtml($numCompletedChallenges) +{ + for(int $nextTier = 0; $nextTier < count($tierChallengeRequirements); $nextTier++) + { + $numChallengesForNextTier = numChallengesRemainingForTier($nextTier, $numCompletedChallenges); + if($numChallengesForNextTier > 0) + break; + } + + //We've found the tier they're at - verify this matches up with what's in the DB + //This probably belongs somewhere else, but whatever + $userCurrentTier = getUserChallengeTier($userID); + if($userCurrentTier != $nextTier - 1) + { + //TODO: Display some sort of "tier XY unlocked" or something + $setUserChallengeTier($userID, $nextTier -1); + } + + //Return the tiers-left html + if($numChallengesForNextTier == 0) + return "<div class='challengelist_nexttier>All tiers have been unlocked!</div>"; + + return "<div class='challengelist_nexttier'>Next tier unlocked in <span class='challengelist_nexttier_requirement'>$numChallengesForNextTier</span>" + . "<span class='challengelist_complete'></span>!</div>"; +} + +function numChallengesRemainingForTier($tier, $numCompletedChallenges) +{ + if($tier >= maxTier()) + return -1; + if($tierChallengeRequirements[$tier] <= $numCompletedChallenges) + return 0; + return ($numCompletedChallenges - $tierChallengeRequirements[$tier]); +} + +function maxTier() +{ + return (count($tierChallengeRequirements) - 1); +} + // TODO: !! Depreciate /** * Outputs the list of all challenges to the page |