31
31
"""Fichier contenant la classe Squelette, détaillée plus bas."""
33
from collections import OrderedDict
35
33
from abstraits.id import ObjetID
34
from bases.collections.liste_id import ListeID
36
35
from primaires.format.description import Description
37
36
from primaires.format.fonctions import supprimer_accents
38
37
from .membre import Membre
85
87
"""Retourne une copie du dicitonnaire des membres"""
86
return OrderedDict(self.__membres)
88
return list(self.__membres)
89
91
def presentation_indentee(self):
90
92
"""Retourne une présentation indentée des membres"""
91
membres = [membre.nom for membre in self.__membres.values()]
93
membres = [membre.nom for membre in self.__membres]
93
95
membres = ["Aucun"]
103
105
membre = Membre(nom, *args, parent=self, **kwargs)
104
nom = supprimer_accents(nom).lower()
105
self.__membres[nom] = membre
106
self.__membres.append(membre)
108
for personnage in self.personnages:
109
personnage.equipement.ajouter_membre(membre)
106
111
self.enregistrer()
109
114
def supprimer_membre(self, nom):
110
115
"""Supprime le membre du dictionnaire."""
111
116
nom = supprimer_accents(nom).lower()
112
if nom not in self.__membres.keys():
113
raise KeyError("Le membre {} n'existe pas dans ce " \
117
noms = [(supprimer_accents(membre.nom), i) for i, membre in \
118
enumerate(self.__membres)]
121
if nom not in noms.keys():
122
raise KeyError("le membre {} n'existe pas dans ce " \
114
123
"squelette".format(nom))
116
del self.__membres[nom]
125
del self.__membres[noms[nom]]
127
for personnage in self.personnages:
128
personnage.equipement.supprimer_membre(nom)
117
130
self.enregistrer()
132
def get_membre(self, nom):
133
"""Retourne le membre si il le trouve grâce à son nom."""
134
nom = supprimer_accents(nom).lower()
135
noms = [(supprimer_accents(membre.nom), i) for i, membre in \
136
enumerate(self.__membres)]
139
if nom not in noms.keys():
140
raise KeyError("le membre {} n'existe pas dans ce " \
141
"squelette".format(nom))
143
return self.__membres[noms[nom]]
145
def a_membre(self, nom):
146
"""Retourne True si le squelette possède le membre nom, False sinon"""
148
membre = self.get_membre(nom)
155
def changer_flag_membre(self, nom, flags):
156
"""Change les flags du membre nom.
157
Répercute ces modifications dans les autres membres dérivés.
160
membre = self.get_membre(nom)
163
for personnage in self.personnages:
164
equipement = personnage.equipement
165
a_membre = equipement.get_membre(nom)
166
a_membre.flags = flags
167
def renommer_membre(self, nom, nouveau_nom):
168
"""Renomme le membre nom.
169
Répercute ces modifications dans les autres membres dérivés.
172
membre = self.get_membre(nom)
173
membre.nom = nouveau_nom
175
for personnage in self.personnages:
176
equipement = personnage.equipement
177
a_membre = equipement.get_membre(nom)
178
a_membre.nom = nouveau_nom
119
180
ObjetID.ajouter_groupe(Squelette)