diff options
author | Patrick Davison <snapwilliam@gmail.com> | 2012-02-02 22:56:34 -0800 |
---|---|---|
committer | Patrick Davison <snapwilliam@gmail.com> | 2012-02-02 22:56:34 -0800 |
commit | de7cb061628b47f462e90aa57309350dd9f7e7a0 (patch) | |
tree | 98bf96001ecd63b6288a08f3c4cc321d37b2fc01 /pages/achievements.php | |
parent | 5c0b4e18dd401fdc1ad27dc87cdce9814f121546 (diff) | |
download | pathery-de7cb061628b47f462e90aa57309350dd9f7e7a0.tar.xz |
achievements page & challenge.php
Diffstat (limited to 'pages/achievements.php')
-rw-r--r-- | pages/achievements.php | 366 |
1 files changed, 366 insertions, 0 deletions
diff --git a/pages/achievements.php b/pages/achievements.php new file mode 100644 index 0000000..edcb893 --- /dev/null +++ b/pages/achievements.php @@ -0,0 +1,366 @@ +<?php
+htmlHeader(array('profile'), 'Pathery Achievements');
+?>
+
+<body>
+
+<?php
+topbar($Links);
+
+include_once('./includes/db.inc.php');
+include_once('./includes/datas.php');
+
+//Get UserID
+if (is_int($_GET['id'] * 1) AND isset($_GET['id']))
+ $userID = $_GET['id'] * 1;
+else
+ if (isset($_SESSION['userID']))
+ $userID = $_SESSION['userID'];
+ else
+ $userID = 3;
+
+$viewer = true;
+if ($userID == $_SESSION['userID'])
+ $viewer = false;
+
+?>
+<script>
+var viewer = <?
+if ($viewer)
+ echo "true;";
+else
+ echo "false;";
+?>
+
+function colorclick(obj, color, unlockID) {
+ if (viewer)
+ return;
+ var hbadge = document.getElementById('badge');
+ hbadge.style.backgroundColor = color;
+ document.getElementById('selectColor').value = color;
+ document.getElementById('selectColorID').value = unlockID;
+}
+
+function emblemclick(obj, emblem, unlockID) {
+ if (viewer)
+ return;
+ var hbadge = document.getElementById('badge');
+ hbadge.style.backgroundImage="url(images/marks/"+emblem+")";
+ document.getElementById('selectEmblem').value = emblem;
+ document.getElementById('selectEmblemID').value = unlockID;
+}
+
+function namecolorclick(obj, color, unlockID) {
+ if (viewer)
+ return;
+ var bheader = document.getElementById('badgeheader');
+ bheader.style.color=color;
+ document.getElementById('selectNameColor').value = color;
+ document.getElementById('selectNameColorID').value = unlockID;
+}
+</script>
+
+<?
+
+$sql = "
+SELECT
+ id,
+ type,
+ name,
+ value,
+ dateUnlocked
+FROM `unlocks`
+WHERE userID = '$userID'
+";
+$result = mysql_query($sql);
+if ($result) {
+ while ($row = mysql_fetch_assoc($result))
+ $unlocks[$row['type']][$row['id']] = $row;
+}
+
+
+//print_R($_POST);
+
+//Validate selection and then update.
+if (isset($_POST['doupdate']) AND !$viewer) {
+ //print_R($unlocks);
+ $unlockIDC = $_POST['selectColorID'];
+ $unlockColor = $unlocks[1][$unlockIDC]['value'];
+
+ $unlockIDE = $_POST['selectEmblemID'];
+ $unlockEmblem = $unlocks[2][$unlockIDE]['value'];
+
+ $unlockIDNC = $_POST['selectNameColorID'];
+ $unlockNameColor = $unlocks[3][$unlockIDNC]['value'];
+
+ if ($unlockIDC == 0)
+ $unlockColor = '#666666';
+ if ($unlockIDE == 0)
+ $unlockEmblem = 'blank.png';
+ if ($unlockIDNC == 0)
+ $unlockNameColor = '#cccccc';
+
+ if ($unlockColor == $_POST['selectColor']) {
+ $sql = "UPDATE `userData`
+ SET `wallColor` = '$unlockColor'
+ WHERE `userID` = '$userID'";
+ $result = mysql_query($sql);
+ if (!$result)
+ echo "Error updating wall color";
+ }
+ if ($unlockEmblem == $_POST['selectEmblem']) {
+ $sql = "UPDATE `userData`
+ SET `wallEmblem` = '$unlockEmblem'
+ WHERE `userID` = '$userID'";
+ $result = mysql_query($sql);
+ if (!$result)
+ echo "Error updating Emblem";
+ }
+ if ($unlockNameColor == $_POST['selectNameColor']) {
+ $sql = "UPDATE `userData`
+ SET `displayColor` = '$unlockNameColor'
+ WHERE `userID` = '$userID'";
+ $result = mysql_query($sql);
+ if (!$result)
+ echo "Error updating Username Display Color";
+ }
+
+}
+
+
+$sql = "
+SELECT
+ type,
+ MAX(level) as level,
+ dateCompleted
+FROM `achievements`
+WHERE userID = '$userID'
+GROUP BY `type`";
+$result = mysql_query($sql);
+if ($result) {
+ while ($row = mysql_fetch_assoc($result))
+ $achievements[$row['type']] = $row;
+}
+
+$sql = "
+SELECT
+ users.displayName,
+ users.isAdmin,
+ SUM(solutions.moves) as totalMoves,
+ COUNT(*) as totalSolutions,
+ IfNull(userData.wallColor, '#666666'),
+ IfNull(userData.displayColor, '#cccccc'),
+ userData.wallEmblem
+FROM `users`
+JOIN `solutions`
+ ON users.ID = solutions.userID
+LEFT JOIN `userData`
+ ON users.ID = userData.userID
+WHERE users.ID = '$userID'
+GROUP BY solutions.userID
+";
+$result = mysql_query($sql);
+if (!$result OR mysql_num_rows($result) <= 0) {
+
+ echo "<div class='wrapper'><h1>Achievements Page</h1>
+ No selection.
+ </div>";
+ htmlFooter();
+ exit;
+}
+list($UDisplay, $UAdmin, $UTotalMoves, $UTotalSolutions, $wallColor, $nameColor, $wallEmblem) = mysql_fetch_row($result);
+
+$DUTotalMoves = number_format($UTotalMoves);
+$UTotalSolutions = number_format($UTotalSolutions);
+
+$uStats[1] = $UTotalMoves;
+$uStats[2] = $UTotalSolutions;
+
+echo "<div class='wrapper'>";
+if ($viewer)
+ echo "<center><h3>Viewing</h3></center>";
+echo "
+<h1 id='badgeheader' style='margin-left:10px;color:$nameColor;'>
+<div id='badge' style='margin-right:10px; background:$wallColor url(../images/marks/$wallEmblem);float:left;background-size:100%;' class='badge'>
+ <div style='width:100%; height:100%; background-color:transparent; background-size:100%;' class='grid_td_rocks grid_inner'></div>
+</div>
+$UDisplay</h1>";
+
+
+//Type 1; wall unlocks:
+if (isset($unlocks[1])) {
+ echo "<h2>Unlocks</h2>";
+ echo "<h3>Wall colors unlocked:</h3>
+ <table><tr>";
+ //Default color:
+ echo "<td id='color_0' title='Default Charcoal' onClick='colorclick(this,\"#666666\", \"0\")' style='background-color:#666666;' class='grid_td_walls'></td>";
+ foreach ($unlocks[1] as $item) {
+ echo "<td id='color_$item[id]' title='$item[name]' onClick='colorclick(this,\"$item[value]\", \"$item[id]\")' style='background-color:$item[value];' class='grid_td_walls'></td>";
+ }
+ echo "</tr></table>";
+ echo "<div id='color_data' style='visibility:hidden;display:none'>";
+ $item[id];
+ echo "</div>";
+}
+//Type 2; emblem unlocks:
+if (isset($unlocks[2])) {
+ echo "<h3>Emblems unlocked:</h3>
+ <table><tr>";
+ //Default Emblem
+ echo "<td class='grid_td_walls' title='Default Blank' onClick='emblemclick(this,\"blank.png\", \"0\")' style='background: #999 url(../images/marks/blank.png);' >
+ <div class='grid_inner grid_td_walls'></div></td>";
+ foreach ($unlocks[2] as $item) {
+ echo "<td class='grid_td_walls' title='$item[name]' id='' onClick='emblemclick(this,\"$item[value]\", \"$item[id]\")' style='background: #999 url(../images/marks/$item[value]);' >
+ <div class='grid_inner grid_td_walls'></div></td>";
+ }
+ echo "</tr></table>";
+}
+
+//Type 3; display-name color unlocks.
+if (isset($unlocks[3])) {
+ echo "<h3>Username colors unlocked:</h3>";
+ echo "<div class='name_color_select'>";
+
+ echo "<span onClick='namecolorclick(this,\"#cccccc\", \"0\");' style='color:#cccccc; margin-right:15px;'>";
+ echo "Default";
+ echo "</span>";
+
+ foreach ($unlocks[3] as $item) {
+ echo "<span onClick='namecolorclick(this,\"$item[value]\", \"$item[id]\")' style='color:$item[value]; margin-right:15px;'>";
+ echo " $item[name] ";
+ echo "</span>";
+ }
+
+ echo "</div>";
+ echo "<br />";
+}
+
+if (!$viewer) {
+ echo "
+ <form action='achievements' method='post' name='updateBadge'>
+ <input id='doupdate' type='hidden' name='doupdate' value='true' />
+ <input id='selectColor' type='hidden' name='selectColor' value='$wallColor' />
+ <input id='selectColorID' type='hidden' name='selectColorID' value='' />
+ <input id='selectEmblem' type='hidden' name='selectEmblem' value='$wallEmblem' />
+ <input id='selectEmblemID' type='hidden' name='selectEmblemID' value='' />
+ <input id='selectNameColor' type='hidden' name='selectNameColor' value='$nameColor' />
+ <input id='selectNameColorID' type='hidden' name='selectNameColorID' value='' />
+ <input type='submit' value='Save Changes' />
+ </form>
+ ";
+}
+
+
+echo "<hr />";
+
+
+
+echo "<h2>Achievements</h2>";
+
+foreach($achievements as $aType => $a) {
+ $CPD = getAchievementsArray($aType);
+
+ $aLevel = $a['level'];
+ $aCompleted = $a['dateCompleted'];
+ $uCurrent = $uStats[$aType];
+
+ $aTypeNames[1] = "Path Career Level $aLevel!";
+ $aTypeNames[2] = "Mazes Career Level $aLevel!";
+ $aTypeNames[32] = 'Tutorial Complete!';
+
+ $name = $aTypeNames[$aType];
+ echo "<h3>$name</h3>";
+ if ($aType >= 32) {
+ echo "Completed on $aCompleted";
+ break;
+ }
+
+
+ foreach ($CPD as $item) {
+ list($required, $unlockType, $unlockValue, $unlockName) = $item;
+ $nRequired = number_format($required);
+ }
+ echo "Last level achieved on $aCompleted";
+ echo "<br />Currently you have $uCurrent ";
+ echo "<br />Next level at $nRequired will unlock:<table><tr>";
+ echo displayUnlock($unlockType, $unlockValue, $unlockName);
+}
+
+
+//Type 1; Career Path:
+if (isset($achievements[1]) AND 1 == 2) {
+ $CPD = getCareerPathArray();
+
+ $level = $achievements[1]['level'];
+ echo "<h3>Path Career level $level!</h3>
+ $UTotalMoves total moves.
+ ";
+
+ $i = 0;
+ //echo "<br />Unlocked:<table><tr>";
+ foreach ($CPD as $item) {
+ list($required, $unlockType, $unlockValue, $unlockName) = $item;
+
+ $nRequired = number_format($required);
+ if ($item['req'] > $UTotalMoves) {
+ break;
+ }
+ //echo "<td title='Level $i: Req $nRequired'><div style='background-color:$color;' class='grid_td_walls'></div></td>";
+ $i++;
+ }
+ //echo "</tr></table>";
+ echo "<br />Next level at $nRequired will unlock:<table><tr>";
+ echo displayUnlock($unlockType, $unlockValue, $unlockName);
+
+ //echo "<td title='Level $i: Req $nRequired'><div style='background-color:$color;' class='grid_td_rocks'></div></td>";
+ //echo "</tr></table>";
+} else {
+ //echo "Never played.";
+}
+
+if (false) {
+echo "<h3>Mazes Career: $UTotalSolutions</h3>
+You have played $UTotalSolutions mazes.
+
+Wall embelms unlocked:
+<table><tr>
+<td style='background-color:#fff;' class='grid_td_rocks'>
+ <div class='grid_td' style='background:url(../images/TeleportInW.png);'></div>
+</td>
+
+";
+}
+
+
+function displayUnlock($uType, $uValue, $uName) {
+ switch ($uType) {
+ case 1:
+ $r .= "$uName Wall Color!";
+ $r .= "<table><tr><td onclick='changeWallColor(\"$uValue\")' style='background-color:$uValue;' class='grid_td_rocks'></td></tr></table>";
+ break;
+ case 2:
+ $r .= "$uName Emblem!";
+ $r .= "<div class='grid_td_rocks' title='' onClick='emblemclick(this,\"$uValue\", \"0\")' style='background: #999 url(../images/marks/$uValue);' >";
+ $r .= "<div class='grid_inner grid_td_walls'></div></div>";
+ break;
+ case 3:
+ $r .= "<br /><span style='color:$uValue;font-weight:bold;font-size:120%;background-color:#222;'>$uName Username color!</span>";
+ break;
+ }
+ return $r;
+}
+
+
+
+
+
+?>
+
+</div>
+
+<?php
+echo "<br /><br />";
+echo "<br /><br />";
+echo "<br /><br />";
+htmlFooter();
+?>
\ No newline at end of file |