def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self._cle_sort = "" self.charges = 1 self.etendre_editeur("s", "sort", Uniligne, self, "cle_sort") self.etendre_editeur("c", "charges", Uniligne, self, "charges")
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.unique = False self.valeur = 1 self.sans_prix = True self.etendre_editeur("m", "valeur monétaire", Uniligne, self, "valeur")
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.efficacite = 30 # Editeur self.etendre_editeur("f", "efficacite", Entier, self, "efficacite", 1, 50)
def regarder(self, personnage): """Le personnage regarde l'objet.""" prototype = getattr(self, "prototype", self) variables = { "recette": prototype.nom_recette, "RECETTE": prototype.nom_recette.upper(), "Recette": prototype.nom_recette.capitalize(), "contenu": prototype.contenu.regarder(personnage, self), } BaseType.regarder(self, personnage, variables)
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self._cle_sort = "" self.etendre_editeur("s", "sort", Uniligne, self, "cle_sort") # Attributs propres à l'objet (non au prototype) self._attributs = { "proprietaire": Attribut(None), }
def __init__(self, cle=""): """Constructeur du type jeu""" BaseType.__init__(self, cle) self.peut_prendre = False plateaux = list(sorted(type(self).importeur.jeux.plateaux.keys())) self.plateau = "" self.etendre_editeur("l", "plateau", Choix, self, "plateau", plateaux) # Attributs propres à l'objet (non au prototype) self._attributs = { "partie": Attribut(), }
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.gorgees_max_contenu = 50 self.etendre_editeur("go", "nombre de gorgées au maximum", Entier, self, "gorgees_max_contenu") # Attributs propres à l'objet (non au prototype) self._attributs = { "gorgees_contenu": Attribut(lambda: self.gorgees_max_contenu), }
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.nom_recette = "la recette de quelque chose" self.contenu = Description(parent=self, scriptable=False) # Éditeurs self.etendre_editeur("o", "nom de la recette", Uniligne, self, "nom_recette", 0, LOWER) self.etendre_editeur("c", "contenu de la recette", EdtDesc, self, "contenu")
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.terrains = [] self.rarete = 1 self.qualite = 2 # Editeurs self.etendre_editeur("t", "terrains", Selection, self, "terrains", list(importeur.salle.terrains.keys())) self.etendre_editeur("r", "rareté", Entier, self, "rarete", 1, 10) self.etendre_editeur("a", "qualité", Entier, self, "qualite", 1, 10)
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.masculin = True self.onces_max_contenu = 5 self.etendre_editeur("on", "nombre d'onces au maximum", Entier, self, "onces_max_contenu") self.etendre_editeur("ma", "genre masculin", Flag, self, "masculin") # Attributs propres à l'objet (non au prototype) self._attributs = { "onces_contenu": Attribut(lambda: self.onces_max_contenu), }
def regarder(self, personnage): """Quand on regarde le tonneau.""" moi = BaseType.regarder(self, personnage) # Cette description peut être appelée dans une échoppe, suite à # l'utilisation de la commande "infos", donc self.gorgees_contenu # peut être absent. gorgees_contenu = getattr(self, "gorgees_contenu", self.gorgees_max_contenu) contenu = gorgees_contenu / self.gorgees_max_contenu if contenu == 0: retour = "Ce tonneau est vide." elif contenu <= 0.05: retour = "Ce tonneau est presque vide." elif contenu < 0.1: retour = "Un peu d'eau se trouve encore au fond de ce tonneau." elif contenu < 0.2: retour = "Il reste un fond appréciable dans ce tonneau." elif contenu < 0.4: retour = "Ce tonneau est décidément plus qu'à moitié vide." elif contenu < 0.6: retour = "Ce tonneau est à moitié vide... ou à moitié plein." elif contenu < 0.8: retour = "Ce tonneau est rempli aux trois quarts." elif contenu < 0.95: retour = "Ce tonneau est presque entièrement rempli." else: retour = "Ce tonneau est plein... ou presque." moi += retour return moi
def regarder(self, personnage): """Le personnage regarde l'objet""" msg = BaseType.regarder(self, personnage) if getattr(self, "au_fourreau", None): msg += "Au fourreau : " + self.au_fourreau.nom_singulier return msg
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.emplacement = "mains" self.positions = (1, 2) self.degats_fixes = 5 self.degats_variables = 0 self.bonus_lance = 0 self.peut_depecer = False # Editeurs self.etendre_editeur("f", "dégâts fixes", Entier, self, "degats_fixes") self.etendre_editeur("v", "dégâts variables", Entier, self, "degats_variables") self.etendre_editeur("bo", "bonus au lancé", Entier, self, \ "bonus_lance", None) self.etendre_editeur("pe", "peut dépecer", Flag, self, "peut_depecer")
def regarder(self, personnage): """Quand on regarde le plateau.""" moi = BaseType.regarder(self, personnage) partie = getattr(self, "partie", None) if partie: moi += "\n\n" + partie.afficher(personnage) return moi
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.encaissement_fixe = 5 self.encaissement_variable = 0 self.fourreau = False self.fourreau_visible = True self.poids_max_fourreau = 1 self.types_fourreau = [] self._attributs = { "au_fourreau": Attribut(None), } # Editeurs self.etendre_editeur("f", "encaissement fixe", Entier, self, "encaissement_fixe") self.etendre_editeur("v", "encaissement variable", Entier, self, "encaissement_variable") self.etendre_editeur("fo", "fourreau", EdtFourreau, self, "")
def acheter(self, quantite, magasin, transaction): """Achète le grimoire.""" objets = BaseType.acheter(self, quantite, magasin, transaction) acheteur = transaction.initiateur for objet in objets: objet.proprietaire = acheteur acheteur.envoyer_tip("Vous êtes propriétaire de ce grimoire. " \ "Utilisez la commande %étudier% pour l'étudier.")
def get_nom(self, nombre=1, pluriels=True): """Retourne le nom complet en fonction du nombre. Par exemple : Si nombre == 1 : retourne le nom singulier Sinon : retourne le nombre et le nom pluriel """ if nombre <= 0: raise ValueError("la fonction get_nom a été appelée " \ "avec un nombre négatif ou nul.") if nombre == 1 and getattr(self, "gorgees_contenu", 1) == 0: return self.nom_singulier + " vide" else: return BaseType.get_nom(self, nombre, pluriels)
def regarder(objet, personnage): """Le personnage regarde l'objet.""" msg = BaseType.regarder(objet, personnage) if getattr(objet, "sort", False): de = "de" if objet.sort.nom[0] in ["a", "e", "i", "o", "u", "y"]: de = "d'" if objet.charges > 0: s = "s" if objet.charges > 1 else "" msg += "\nCe parchemin contient " + str(objet.charges) msg += " charge" + s + " du sort " + de + " " + objet.sort.nom msg += "." else: msg += "\nCe parchemin ne contient plus aucune charge." return msg
def regarder(self, personnage): """Le personnage regarde l'objet.""" sort = self.sort if sort: if sort.elements[0] != personnage.element: return "L'ancre ondule étrangement devant vos yeux... " \ "vous ne pouvez lire ce parchemin." msg = BaseType.regarder(self, personnage) points = sort.points_tribut s = "s" if points > 1 else "" phrase = "Il vous faut {} point{s} de tribut pour apprendre ce " \ "sort.".format(points, s=s) msg += "\n\n" + phrase return msg
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.type_pavillon = "" self.etendre_editeur("y", "type de pavillon", Choix, self, "type_pavillon", PAVILLONS)
def get_structure(self, structure): """Retourne la structure étenduee.""" BaseType.get_structure(self, structure) structure.nom_recette = self.nom_recette structure.contenu = self.contenu.regarder(None, self)
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.nb_places = 1 self.etendre_editeur("b", "nombre de places", Entier, self, "nb_places")
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.types_harnachement = [] self.etendre_editeur("ty", "types d'harnachement", Selection, self, "types_harnachement", TYPES_HARNACHEMENT)
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.qualite = 1 self.etendre_editeur("a", "qualité", Entier, self, "qualite", 1, 10)
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.degats = 50 self.etendre_editeur("ts", "dégâts", Flottant, self, "degats", "kg")
def __init__(self, cle=""): """Constructeur de l'objet""" BaseType.__init__(self, cle) self.poids_max = 5.0 self.etendre_editeur("ma", "poids maximum", Flottant, self, "poids_max")