|
|
@@ -1,7 +1,55 @@
|
|
|
#from __future__ import unicode_literals
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
-class Inventaire():
|
|
|
+class Inventaire(dict):
|
|
|
"""inventaire des objets portes par une creature ou un joueur"""
|
|
|
def __init__(self):
|
|
|
- self.liste = {} #objet: nombre
|
|
|
+ super(Inventaire, self).__init__()
|
|
|
+
|
|
|
+ def ajouter(self, objet, nbre = 1):
|
|
|
+ """ajoute un ou plusieurs objets a l'inventaire"""
|
|
|
+ if objet in self:
|
|
|
+ self[objet] += nbre
|
|
|
+ else:
|
|
|
+ self.[objet] = nbre
|
|
|
+
|
|
|
+ def retirer(self, objet, nbre = 1):
|
|
|
+ """retire le nombre en parametre au nombre de l'objet
|
|
|
+ la quantite restante ne peut pas etre negative"""
|
|
|
+ if objet in self:
|
|
|
+ self[objet] -= nbre
|
|
|
+ if self[objet] < 0:
|
|
|
+ self[objet] = 0
|
|
|
+
|
|
|
+ def defQuantite(self, objet, nombre):
|
|
|
+ """definit la quantite de l'objet"""
|
|
|
+ self[objet] = nombre
|
|
|
+
|
|
|
+ def utiliser(objet):
|
|
|
+ """utilise un objet de l'inventaire"""
|
|
|
+ if objet in self:
|
|
|
+ if self[objet] > 0:
|
|
|
+ objet.utiliser()
|
|
|
+ if objet.estConsomme():
|
|
|
+ self[objet].retirer(1)
|
|
|
+
|
|
|
+ def poidsTotal(self):
|
|
|
+ retour = 0
|
|
|
+ for objet in self:
|
|
|
+ retour += (self[objet]*objet.poids)
|
|
|
+ return retour
|
|
|
+
|
|
|
+ def trier(self):
|
|
|
+ """retourne un dictionnaire de listes,
|
|
|
+ le dictionnaire recense les objets par type
|
|
|
+ les objets sont tries par ordre alphabétique"""
|
|
|
+ retour = {}
|
|
|
+ for objet in self:
|
|
|
+ if not objet.typeObjet in retour:
|
|
|
+ retour[objet.typeObjet] = []
|
|
|
+ retour[objet.typeObjet].append((objet, nombre))
|
|
|
+
|
|
|
+ for tO in retour:
|
|
|
+ retour[tO].sort()
|
|
|
+
|
|
|
+ return retour
|