def __init__(self, parent=None): """Constructeur du conteneur""" BaseObj.__init__(self) self._objets = [] self._non_uniques = [] self.parent = parent self._construire()
def __init__(self, cible, nom, probabilite=1, points=1): """Constructeur de l'élément.""" BaseObj.__init__(self) self.cible = cible self.nom = nom self.probabilite = probabilite self.points = points
def __init__(self, nom, desc_survol): """Constructeur de l'obstacle.""" BaseObj.__init__(self) self.nom = nom self.desc_survol = desc_survol self.symbole = "" self._construire()
def __init__(self, client, creer_contexte=True): """Constructeur d'une instance de connexion. On peut y trouver trois informations : * le client connecté * le compte émetteur (une fois qu'il est déclaré) * le personnage connecté (une fois qu'il l'est) * le contexte * la file d'attente des messages à envoyer [1] [1] Quand on envoie un message grâce à la fonction 'envoyer', on ne l'envoie pas directement au client. On stocke le message dans la file d'attente. A chaque tour de boucle synchro, ou en cas de déconnexion du client, on lui envoie toute la file d'attente d'un coup. """ BaseObj.__init__(self) self.client = client self.compte = None self.joueur = None self.file_attente = [] # file d'attente des messages à envoyer self.contexte = None self.nb_essais = 0 self.nb_msg = 0 # nombre de messages envoyés self.avec_prompt = True self._construire() if creer_contexte: self.contexte = type(self).importeur.interpreteur. \ contextes["connex:connexion:afficher_MOTD"](self) self.contexte.actualiser() self.contexte.migrer_contexte("connex:connexion:entrer_nom")
def __init__(self): """Constructeur du conteneur""" BaseObj.__init__(self) self.points_guilde = 10 self.membres = {} self.malus = {} self._construire()
def __init__(self, zone, mnemonic, x=0, y=0, z=0, valide=True): """Constructeur de la salle""" BaseObj.__init__(self) self._nom_zone = zone self._mnemonic = mnemonic self.coords = Coordonnees(x, y, z, valide, self) self.nom_terrain = "ville" self.titre = "" self.description = Description(parent=self) self.sorties = Sorties(parent=self) self.details = Details(parent=self) self._personnages = [] self.objets_sol = ObjetsSol(parent=self) self.script = ScriptSalle(self) self.interieur = False self.illuminee = False self.magasin = None self.flags = 0 # Repop self.pnj_repop = {} # Etendue self.etendue = None # Affections self.affections = {} # Décors self.decors = [] self._construire()
def __init__(self, cle): """Constructeur de la description flottante.""" BaseObj.__init__(self) self.cle = cle self.description = Description(parent=self, scriptable=True) self.details = Details(parent=self) self._construire()
def __init__(self, nom, modele=None, parent=None): """Constructeur d'un membre""" BaseObj.__init__(self) self.nom = nom self.article = "le" self.flags = AFFICHABLE self.statut = "entier" self.groupe = "" self.probabilite_atteint = 0 self.supporte = 3 self.equipe = [] self.tenu = None # l'objet tenu self.parent = parent self._construire() if nom: self.recalculer_article() # Copie du modèle si existe if modele: self.nom = modele.nom self.article = modele.article self.flags = modele.flags self.groupe = modele.groupe self.probabilite_atteint = modele.probabilite_atteint self.supporte = modele.supporte
def __init__(self, nom, symbole, defaut, marge, max, flags=I0, parent=None): """Constructeur d'une stat. Elle prend les mêmes paramètres que ceux passés dans l'ordre, dans la configuration. Voir : ./cfg_stats.py """ BaseObj.__init__(self) self.nom = nom self.symbole = symbole self.defaut = defaut self.marge_min = 0 self.marge_max = marge self.nom_max = max self.flags = flags self.parent = parent # Valeurs self.__base = self.defaut self.__variable = 0 self.__max = None if self.parent and max: self.__max = getattr(self.parent, "_{}".format(max)) self._construire()
def __setstate__(self, attrs): """Récupération de l'objet enregistré.""" obstacles = {} for cle, point in attrs["obstacles"].items(): if isinstance(cle, str): x, y = cle.split("|") cle = int(x), int(y) obstacles[cle] = point attrs["obstacles"] = obstacles cotes = {} for cle, point in attrs["cotes"].items(): if isinstance(cle, str): x, y = cle.split("|") cle = int(x), int(y) cotes[cle] = point attrs["cotes"] = cotes liens = {} for cle, point in attrs["liens"].items(): if isinstance(cle, str): x, y = cle.split("|") cle = int(x), int(y) liens[cle] = point attrs["liens"] = liens BaseObj.__setstate__(self, attrs)
def __init__(self, evt, auteur, msg): """Constructeur d'un commentaire""" BaseObj.__init__(self) self.evenement = evt self.auteur = auteur self.contenu = msg self.date = datetime.date.today()
def __init__(self): """Constructeur du conteneur""" BaseObj.__init__(self) self.__annonces = [] self._deja_vues = {} self._construire()
def detruire(self): """Destruction du compte et de ses joueurs.""" for joueur in list(self.joueurs): self.joueurs.remove(joueur) joueur.detruire() BaseObj.detruire(self)
def detruire(self): """Méthode appelée lors de la destruction du personage. - On supprime le personnage de la liste des personnages du squelette - On supprime le personnage de la salle """ BaseObj.detruire(self) if self.equipement and self.equipement.squelette and \ self in self.equipement.squelette.personnages: self.equipement.squelette.personnages.remove(self) if self.salle: self.salle.retirer_personnage(self) if self.equipement: for membre in self.equipement.membres: for objet in membre.equipe: try: importeur.objet.supprimer_objet(objet.identifiant) except KeyError: pass if membre.tenu and hasattr(membre.tenu, "identifiant"): try: importeur.objet.supprimer_objet( membre.tenu.identifiant) except KeyError: pass
def __setattr__(self, nom_attr, val_attr): """Si nom_attr est dans 'self.stats', modifie 'self.stats'""" if not nom_attr.startswith("_") and hasattr(self, "stats") and \ nom_attr in self.stats.to_dict: setattr(self.stats, nom_attr, val_attr) else: BaseObj.__setattr__(self, nom_attr, val_attr)
def __init__(self, prototype, nombre=1): """Constructeur de l'objet.""" BaseObj.__init__(self) self.prototype = prototype self.nombre = nombre self.identifiant = "" self._construire()
def __init__(self, objet, evenement, test, no_ligne, ligne, message, traceback): """Cration d'une alerte. Les paramètres attendus sont : objet -- l'objet scripté evenement - le nom de l'évènement exécuté test -- le nom du test no_ligne -- le numéro à laquel s'est produit l'erreur ligne -- la ligne de script elle-même message -- le message d'erreur traceback -- le traceback complet de l'exception levée. """ BaseObj.__init__(self) self.no = self.inc_no() self.objet = repr(objet) self.date = datetime.now() if objet: self.type = type(objet).nom_scripting else: self.type = "inconnu" self.evenement = evenement self.test = test self.no_ligne = no_ligne self.ligne = ligne self.message = message self.traceback = traceback self._construire()
def __init__(self, pos): """Constructeur d'une perturbation météo""" BaseObj.__init__(self) self.centre = pos self.rayon = randint(ceil(self.rayon_max / 2), self.rayon_max) self.duree = randint(ceil(self.duree_max / 1.5), self.duree_max) self.age = 0 self.flags = AUCUN_FLAG self.statique = False self.dir = randint(0, 7) # 0 pour une perturbation en ligne droite, 1 pour aucun changement # majeur de direction, jusqu'à 10 pour un comportement aléatoire self.alea_dir = 1 # (X, état renvoyé) avec X par rapport à 10 la fraction du rayon # concernée, en partant du centre self.etat = [ (7, "Une perturbation roule au-dessus de votre tête."), (10, "Une perturbation gronde non loin."), ] # Messages renvoyés aux salles sous la perturbation self.message_debut = "Une perturbation se forme dans le ciel." self.message_fin = "La perturbation se dissipe peu à peu." # Message à une salle sur laquelle arrive la perturbation self.message_entrer = "Une perturbation arrive {dir}." # Message à une salle qui sort de la perturbation self.message_sortir = "La perturbation s'éloigne et disparaît au loin." # Liste des fins possibles d'une pertu enchaînant sur une autre # ("nom d'une pertu", "message d'enchaînement", proba) # Le choix d'une pertu est fait aléatoirement en tirant un nombre # entre 1 et 100 ; la première perturbation de la liste telle que # nombre_tire < proba est choisie (voir nuages pour un exemple). self.fins_possibles = [] self._construire()
def __init__(self, cle, type): """Constructeur de la fiche.""" BaseObj.__init__(self) self.cle = cle self.type = type self.script = ScriptTag(self) self._construire()
def __init__(self, membre, rang): """Constructeur de la fiche.""" BaseObj.__init__(self) self.membre = membre self.rang = rang self.recettes = {} self._construire()
def __init__(self, cle): """Constructeur du trajet.""" BaseObj.__init__(self) self.cle = cle self.etendue = None self.point_depart = None self.points = OrderedDict()
def __init__(self, cle): """Constructeur d'un type""" BaseObj.__init__(self) self.cle = cle self._attributs = {} self.no = 0 # nombre de PNJ créés sur ce prototype self.pnj = [] # Prototypes self.nom_singulier = "quelqu'un" self.etat_singulier = "se tient ici" self.nom_pluriel = "quelques-uns" self.etat_pluriel = "se tiennent ici" self.noms_sup = [] self.description = Description(parent=self) self._race = None self.genre = "aucun" self.stats = Stats(self) self.squelette = None self.equipement = OrderedDict() self.niveau = 1 self.gain_xp = 0 self.script = ScriptPNJ(self) self.a_depecer = {} self.entraine_stats = {} self.talents = {} self.sorts = {} self.flags = 0 # Salles repop self.salles_repop = {} self._construire()
def __init__(self, cle): """Constructeur du modèle.""" BaseObj.__init__(self) self.cle = cle self.nom = "un navire" self.vehicules = [] self.salles = {} self.poids_max = 200 self.tirant_eau = 3 self.fond_plat = False self.graph = {} self.m_valeur = 1000 self.duree_construction = 60 self.description = Description(parent=self) self.description_vente = Description(parent=self) self.canot = False self.masculin = True self.peut_conquerir = True self.niveau = 5 self.cale_max = 200 self.facteur_rames = 0.8 self.facteurs_orientations = { "vent debout": -0.3, "au près": 0.5, "bon plein": 0.8, "largue": 1.2, "grand largue": 0.9, "vent arrière": 0.7, } self.descriptions_independantes = False
def detruire(self): """Destruction du prototype.""" for objet, nb in self.a_depecer: if self in objet.depecer_de: objet.depecer_de.remove(self) BaseObj.detruire(self)
def __init__(self, parent=None): """Constructeur de la file, initialement vide.""" BaseObj.__init__(self) self._file = [] # la liste représentant la file d'attente self._taille_min = 1 # la taille minimum de la file d'attente self._position = 0 # position dans la file self.parent = parent self._construire()
def __init__(self, origine): """Constructeur de la fiche.""" BaseObj.__init__(self) self.origine = origine self.destination = None self.salles = [] self.sorties = [] self._construire()
def __init__(self, guilde, cle): """Constructeur du talent.""" BaseObj.__init__(self) self.guilde = guilde self.cle = cle self.nom = "un atelier" self.matieres = {} self._construire()
def __init__(self, parent, nom, flags): """Constructeur d'un groupe""" BaseObj.__init__(self) self.nom = nom self.parent = parent self.groupes_inclus = [] self.flags = flags self._construire()
def __init__(self, clef=None): """Constructeur de la porte.""" BaseObj.__init__(self) self.ouverte = False self._clef = clef if clef is None else clef.cle self.verrouillee = False if clef is None else True # On passe le statut en CONSTRUIT self._construire()
def __init__(self, prototype): BaseObj.__init__(self) self.nom_singulier = "un bonhomme de neige" self.nom_pluriel = "bonhommes de neige" self.etat_singulier = "se tient ici" self.etat_pluriel = "se tiennent ici" self.description = Description(parent=self, scriptable=False) self._construire()
def __init__(self, nom, couleur, points, fem=True): """Constructeur du pion.""" BaseObj.__init__(self) self.nom = nom self._couleur = couleur self.points = points self.fem = fem self._construire()
def __init__(self): """Constructeur du conteneur.""" BaseObj.__init__(self) self._groupes = {} # nom_groupe:groupe self._construire() # Dictionnaire associant une adresse de commande à un groupe self.commandes = {}
def __init__(self, plante, periode, nom, objet, quantite): """Constructeur de la période.""" BaseObj.__init__(self) self.plante = plante self.periode = periode self.nom = nom self.objet = objet self.quantite = quantite
def __init__(self, cle): """Constructeur du chemin.""" BaseObj.__init__(self) self.cle = cle self.salles = OrderedDict() self.salles_retour = OrderedDict() self.flags = 0 self._construire()
def __init__(self, x, y): """Constructeur du repère.""" BaseObj.__init__(self) self.x = x self.y = y self.nom = "un repère indéfini" self.description = Description(parent=self) self.amplificateur_portee = 1.5
def detruire(self): """Destruction du prototype d'objet.""" # Destruction des objets à dépecer for proto in self.depecer_de: if self in proto.a_depecer: del proto.a_depecer[self] BaseObj.detruire(self)
def __init__(self, cle): BaseObj.__init__(self) self.cle = cle self.salle_magasin = None self.etendue = None self.points = [] self.commandes = [] self.cales_seches = [] self._construire()
def __init__(self, cle): """Constructeur du navire.""" BaseObj.__init__(self) self.cle = cle self.comptoir = None self.titre = "Une auberge" self.cle_aubergiste = "" self.chambres = {} self.vacances = []
def __setstate__(self, dico): BaseObj.__setstate__(self, {}) self.personnage = dico["personnage"] etats = dico["etats"] for tuple in etats: cle = tuple[0] args = tuple[1:] importeur.diffact.ajouter_action("e_{}".format(id(list(cle))), 0, self.ajouter, cle, *args)
def __init__(self, guilde, parent, nom): """Constructeur du type.""" BaseObj.__init__(self) self.guilde = guilde self.parent = parent self.nom = nom self.attributs = [] self.extensions = [] self._construire()