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); } } ?>