From faefddcb8b3d3ac491331b702f8a8ac6fe58a894 Mon Sep 17 00:00:00 2001 From: piernov Date: Sun, 8 May 2016 20:14:40 +0200 Subject: First PHPDoc push, Inventory not complete --- inc/shop.inc | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 8 deletions(-) (limited to 'inc/shop.inc') diff --git a/inc/shop.inc b/inc/shop.inc index 69161e1..79c6776 100644 --- a/inc/shop.inc +++ b/inc/shop.inc @@ -1,4 +1,10 @@ (string)$items["cost"],"items"=>array()); - foreach($items as $cat){ + $items = simplexml_load_file('data/items.xml'); //TODO: handle errors + $shop = array("cost"=>(string)$items["cost"],"items"=>array()); //TODO: cost is a string? + foreach($items as $cat){ // Loop over all categories $category = (string)$cat["name"]; $shop["items"][$category] = array(); - foreach($cat as $item){ + foreach($cat as $item){ // Loop over all items inside a category $feats = array(); - foreach($item->features[0] as $k => $v) + foreach($item->features[0] as $k => $v) // Reads features $feats[(string)$k] = (string)$v; $shop["items"][$category][] = new Item( (string)$item->name, - intval($item->cost), + intval($item->cost), //Note: cost is an int here. (string)$item->icon, (string)$item->description, $feats); @@ -27,6 +38,12 @@ function loadShop(){ return $shop; } +/** + * Gets an Item object from the shop from its name. + * + * @params string $name the name of the object to search for + * @return Item|false the Item object or false if the item was not found + */ function getItem($name) { $shop=loadShop(); foreach($shop["items"] as $cat) { @@ -40,16 +57,32 @@ function getItem($name) { return false; } +/** + * Marks the shop as created in the session. + * + * @return void + */ function initShop() { $_SESSION["shop"] = true; } +/** + * Returns the shop array if it was created. + * + * @return array shop array as created by loadShop + */ function sendShop() { if(!empty($_SESSION["shop"])) return loadShop(); else return false; } +/** + * Creates the shop in the session and sends it to the client. + * Debits the shop's cost from the player's gold. + * + * @return void + */ function buildShop() { $shop=loadShop(); if(!empty($_SESSION["shop"])) { @@ -61,14 +94,24 @@ function buildShop() { } } +/** + * Debits the item's cost specified as the item POST parameter, adds it to the Inventory and sends it to the client. + * + * @return void + */ function buyItem() { $item = getItem($_POST["item"]); if($item && debitAccount($item->cost)) { - $tab = Inventory::addItem($item); - echo json_encode($tab); //renvoyer un tableau avec comme première entrée $item et comme deuxième entrée le nombre + $tab = Inventory::addItem($item); + echo json_encode($tab); // Sends an array with the Item as first member and count as second. } } +/** + * Invoke useItem on an item passed as the item POST parameter, sends to the client the updated player stats and the item. + * + * @return void + */ function useItem(){ $item = getItem($_POST["item"]); $it = Inventory::useItem($item); -- cgit v1.2.3-70-g09d2 From 07f9658d2fecc5f88cc27fba8502246a30d8fdc0 Mon Sep 17 00:00:00 2001 From: piernov Date: Sun, 8 May 2016 20:39:15 +0200 Subject: Add @package and various fixes --- inc/Inventory.inc | 2 ++ inc/Item.inc | 11 ++++++----- inc/Monster.inc | 13 +++++++------ inc/account.inc | 1 + inc/craftmine.inc | 1 + inc/dungeon.inc | 1 + inc/guild.inc | 1 + inc/messages.inc | 1 + inc/mine.inc | 1 + inc/perso.inc | 1 + inc/savegame.inc | 1 + inc/shop.inc | 1 + 12 files changed, 24 insertions(+), 11 deletions(-) (limited to 'inc/shop.inc') diff --git a/inc/Inventory.inc b/inc/Inventory.inc index dd65ee5..73d82c8 100644 --- a/inc/Inventory.inc +++ b/inc/Inventory.inc @@ -3,6 +3,7 @@ * Represent the player's Inventory. * Implemented as a singleton in the session. * + * @package inc\Inventory.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ @@ -25,6 +26,7 @@ class Inventory { * Returns the Inventory's content from the session. * * @return array array of Items and number + */ public static function sendContent() { return self::get()->items; } diff --git a/inc/Item.inc b/inc/Item.inc index 4ec984f..404c46b 100644 --- a/inc/Item.inc +++ b/inc/Item.inc @@ -5,33 +5,34 @@ require_once("perso.inc"); /** * Represent an Item in the shop or in the Inventory. * + * @package inc\Item.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ class Item { /** - * Name of the item. + * @var string Name of the item. */ public $name = ""; /** - * Item's cost. + * @var int Item's cost. */ public $cost = 0; /** - * Item's icon. + * @var string Item's icon. */ public $icon = ""; /** - * Item's description. + * @var string Item's description. */ public $desc = ""; /** - * Item's features as an associative array + * @var array Item's features as an associative array */ public $feat = array(); diff --git a/inc/Monster.inc b/inc/Monster.inc index 4450b59..d8fe619 100644 --- a/inc/Monster.inc +++ b/inc/Monster.inc @@ -2,37 +2,38 @@ /** * Represent an Item in the shop or in the Inventory. * + * @package inc\Monster.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ class Monster { /** - * Name of the Monster. + * @var string Name of the Monster. */ public $name = ""; /** - * Monster's icon. + * @var string Monster's icon. */ public $icon = ""; /** - * Monster's description. + * @var desc Monster's description. */ public $desc = ""; // TODO: unused /** - * HP of the Monster. + * @var int HP of the Monster. */ public $hp = 1; /** - * Exp given by this monster. + * @var int Exp given by this monster. */ public $xp = 0; /** - * Monster's level. + * @var int Monster's level. */ public $level = 1; diff --git a/inc/account.inc b/inc/account.inc index bfbd47b..f7e3c05 100644 --- a/inc/account.inc +++ b/inc/account.inc @@ -2,6 +2,7 @@ /** * Manages player's account: debit and credit. * + * @package inc\account.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ diff --git a/inc/craftmine.inc b/inc/craftmine.inc index e72db34..7dd5ba4 100644 --- a/inc/craftmine.inc +++ b/inc/craftmine.inc @@ -2,6 +2,7 @@ /** * Sends all data from previous session on page load. * + * @package inc\craftmine.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ diff --git a/inc/dungeon.inc b/inc/dungeon.inc index 05dc57d..32d58ac 100644 --- a/inc/dungeon.inc +++ b/inc/dungeon.inc @@ -2,6 +2,7 @@ /** * Manages the dungeon. * + * @package inc\dungeon.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ diff --git a/inc/guild.inc b/inc/guild.inc index f348348..f4c10af 100644 --- a/inc/guild.inc +++ b/inc/guild.inc @@ -2,6 +2,7 @@ /** * Manages miners guild. * + * @package inc\guild.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ diff --git a/inc/messages.inc b/inc/messages.inc index 50bbafb..8583dc0 100644 --- a/inc/messages.inc +++ b/inc/messages.inc @@ -2,6 +2,7 @@ /** * Server to client error/info messages list and helpers. * + * @package inc\messages.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ diff --git a/inc/mine.inc b/inc/mine.inc index 38dc717..d27804a 100644 --- a/inc/mine.inc +++ b/inc/mine.inc @@ -2,6 +2,7 @@ /** * Manages the mine. * + * @package inc\mine.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ diff --git a/inc/perso.inc b/inc/perso.inc index c81b72b..421b0a8 100644 --- a/inc/perso.inc +++ b/inc/perso.inc @@ -2,6 +2,7 @@ /** * Manages player's stats: life, experience, level. * + * @package inc\perso.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ diff --git a/inc/savegame.inc b/inc/savegame.inc index 3c5613b..3e3ffcc 100644 --- a/inc/savegame.inc +++ b/inc/savegame.inc @@ -2,6 +2,7 @@ /** * Load and save the game. * + * @package inc\savegame.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ diff --git a/inc/shop.inc b/inc/shop.inc index 79c6776..2dbd19d 100644 --- a/inc/shop.inc +++ b/inc/shop.inc @@ -2,6 +2,7 @@ /** * Manages the shop. * + * @package inc\shop.inc * @author Alexandre Renoux * @author Pierre-Emmanuel Novac */ -- cgit v1.2.3-70-g09d2