summaryrefslogtreecommitdiffstats
path: root/includes/datas.php
diff options
context:
space:
mode:
authorPatrick Davison <snapwilliam@gmail.com>2013-03-13 02:26:09 -0700
committerPatrick Davison <snapwilliam@gmail.com>2013-03-13 02:26:09 -0700
commit32cce4bee8a242f7a2e6d6a9e1c9e77b4af87728 (patch)
tree8f6068568fe0121380efb0e8bbb9985359245cf7 /includes/datas.php
parent1c9f62a731637f1d373485473f064626d311d705 (diff)
downloadpathery-32cce4bee8a242f7a2e6d6a9e1c9e77b4af87728.tar.xz
Achievement back-end for Insane Speed - and any other 'Extra' unlocks like it.
Diffstat (limited to 'includes/datas.php')
-rw-r--r--includes/datas.php92
1 files changed, 63 insertions, 29 deletions
diff --git a/includes/datas.php b/includes/datas.php
index 74487fd..7e64732 100644
--- a/includes/datas.php
+++ b/includes/datas.php
@@ -19,7 +19,7 @@ function getNotified($userID) {
FROM `achievements`
WHERE `notified` = false
AND userID = '$userID'
- LIMIT 25";
+ LIMIT 5";
$resultA = mysql_query($sql);
if (mysql_num_rows($resultA) <= 0)
@@ -54,20 +54,7 @@ function getNotified($userID) {
if (mysql_num_rows($result) >= 1) {
$unlocked = "You've unlocked: ";
while (list($uType, $uName, $uValue) = mysql_fetch_row($result)) {
- switch ($uType) {
- case 1:
- $unlocked .= "$uName Wall Color!";
- $unlocked .= "<table><tr><td onclick='changeWallColor(\"$uValue\")' style='background-color:$uValue;' class='grid_td_rocks'></td></tr></table>";
- break;
- case 2:
- $unlocked .= "$uName Emblem!";
- $unlocked .= "<div class='grid_td_rocks' title='' onClick='emblemclick(this,\"$uValue\", \"0\")' style='background: #999 url(../images/marks/$uValue);' >";
- $unlocked .= "<div class='grid_inner grid_td_walls'></div></div>";
- break;
- case 3:
- $unlocked .= "<br /><span style='color:$uValue;'>$uName Username color!</span><br />";
- break;
- }
+ $unlocked .= displayUnlock($uType, $uValue, $uName);
}
}
// ---------- Prepare response
@@ -110,6 +97,32 @@ function getNotified($userID) {
// ---------- Done!
}
+function displayUnlock($uType, $uValue, $uName) {
+ switch ($uType) {
+ case UNLOCK_WALL_COLOR:
+ $r .= "$uName Wall Color!";
+ $r .= "<table><tr><td onclick='changeWallColor(\"$uValue\")' style='background-color:$uValue;' class='grid_td_rocks'></td></tr></table>";
+ break;
+
+ case UNLOCK_WALL_EMBLEM:
+ $r .= "$uName Emblem!";
+ $r .= "<div class='emblemDisplay' title='' style='background: #999 url(../images/marks/$uValue);' >";
+ //$r .= "<div class='grid_inner grid_td_gray'></div></div>";
+ $r .= "<div class='emblemDisplayInner' style='width:35px; height:35px;'></div></div>";
+ break;
+
+ case UNLOCK_DISPLAY_COLOR:
+ $r .= "<br /><span style='color:$uValue;font-weight:bold;font-size:110%;background-color:#222;'>$uName Username color!</span>";
+ break;
+
+ case UNLOCK_EXTRAS:
+ $r .= "Extras: $uName";
+ break;
+ }
+ return $r;
+}
+
+
//Returns true when an achievement is applied.
// Usage example: applyCareerAchievement($userID);
// TODO: DEPRECIATED
@@ -531,13 +544,25 @@ function getAchievementCurrency($userID, $aType) {
$sql = "SELECT championPoints
FROM `users`
WHERE `ID` = '$userID'";
+ break;
+ case 5:
+ $sql = "SELECT count(*)
+ FROM solutions
+ INNER JOIN mapOfTheDay ON solutions.mapID = mapOfTheDay.mapID
+ WHERE mapOfTheDay.mapType
+ IN ( 1, 2, 3, 4 )
+ AND solutions.userID = '$userID'
+ GROUP BY solutions.userID, mapOfTheDay.mapDate
+ HAVING COUNT( isTiedForHighScore ) = 4";
+ $result = mysql_query($sql) OR die("SQL query failed; $sql");
+ return mysql_num_rows($result);
break;
}
- if ($sql == '')
- return false;
+ if ($sql == '') return false;
$result = mysql_query($sql) OR die("SQL query failed; $sql");
- if (mysql_num_rows($result) == 1)
+ if (mysql_num_rows($result) == 1) {
list($r) = mysql_fetch_row($result);
+ }
return $r;
}
@@ -552,22 +577,20 @@ function getAchievementLevel($userID, $aType) {
ORDER BY `level` DESC
LIMIT 1";
$result = mysql_query($sql);
- if (mysql_num_rows($result) == 1)
+ if (mysql_num_rows($result) == 1) {
list($r) = mysql_fetch_row($result);
+ }
return $r;
}
function getAchievementsArray($type) {
- if ($type == 1)
- return getCareerPathArray();
- if ($type == 2)
- return getCareerMazesArray();
- if ($type == 3)
- return getMazeMasteryArray();
- if ($type == 4)
- return getChampionPointsArray();
+ if ($type == ACHIEVEMENT_MOVES_CAREER) return getCareerPathArray();
+ if ($type == ACHIEVEMENT_MAZE_CAREER) return getCareerMazesArray();
+ if ($type == ACHIEVEMENT_MAZE_MASTERY) return getMazeMasteryArray();
+ if ($type == ACHIEVEMENT_CHAMPION_POINTS) return getChampionPointsArray();
+ if ($type == ACHIEVEMENT_PERFECT_DAY) return getPerfectDayArray();
//Tutorial
- if ($type == 32) {
+ if ($type == ACHIEVEMENT_TUTORIAL) {
$r[1] = array(1, 1, '#4444ff', 'Blue');
return $r;
}
@@ -655,11 +678,22 @@ function getChampionPointsArray() {
$r[7] = array(8000, 2, 'CrossXLDonut_B_I.png', 'Inverted Dark Large Intersection', 0);
$r[8] = array(16000, 2, 'DiamondLarge_B.png', 'Dark Large Diamond', 0);
$r[9] = array(32000, 1, '#22ff22', 'Neon Lime', 1);
- //$r[7] = array(75, 2, 'CircleSmall_W_I.png', 'Inverted Bright Small Circle', 0);
return $r;
}
+//TYPE 5
+function getPerfectDayArray() {
+ //$cp[0] = array(requiredpoints, type, 'value', 'name');
+ $r[1] = array(1, UNLOCK_EXTRAS, MISC_UNLOCK_INSANE_SPEED, 'Insane Speed');
+ //These numbers temporarly unreasonable
+ $r[2] = array(9275, UNLOCK_WALL_EMBLEM, 'CircleSmall_W_I.png', 'Inverted Bright Small Circle', 0);
+ $r[3] = array(10000, UNLOCK_WALL_EMBLEM, 'DiamondLarge_W_I.png', 'Inverted Light Large Diamond', 0);
+
+ return $r;
+}
+
+
//Select Members
function getMembers($pageNumber = 1, $pageDivide = 50, $order = 'DESC', $orderBy = 'dateJoined') {