Beispiel #1
0
    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()
Beispiel #2
0
 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
Beispiel #3
0
 def __init__(self):
     """Constructeur du conteneur"""
     BaseObj.__init__(self)
     self.points_guilde = 10
     self.membres = {}
     self.malus = {}
     self._construire()
Beispiel #4
0
 def __init__(self, cle, type):
     """Constructeur de la fiche."""
     BaseObj.__init__(self)
     self.cle = cle
     self.type = type
     self.script = ScriptTag(self)
     self._construire()
Beispiel #5
0
 def __init__(self, parent=None):
     """Constructeur du conteneur"""
     BaseObj.__init__(self)
     self._objets = []
     self._non_uniques = []
     self.parent = parent
     self._construire()
Beispiel #6
0
 def __init__(self, prototype, nombre=1):
     """Constructeur de l'objet."""
     BaseObj.__init__(self)
     self.prototype = prototype
     self.nombre = nombre
     self.identifiant = ""
     self._construire()
Beispiel #7
0
    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
Beispiel #8
0
 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 de la description flottante."""
     BaseObj.__init__(self)
     self.cle = cle
     self.description = Description(parent=self, scriptable=True)
     self.details = Details(parent=self)
     self._construire()
Beispiel #10
0
    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
Beispiel #11
0
    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()
Beispiel #12
0
 def __init__(self, cle):
     """Constructeur du trajet."""
     BaseObj.__init__(self)
     self.cle = cle
     self.etendue = None
     self.point_depart = None
     self.points = OrderedDict()
Beispiel #13
0
 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()
Beispiel #14
0
 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()
Beispiel #15
0
    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")
Beispiel #16
0
 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
Beispiel #17
0
    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()
Beispiel #18
0
 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()   
Beispiel #19
0
    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()
Beispiel #20
0
 def __init__(self):
     """Constructeur du conteneur"""
     BaseObj.__init__(self)
     self.points_guilde = 10
     self.membres = {}
     self.malus = {}
     self._construire()
Beispiel #21
0
 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
Beispiel #22
0
    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()
Beispiel #23
0
 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
Beispiel #24
0
    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()
Beispiel #25
0
 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()
Beispiel #26
0
 def __init__(self, parent=None):
     """Constructeur du conteneur"""
     BaseObj.__init__(self)
     self._objets = []
     self._non_uniques = []
     self.parent = parent
     self._construire()
Beispiel #27
0
    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")
Beispiel #28
0
 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()
Beispiel #29
0
 def __init__(self, membre, rang):
     """Constructeur de la fiche."""
     BaseObj.__init__(self)
     self.membre = membre
     self.rang = rang
     self.recettes = {}
     self._construire()
Beispiel #30
0
 def __init__(self, prototype, nombre=1):
     """Constructeur de l'objet."""
     BaseObj.__init__(self)
     self.prototype = prototype
     self.nombre = nombre
     self.identifiant = ""
     self._construire()
Beispiel #31
0
    def __init__(self):
        """Constructeur du conteneur"""

        BaseObj.__init__(self)
        self.__annonces = []
        self._deja_vues = {}
        self._construire()
Beispiel #32
0
    def __init__(self):
        """Constructeur du conteneur"""

        BaseObj.__init__(self)
        self.__annonces = []
        self._deja_vues = {}
        self._construire()
Beispiel #33
0
 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()
Beispiel #34
0
 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()
Beispiel #35
0
    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 = {}
Beispiel #36
0
 def __init__(self, origine):
     """Constructeur de la fiche."""
     BaseObj.__init__(self)
     self.origine = origine
     self.destination = None
     self.salles = []
     self.sorties = []
     self._construire()
Beispiel #37
0
 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 = {}
Beispiel #38
0
 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()
Beispiel #39
0
 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()
Beispiel #40
0
 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()
Beispiel #41
0
 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()
Beispiel #42
0
 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()
Beispiel #43
0
 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()
Beispiel #44
0
 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()
Beispiel #45
0
 def __init__(self, rapport, auteur, texte):
     """Constructeur d'un commentaire."""
     BaseObj.__init__(self)
     self.rapport = rapport
     self.auteur = auteur
     self.texte = texte
     self.date = datetime.now()
     self._construire()
Beispiel #46
0
 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
Beispiel #47
0
    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 = {}
Beispiel #48
0
 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()
Beispiel #49
0
 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()
Beispiel #50
0
 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()
Beispiel #51
0
 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
Beispiel #52
0
 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()
Beispiel #53
0
 def __init__(self, equipage, personnage):
     """Constructeur du matelot."""
     BaseObj.__init__(self)
     self.equipage = equipage
     self.personnage = personnage
     self.nom_poste = "matelot"
     self.confiance = 0
     self.affectation = None
     self.ordres = []
Beispiel #54
0
 def __init__(self, prototype, nom):
     BaseObj.__init__(self)
     self.prototype = prototype
     self.nom = nom
     self.objets_admis = []
     self.types_admis = []
     self.etat_min = 0
     self.connecteur = "sur"
     self.masculin = True
Beispiel #55
0
 def __init__(self, cle=""):
     """Constructeur du prototype."""
     BaseObj.__init__(self)
     self.n_id = 1
     if cle:
         valider_cle(cle)
         self.cle = cle
     self.cycles = []
     self.plantes = []
Beispiel #56
0
 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()
Beispiel #57
0
 def __init__(self, guilde, cle):
     """Constructeur de la fiche."""
     BaseObj.__init__(self)
     self.guilde = guilde
     self.cle = cle
     self.nom = "rang inconnu"
     self.points_guilde = 10
     self.recettes = []
     self._construire()
Beispiel #58
0
 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()
Beispiel #59
0
 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 = []