| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #from __future__ import unicode_literals
- # -*- coding: utf-8 -*-
- class Inventaire(dict):
- """inventaire des objets portes par une creature ou un joueur"""
- def __init__(self):
- 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
|