aboutsummaryrefslogtreecommitdiffstats
path: root/inc
diff options
context:
space:
mode:
authorpiernov <piernov@piernov.org>2016-04-24 22:08:58 +0200
committerpiernov <piernov@piernov.org>2016-04-24 22:08:58 +0200
commit5a688c8c35d4a2bcca716aa7da1379c0abd48d3f (patch)
treea9e57f33bc57a797ba96662a55f6afa211787935 /inc
parentc8688e50d613b540913de570f3b64fd5ffcec161 (diff)
downloadcandybox-5a688c8c35d4a2bcca716aa7da1379c0abd48d3f.tar.gz
candybox-5a688c8c35d4a2bcca716aa7da1379c0abd48d3f.tar.bz2
candybox-5a688c8c35d4a2bcca716aa7da1379c0abd48d3f.tar.xz
candybox-5a688c8c35d4a2bcca716aa7da1379c0abd48d3f.zip
Add PHP shop requests handlers
Diffstat (limited to 'inc')
-rw-r--r--inc/shop.inc59
1 files changed, 59 insertions, 0 deletions
diff --git a/inc/shop.inc b/inc/shop.inc
new file mode 100644
index 0000000..11cf97b
--- /dev/null
+++ b/inc/shop.inc
@@ -0,0 +1,59 @@
+<?php
+
+require_once("messages.inc");
+require_once("account.inc");
+require_once("Item.inc");
+require_once("Inventory.inc");
+
+$shop = array(
+ "cost" => 3,
+ "items" => array(
+ new Item("cat", 6, "🐈", "Nyan!"),
+ new Item("torch", 3, "🔦", "Electric torch"),
+ ),
+);
+
+function getItem($name) {
+ global $shop;
+ foreach($shop["items"] as $item) {
+ if($name == $item->name) {
+ return $item;
+ }
+ }
+ sendError("shop_missing_item");
+ return false;
+}
+
+function initShop() {
+ $_SESSION["shop"] = true;
+}
+
+function sendShop() {
+ global $shop;
+ if(!empty($_SESSION["shop"]))
+ return $shop;
+ else return false;
+}
+
+function buildShop() {
+ global $shop;
+ if(!empty($_SESSION["shop"])) {
+ sendError("shop_already_built");
+ }
+ elseif(debitAccount($shop["cost"])) {
+ initShop();
+ $_SESSION["mine"]["gold"] -= $shop["cost"];
+ echo json_encode(sendShop());
+ }
+}
+
+function buyItem() {
+ $item = getItem($_POST["item"]);
+ if($item && debitAccount($item->cost)) {
+ Inventory::addItem($item);
+ echo json_encode($item);
+ }
+}
+
+
+?>