From 349c6fe7ecf10e5929dc27c2446853f0fe416077 Mon Sep 17 00:00:00 2001 From: alexichi Date: Wed, 27 Apr 2016 12:59:51 +0200 Subject: add loadShop() and categories in the xml file and modify the presentation of the items in the shop --- data/items.xml | 41 +++++++++++++++++++++++++++++++++++++++++ inc/shop.inc | 36 +++++++++++++++++++++--------------- js/shop.js | 24 ++++++++++++++++-------- 3 files changed, 78 insertions(+), 23 deletions(-) create mode 100644 data/items.xml diff --git a/data/items.xml b/data/items.xml new file mode 100644 index 0000000..528d37a --- /dev/null +++ b/data/items.xml @@ -0,0 +1,41 @@ + + + + + Wooden Sword + 50 + + 10 + + + A sword that beginners need to use to improve their skills + + + Metal Sword + 200 + + 30 + + + A sword which are often use buy skilled knight. The material is very good and the sword is very powerful + + + + + Life Bottle + 100 + + 🍶 + A bottle which can heal you by regaining hp + + + Strength Bottle + 250 + + 20 + + 🍶 + If used, you have 20% more chance to hit your enemy during the battle + + + diff --git a/inc/shop.inc b/inc/shop.inc index 11cf97b..6e30923 100644 --- a/inc/shop.inc +++ b/inc/shop.inc @@ -5,19 +5,26 @@ 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 loadShop(){ + $items = simplexml_load_file('data/items.xml'); + $shop = array("cost"=>(string)$items["cost"],"items"=>array()); + foreach($items as $cat){ + $category = (string)$cat["name"]; + $shop["items"][$category] = array(); + foreach($cat as $item){ + $shop["items"][$category][] = new Item((string)$item->name,intval($item->cost),(string)$item->icon,(string)$item->description); + } + } + return $shop; +} function getItem($name) { - global $shop; - foreach($shop["items"] as $item) { - if($name == $item->name) { - return $item; + $shop=loadShop(); + foreach($shop["items"] as $cat) { + foreach($cat as $item){ + if($name == $item->name) { + return $item; + } } } sendError("shop_missing_item"); @@ -29,21 +36,20 @@ function initShop() { } function sendShop() { - global $shop; if(!empty($_SESSION["shop"])) - return $shop; + return loadShop(); else return false; } function buildShop() { - global $shop; + $shop=loadShop(); if(!empty($_SESSION["shop"])) { sendError("shop_already_built"); } elseif(debitAccount($shop["cost"])) { initShop(); $_SESSION["mine"]["gold"] -= $shop["cost"]; - echo json_encode(sendShop()); + echo json_encode($shop); } } diff --git a/js/shop.js b/js/shop.js index 22ca85f..efd6ac5 100644 --- a/js/shop.js +++ b/js/shop.js @@ -1,12 +1,20 @@ function displayShop(ret) { - var tmphtml = "

Select an item to buy it:

"; - tmphtml += "" document.getElementById("tab2").innerHTML = tmphtml; } @@ -40,7 +48,7 @@ function addItem(ret) { } else invcontent.getElementsByTagName('ul')[0].innerHTML += itemhtml; - showInfo(ret.desc); + showInfo("The "+ ret.name + " has been successfully purchased"); } function buyItem(name) { -- cgit v1.2.3-70-g09d2