blob: c4096b7da8dcc59943fdec235dc8984f9b6a8e4e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
<?php
class Inventory {
public $items = array();
public static function created() {
return !empty($_SESSION["inventory"]);
}
public static function sendContent() {
return self::get()->items;
}
public static function get() {
if(!self::created()) {
$_SESSION["inventory"] = new Inventory();
}
return $_SESSION["inventory"];
}
private function _addItem($item) {
foreach($this->items as $k => $object){
if($object[0] == $item){
$this->items[$k][1]++;
return $this->items[$k];
}
}
$tab = array($item,1);
$this->items[] = $tab;
return $tab;
}
public static function addItem($item) {
$inv = self::get();
$tab = $inv->_addItem($item);
return $tab;
}
private function _removeItem($item) {
foreach($this->items as $k => $object) {
if($object[0] == $item) {
unset($this->items[$k]);
return;
}
}
}
public static function removeItem($item) {
$inv = self::get();
$inv->_removeItem($item);
}
private function _useItem($item) {
foreach($this->items as $k => $object){
if($object[0] == $item) {
$nb = $this->items[$k][1];
if($nb > 0) {
$this->items[$k][0]->consume();
$this->items[$k][1]--;
if($nb <= 0) $this->_removeItem($item);
return array($object[0], $nb-1);
}
else $this->_removeItem($item);
}
}
return false;
}
public static function useItem($item) {
$inv = self::get();
$it = $inv->_useItem($item);
return $it;
}
public function addToXML($root) {
foreach($this->items as $item)
$item[0]->addToXML($root, $item[1]);
}
}
?>
|