Example #1
0
 def accueil(self):
     """Message d'accueil du contexte"""
     sortie = self.objet
     salle = sortie.parent
     msg = "| |tit|"
     msg += "Edition de la sortie {} de {}".format(
             sortie.direction, salle).ljust(76)
     msg += "|ff||\n" + self.opts.separateur + "\n"
     msg += self.aide_courte
     
     msg += "\n\nNom de la sortie : |ent|" + sortie.nom_complet + "|ff|"
     msg += "\nDirection : " + sortie.direction
     msg += " (vers |vr|" + str(sortie.salle_dest) + "|ff|)"
     msg += "\nRéciproque : |cy|"
     msg += sortie.correspondante or "aucune (sens unique)"
     msg += "|ff|\nSortie cachée : " + oui_ou_non(sortie.cachee)
     msg += "\nPorte : " + oui_ou_non(bool(sortie.porte))
     if sortie.porte and sortie.porte.clef:
         msg += " (clef : |bc|" + sortie.porte.clef.nom_singulier + "|ff|)"
     if sortie.direction in ("bas, haut"):
         a_esc = sortie._diff_escalade > 0
         msg += "\nÀ escalader : " + oui_ou_non(a_esc)
         if a_esc:
             msg += " ({:>2}/10)".format(sortie._diff_escalade)
     
     return msg
Example #2
0
 def accueil(self):
     """Message d'accueil du contexte"""
     salle = self.objet
     msg = "| |tit|" + "Edition du magasin de {}".format(salle).ljust(76)
     msg += "|ff||\n" + self.opts.separateur + "\n"
     msg += self.aide_courte
     if salle.magasin is not None:
         magasin = salle.magasin
         cle_vendeur = magasin.prototype_vendeur and \
                 magasin.prototype_vendeur.cle or "|rg|aucun|ff|"
         vendeur = magasin.vendeur and magasin.vendeur.nom_singulier or "aucun"
         msg += "\n\nNom du magasin : " + salle.magasin.nom
         msg += "\nVendeur {} ({})".format(cle_vendeur, vendeur)
         msg += "\nOuverture à {:02}:{:02}   Fermeture à {:02}:" \
                 "{:02}".format(*(magasin.ouverture + magasin.fermeture))
         msg += "\nRenouvellement tous les {} jour(s)".format(
                 magasin.renouvellement_jours)
         msg += " (à l'ouverture {}   à la fermeture {})".format(
                 oui_ou_non(magasin.renouveler_ouverture), oui_ou_non(
                 magasin.renouveler_fermeture))
         msg += "\n\nTypes admis en vente : " + ", ".join(
                 magasin.types_vente)
         msg += "\nVente unitaire maximum {}   Vente totale maximum " \
                 "{}".format(magasin.aff_max_vente_unitaire,
                 magasin.aff_max_vente_total)
         msg += "\n\n" + str(salle.magasin)
     
     return msg
Example #3
0
    def accueil(self):
        """Message d'accueil du contexte"""
        sortie = self.objet
        salle = sortie.parent
        msg = "| |tit|"
        msg += "Edition de la sortie {} de {}".format(sortie.direction,
                                                      salle).ljust(76)
        msg += "|ff||\n" + self.opts.separateur + "\n"
        msg += self.aide_courte

        msg += "\n\nNom de la sortie : |ent|" + sortie.nom_complet + "|ff|"
        msg += "\nDirection : " + sortie.direction
        msg += " (vers |vr|" + str(sortie.salle_dest) + "|ff|)"
        msg += "\nRéciproque : |cy|"
        msg += sortie.correspondante or "aucune (sens unique)"
        msg += "|ff|\nSortie cachée : " + oui_ou_non(sortie.cachee)
        msg += "\nPorte : " + oui_ou_non(bool(sortie.porte))
        if sortie.porte and sortie.porte.clef:
            msg += " (clef : |bc|" + sortie.porte.clef.nom_singulier + "|ff|)"
        if sortie.direction in ("bas, haut"):
            a_esc = sortie._diff_escalade > 0
            msg += "\nÀ escalader : " + oui_ou_non(a_esc)
            if a_esc:
                msg += " ({:>2}/10)".format(sortie._diff_escalade)

        return msg
Example #4
0
 def accueil(self):
     """Message d'accueil du contexte"""
     salle = self.objet
     msg = "| |tit|" + "Edition du magasin de {}".format(salle).ljust(76)
     msg += "|ff||\n" + self.opts.separateur + "\n"
     msg += self.aide_courte
     if salle.magasin is not None:
         magasin = salle.magasin
         cle_vendeur = magasin.prototype_vendeur and \
                 magasin.prototype_vendeur.cle or "|rg|aucun|ff|"
         vendeur = magasin.vendeur and magasin.vendeur.nom_singulier or "aucun"
         msg += "\n\nNom du magasin : " + salle.magasin.nom
         msg += "\nVendeur {} ({})".format(cle_vendeur, vendeur)
         msg += "\nOuverture à {:02}:{:02}   Fermeture à {:02}:" \
                 "{:02}".format(*(magasin.ouverture + magasin.fermeture))
         msg += "\nRenouvellement tous les {} jour(s)".format(
                 magasin.renouvellement_jours)
         msg += " (à l'ouverture {}   à la fermeture {})".format(
                 oui_ou_non(magasin.renouveler_ouverture), oui_ou_non(
                 magasin.renouveler_fermeture))
         msg += "\n\nTypes admis en vente : " + ", ".join(
                 magasin.types_vente)
         msg += "\nVente unitaire maximum {}   Vente totale maximum " \
                 "{}".format(magasin.aff_max_vente_unitaire,
                 magasin.aff_max_vente_total)
         msg += "\n\n" + str(salle.magasin)
     
     return msg
Example #5
0
    def erreur_validation(self, personnage, dic_masques):
        """Définit la réaction de la commande lors d'une erreur."""
        salle = personnage.salle
        zone = salle.zone
        msg = "Informations actuelles sur la météo :"
        msg += "\n  Température dynamique : " + oui_ou_non(
                importeur.meteo.temperature_dynamique)
        msg += "\n  Nombre de perturbations en jeu : {}".format(
                len(importeur.meteo.perturbations_actuelles))
        msg += "\n  Température de l'univers : {}°".format(
                importeur.meteo.temperature)
        msg += "\n  Température dans la zone {} : {}°".format(
                zone.cle, zone.temperature)
        msg += "\n  Température de la salle {} : {}° (bonus={}°)".format(
                salle.ident, salle.temperature, importeur.bonus.get(
                salle, "temperature"))

        # Affichage des perturbations les plus proches
        if len(importeur.meteo.perturbations_actuelles) == 0:
            msg += "  \nIl n'y a pas de perturbations en jeu."
        elif salle.coords.valide:
            proches = sorted([(p, p.distance_au_centre(salle)) for p in \
                    importeur.meteo.perturbations_actuelles],
                    key=lambda c: c[1])
            msg += "\n  Perturbations proches :"
            for i, (perturbation, distance) in enumerate(proches):
                if i > 2:
                    break

                msg += "\n    {} distant de {} salles".format(
                        perturbation.nom_pertu, round(distance))
        else:
            msg += "\n  La salle actuelle n'a pas de coordonnées valides."

        return msg
Example #6
0
    def interpreter(self, personnage, dic_masques):
        """Interprétation du paramètre"""
        cle = dic_masques["cle"].cle
        if cle not in importeur.pnj.chemins:
            personnage << "|err|Ce chemin n'existe pas.|ff|"
            return

        chemin = importeur.pnj.chemins[cle]
        msg = "Détail sur le chemin {} :".format(chemin.cle)
        msg += "\n  Flags :"
        for nom_flag in FLAGS.keys():
            msg += "\n    {}".format(nom_flag.capitalize())
            msg += " : " + oui_ou_non(chemin.a_flag(nom_flag))
        msg += "\n  Salles du chemin :"
        if len(chemin.salles) == 0:
            msg += "\n    Aucune"
        else:
            for salle, direction in chemin.salles.items():
                msg += "\n    " + salle.ident.ljust(20) + " "
                msg += direction.ljust(10)
                if salle in chemin.salles_retour and \
                        chemin.salles_retour[salle]:
                    msg += " (retour " + chemin.salles_retour[salle] + ")"

        personnage << msg
Example #7
0
    def accueil(self):
        """Message d'accueil du contexte"""
        msg = "| |tit|Edition de {}|ff|".format(self.objet).ljust(87) + "|\n"
        msg += self.opts.separateur + "\n"

        # Parcourt des choix possibles
        for nom, objet in self.choix.items():
            raccourci = self.get_raccourci_depuis_nom(nom)

            # On constitue le nom final
            # Si le nom d'origine est 'description' et le raccourci est 'd',
            # le nom final doit être '[D]escription'
            nom_maj = nom
            if objet.lecture_seule:
                nom_m = "[-] " + nom_maj.capitalize()
            else:
                pos = supprimer_accents(nom).lower().find(raccourci)
                if pos >= 0:
                    raccourci = nom[pos:pos + len(raccourci)]
                    raccourci = raccourci[0].upper() + raccourci[1:]
                nom_m = nom_maj[:pos] + "[|cmd|" + raccourci + "|ff|]" + \
                        nom_maj[pos + len(raccourci):]
            msg += "\n " + nom_m
            if issubclass(objet.editeur, Flag):
                apercu = oui_ou_non(getattr(objet.objet,
                        objet.attribut))
            else:
                apercu = objet.get_apercu()
            if apercu:
                msg += " : " + apercu

        return msg
Example #8
0
File: voir.py Project: wkta/tsunami
    def interpreter(self, personnage, dic_masques):
        """Interprétation du paramètre"""
        cle = dic_masques["cle"].cle
        if cle not in importeur.pnj.chemins:
            personnage << "|err|Ce chemin n'existe pas.|ff|"
            return

        chemin = importeur.pnj.chemins[cle]
        msg = "Détail sur le chemin {} :".format(chemin.cle)
        msg += "\n  Flags :"
        for nom_flag in FLAGS.keys():
            msg += "\n    {}".format(nom_flag.capitalize())
            msg += " : " + oui_ou_non(chemin.a_flag(nom_flag))
        msg += "\n  Salles du chemin :"
        if len(chemin.salles) == 0:
            msg += "\n    Aucune"
        else:
            for salle, direction in chemin.salles.items():
                msg += "\n    " + salle.ident.ljust(20) + " "
                msg += direction.ljust(10)
                if salle in chemin.salles_retour and \
                        chemin.salles_retour[salle]:
                    msg += " (retour " + chemin.salles_retour[salle] + ")"

        personnage << msg
Example #9
0
    def interpreter(self, personnage, dic_masques):
        """Interprétation de la commande."""
        if dic_masques["cle"]:
            cle = dic_masques["cle"].cle
            if cle not in importeur.evt.evenements:
                personnage << "|err|Évènement {} inconnu.|ff|".format(
                        repr(cle))
                return

            evt = importeur.evt.evenements[cle]
            if personnage in evt.inscrits:
                evt.inscrits.remove(personnage)
                personnage << "Vous êtes désinscrit de l'évènement {}.".format(
                        cle)
            else:
                evt.inscrits.append(personnage)
                personnage << "Vous êtes inscrit à l'évènement {}.".format(
                        cle)

            return

        tableau = Tableau()
        tableau.ajouter_colonne("Clé")
        tableau.ajouter_colonne("Aide")
        tableau.ajouter_colonne("Inscrit")

        for evt in sorted(importeur.evt.evenements.values(),
                key=lambda e: e.cle):
            inscrit = oui_ou_non(personnage in evt.inscrits)
            tableau.ajouter_ligne(evt.cle, evt.aide, inscrit)

        personnage << tableau.afficher()
Example #10
0
    def accueil(self):
        """Message d'accueil du contexte"""
        msg = "| |tit|Edition de {}|ff|".format(self.objet).ljust(87) + "|\n"
        msg += self.opts.separateur + "\n"

        # Parcourt des choix possibles
        for nom, objet in self.choix.items():
            raccourci = self.get_raccourci_depuis_nom(nom)

            # On constitue le nom final
            # Si le nom d'origine est 'description' et le raccourci est 'd',
            # le nom final doit être '[D]escription'
            pos = nom.find(raccourci)
            raccourci = ((pos == 0) and raccourci[0].upper() + raccourci[1:]) \
					or raccourci
            nom_maj = nom[0].upper() + nom[1:]
            nom_m = nom_maj[:pos] + "[|cmd|" + raccourci + "|ff|]" + \
                    nom_maj[pos + len(raccourci):]
            msg += "\n " + nom_m
            enveloppe = self.choix[nom]
            if issubclass(enveloppe.editeur, Flag):
                apercu = oui_ou_non(getattr(enveloppe.objet,
                        enveloppe.attribut))
            elif issubclass(enveloppe.editeur, Flottant):
                apercu = aff_flottant(getattr(enveloppe.objet,
                        enveloppe.attribut))
            else:
                apercu = enveloppe.get_apercu()
            if apercu:
                msg += " : " + apercu

        return msg
Example #11
0
    def accueil(self):
        """Message d'accueil du contexte"""
        msg = "| |tit|Edition de {}|ff|".format(self.objet).ljust(87) + "|\n"
        msg += self.opts.separateur + "\n"

        # Parcourt des choix possibles
        for nom, objet in self.choix.items():
            raccourci = self.get_raccourci_depuis_nom(nom)

            # On constitue le nom final
            # Si le nom d'origine est 'description' et le raccourci est 'd',
            # le nom final doit être '[D]escription'
            nom_maj = nom
            if objet.lecture_seule:
                nom_m = "[-] " + nom_maj.capitalize()
            else:
                pos = supprimer_accents(nom).lower().find(raccourci)
                if pos >= 0:
                    raccourci = nom[pos:pos + len(raccourci)]
                    raccourci = raccourci[0].upper() + raccourci[1:]
                nom_m = nom_maj[:pos] + "[|cmd|" + raccourci + "|ff|]" + \
                        nom_maj[pos + len(raccourci):]
            msg += "\n " + nom_m
            if issubclass(objet.editeur, Flag):
                apercu = oui_ou_non(getattr(objet.objet, objet.attribut))
            else:
                apercu = objet.get_apercu()
            if apercu:
                msg += " : " + apercu

        return msg
Example #12
0
 def interpreter(self, personnage, dic_masques):
     """Interprétation du paramètre"""
     langue = personnage.langue_cmd
     encodage = personnage.compte.encodage or "aucun"
     encodages = ["aucun"] + ENCODAGES
     res = "Options actuelles :\n\n"
     res += "  Couleurs : {}\n".format(oui_ou_non(
             personnage.compte.couleur))
     res += "  Envoi des newsletters : {}\n".format(oui_ou_non(
             personnage.compte.newsletter))
     res += "  Votre encodage : |ent|" + encodage + "|ff|.\n"
     res += "  Encodages disponibles : |ent|" + "|ff|, |ent|".join(
             encodages) + "|ff|.\n\n"
     res += "  Votre langue : |ent|" + langue + "|ff|.\n"
     res += "  Langues disponibles : |ent|français|ff|, " \
         "|ent|anglais|ff|."
     personnage << res
Example #13
0
File: voir.py Project: wkta/tsunami
 def interpreter(self, personnage, dic_masques):
     """Interprétation du paramètre"""
     langue = personnage.langue_cmd
     encodage = personnage.compte.encodage or "aucun"
     encodages = ["aucun"] + ENCODAGES
     res = "Options actuelles :\n\n"
     res += "  Couleurs : {}\n".format(oui_ou_non(
         personnage.compte.couleur))
     res += "  Envoi d'e-mails de notification de MudMails : {}\n".format(
         oui_ou_non(personnage.compte.email))
     res += "  Envoi des newsletters : {}\n".format(
         oui_ou_non(personnage.compte.newsletter))
     res += "  Votre encodage : |ent|" + encodage + "|ff|.\n"
     res += "  Encodages disponibles : |ent|" + "|ff|, |ent|".join(
         encodages) + "|ff|.\n\n"
     res += "  Votre langue : |ent|" + langue + "|ff|.\n"
     res += "  Langues disponibles : |ent|français|ff|, " \
         "|ent|anglais|ff|."
     personnage << res
Example #14
0
    def afficher_options(self, personnage):
        """Retourne les options actives du personnage (list)."""
        nombre = self.get_options(personnage)
        options = []
        for n, o in NOMS_OPTIONS.items():
            msg = o.capitalize().ljust(15) + " : "
            msg += oui_ou_non(bool(n & nombre))
            options.append(msg)

        options.sort()
        return options
Example #15
0
    def afficher_options(self, personnage):
        """Retourne les options actives du personnage (list)."""
        nombre = self.get_options(personnage)
        options = []
        for n, o in NOMS_OPTIONS.items():
            msg = o.capitalize().ljust(15) + " : "
            msg += oui_ou_non(bool(n & nombre))
            options.append(msg)

        options.sort()
        return options
Example #16
0
    def accueil(self):
        """Message d'accueil du contexte."""
        msg = self.aide_courte.format(objet=self.objet) + "\n\n"
        msg += "Flags actuels :"
        flags = sorted(self.flags.items())
        flag = getattr(self.objet, self.attribut)
        for nom, valeur in flags:
            msg += "\n  " + nom.capitalize().ljust(20)
            actif = flag & valeur != 0
            msg += " : " + oui_ou_non(actif)

        return msg
Example #17
0
 def accueil(self):
     """Message d'accueil du contexte"""
     canal = self.objet
     msg = "| |tit|" + "Edition des flags du canal {}".format(
             canal.nom).ljust(76)
     msg += "|ff||\n" + self.opts.separateur + "\n"
     msg += self.aide_courte
     msg += "Flags actuels :\n"
     for flag in FLAGS:
         msg += "\n  |ent|" + flag + "|ff| : "
         msg += oui_ou_non(canal.flags & FLAGS[flag] != 0)
     return msg
Example #18
0
    def accueil(self):
        """Message d'accueil du contexte."""
        msg = self.aide_courte.format(objet=self.objet) + "\n\n"
        msg += "Flags actuels :"
        flags = sorted(self.flags.items())
        flag = getattr(self.objet, self.attribut)
        for nom, valeur in flags:
            msg += "\n  " + nom.capitalize().ljust(20)
            actif = flag & valeur != 0
            msg += " : " + oui_ou_non(actif)

        return msg
Example #19
0
 def accueil(self):
     """Message d'accueil du contexte"""
     canal = self.objet
     msg = "| |tit|" + "Edition des flags du canal {}".format(
             canal.nom).ljust(76)
     msg += "|ff||\n" + self.opts.separateur + "\n"
     msg += self.aide_courte
     msg += "Flags actuels :\n"
     for flag in FLAGS:
         msg += "\n  |ent|" + flag + "|ff| : "
         msg += oui_ou_non(canal.flags & FLAGS[flag] != 0)
     return msg
Example #20
0
 def erreur_validation(self, personnage, dic_masques):
     """Définit la réaction de la commande lors d'une erreur."""
     zone = personnage.salle.zone
     msg = "Informations actuelles sur la météo :"
     msg += "\n  Température dynamique : " + oui_ou_non(
             importeur.meteo.temperature_dynamique)
     msg += "\n  Nombre de perturbations en jeu : {}".format(
             len(importeur.meteo.perturbations_actuelles))
     msg += "\n  Température de l'univers : {}°".format(
             importeur.meteo.temperature)
     msg += "\n  Température dans la zone {} : {}°".format(
             zone.cle, zone.temperature)
     return msg
Example #21
0
 def interpreter(self, personnage, dic_masques):
     """Interprétation du paramètre"""
     zones = list(type(self).importeur.salle.zones.values())
     zones = [z for z in zones if z.cle and z.salles]
     zones = sorted(zones, key=lambda z: z.cle)
     if zones:
         lignes = ["  Clé             | Salles | Ouverte |"]
         for zone in zones:
             ouverte = oui_ou_non(zone.ouverte)
             lignes.append("  {:<15} | {:>6} | {}     |".format(
                 zone.cle, len(zone.salles), ouverte))
         personnage << "\n".join(lignes)
     else:
         personnage << "Aucune zone n'est actuellement défini."
Example #22
0
 def interpreter(self, personnage, dic_masques):
     """Interprétation du paramètre"""
     zones = list(type(self).importeur.salle.zones.values())
     zones = [z for z in zones if z.cle and z.salles]
     zones = sorted(zones, key=lambda z: z.cle)
     if zones:
         lignes = [
             "  Clé             | Salles | Ouverte |"]
         for zone in zones:
             ouverte = oui_ou_non(zone.ouverte)
             lignes.append(
                 "  {:<15} | {:>6} | {}     |".format(
                 zone.cle, len(zone.salles), ouverte))
         personnage << "\n".join(lignes)
     else:
         personnage << "Aucune zone n'est actuellement défini."
Example #23
0
    def interpreter(self, personnage, dic_masques):
        """Interprétation du paramètre"""
        diligences = list(importeur.diligence.diligences.values())
        diligences = sorted(diligences, key=lambda d: d.cle)
        if len(diligences) == 0:
            personnage << "|att|Aucune diligence maudite définie.|ff|"
            return

        tableau = Tableau()
        tableau.ajouter_colonne("Clé")
        tableau.ajouter_colonne("Ouverte")
        tableau.ajouter_colonne("Salles", DROITE)
        tableau.ajouter_colonne("Nombre en jeu", DROITE)
        for diligence in diligences:
            zones = [z for z in importeur.salle.zones.values() if \
                    z.cle.startswith(diligence.cle + "_")]
            nb = len(zones)
            tableau.ajouter_ligne(diligence.cle, oui_ou_non(
                    diligence.ouverte), len(diligence.salles), nb)

        personnage << tableau.afficher()
Example #24
0
    def interpreter(self, personnage, dic_masques):
        """Interprétation du paramètre"""
        diligences = list(importeur.diligence.diligences.values())
        diligences = sorted(diligences, key=lambda d: d.cle)
        if len(diligences) == 0:
            personnage << "|att|Aucune diligence maudite définie.|ff|"
            return

        tableau = Tableau()
        tableau.ajouter_colonne("Clé")
        tableau.ajouter_colonne("Ouverte")
        tableau.ajouter_colonne("Salles", DROITE)
        tableau.ajouter_colonne("Nombre en jeu", DROITE)
        for diligence in diligences:
            zones = [z for z in importeur.salle.zones.values() if \
                    z.cle.startswith(diligence.cle + "_")]
            nb = len(zones)
            tableau.ajouter_ligne(diligence.cle, oui_ou_non(diligence.ouverte),
                                  len(diligence.salles), nb)

        personnage << tableau.afficher()
Example #25
0
    def oui_ou_non(valeur):
        """Retourne "oui" si la valeur est vraie, "non" sinon.

        0 est toujours faux. 1 ou n'importe quel nombre est toujours
        vrai. Une valeur nulle est fausse. Une liste vide est fausse.
        Une information quelconque est toujours vraie (voir les
        exemples ci-dessous).

        Paramètres à préciser :

          * valeur : la valeur, sous la forme d'un nombre ou autre.

        Exemples d'utilisation :

          retour = oui_ou_non(1)
          # retour contient "oui"
          retour = oui_ou_non(0)
          # retour contient "non"
          retour = oui_ou_non(liste())
          # retour contient "non"

        """
        return oui_ou_non(bool(valeur))
Example #26
0
    def oui_ou_non(valeur):
        """Retourne "oui" si la valeur est vraie, "non" sinon.

        0 est toujours faux. 1 ou n'importe quel nombre est toujours
        vrai. Une valeur nulle est fausse. Une liste vide est fausse.
        Une information quelconque est toujours vraie (voir les
        exemples ci-dessous).

        Paramètres à préciser :

          * valeur : la valeur, sous la forme d'un nombre ou autre.

        Exemples d'utilisation :

          retour = oui_ou_non(1)
          # retour contient "oui"
          retour = oui_ou_non(0)
          # retour contient "non"
          retour = oui_ou_non(liste())
          # retour contient "non"

        """
        return oui_ou_non(bool(valeur))
Example #27
0
 def str_fourreau(self):
     """Retourne oui ou non."""
     return oui_ou_non(self.fourreau)
Example #28
0
 def repos(self):
     return oui_ou_non(self.peut_asseoir or self.peut_allonger)
Example #29
0
 def aff_ordonnee(self):
     return oui_ou_non(self.ordonnee)
Example #30
0
    def interpreter(self, personnage, dic_masques):
        """Interprétation du paramètre"""
        navire = dic_masques["cle_navire"]
        salle = personnage.salle
        if navire is None:
            if not hasattr(salle, "navire") or salle.navire is None:
                personnage << "|err|Vous n'êtes pas sur un navire.|ff|"
                return

            navire = salle.navire
        else:
            navire = navire.navire

        modele = navire.modele
        etendue = navire.etendue
        etendue = etendue and etendue.cle or "aucune"
        direction = navire.direction.direction
        direction = round(direction, 3)
        direction = str(direction).replace(".", ",")
        nom_direction = navire.direction.nom_direction
        vitesse = navire.vitesse.norme
        vitesse = round(vitesse, 3)
        vitesse = str(vitesse).replace(".", ",")
        vitesse_n = navire.vitesse_noeuds
        vitesse_n = round(vitesse_n, 3)
        vitesse_n = str(vitesse_n).replace(".", ",")
        acceleration = navire.acceleration.norme
        acceleration = round(acceleration, 3)
        acceleration = str(acceleration).replace(".", ",")
        dir_acceleration = navire.acceleration.direction
        dir_acceleration = round(dir_acceleration, 3)
        dir_acceleration = str(dir_acceleration).replace(".", ",")
        gouvernail = navire.gouvernail
        cale = navire.cale
        voiles = navire.voiles
        hissees = [v for v in voiles if v.hissee]
        rames = navire.rames
        if gouvernail:
            orient = gouvernail.orientation
            if orient < 0:
                orient = -orient
                msg_gouv = "poussé de {}° sur bâbord".format(orient)
            elif orient > 0:
                msg_gouv = "poussé de {}° sur tribord".format(orient)
            else:
                msg_gouv = "parfaitement au centre"
        else:
            msg_gouv = "aucun"
        msg_rames = ""
        if rames:
            for rame in rames:
                 msg_rames += ", " + rame.vitesse
            msg_rames = msg_rames.lstrip(", ")
        else:
            msg_rames = "Aucune"
        compteur = round(navire.compteur / 1000, 3)
        if compteur >= 2:
            compteur = "{} milles".format(str(compteur).replace(".", ","))
        else:
            compteur = "{} mille".format(str(compteur).replace(".", ","))

        msg = "Informations sur le navire {} :\n".format(navire.cle)
        msg += "\n  Modèle : {} ({})".format(modele.cle, modele.nom)
        msg += "\n  Nom : " + (navire.nom_personnalise if \
                navire.nom_personnalise else "Aucun")
        msg += "\n  Propriétaire : " + (navire.proprietaire and \
                navire.proprietaire.nom or "Aucun")
        msg += "\n  Étendue : " + etendue
        msg += " (profondeur={})".format(navire.profondeur)
        msg += "\n  Immobilisé : {}   En collision : {}   Orientation : " \
                "{}".format(oui_ou_non(navire.immobilise), oui_ou_non(
                navire.en_collision), navire.orientation)
        msg += "\n  Cale : " + str(int(cale.poids)).rjust(6)
        msg += " / " + str(int(cale.poids_max)).rjust(6) + " ("
        msg += str(int(cale.poids / cale.poids_max * 100)).rjust(3) + "%)"
        msg += "\n  Compteur : {}".format(compteur)
        msg += "\n  Coordonnées : {}".format(navire.position.coordonnees)
        msg += "\n  Point : {}".format(get_longitude_latitude(
                navire.position.x, navire.position.y))
        msg += "\n  Allure : {}".format(navire.nom_allure)
        msg += "\n  Voiles : {} / {}".format(len(hissees), len(voiles))
        msg += "\n  Rames : " + msg_rames
        msg += "\n  Gouvernail : " + msg_gouv
        msg += "\n  Vitesse : {} ({} noeuds)".format(vitesse, vitesse_n)
        msg += "\n  Accélération : {} ({}°)".format(acceleration,
                dir_acceleration)
        msg += "\n  Direction : {} ({})".format(direction, nom_direction)
        personnage << msg
Example #31
0
 def repos(self):
     return oui_ou_non(self.peut_asseoir or self.peut_allonger)
Example #32
0
 def support(self):
     """Retourne oui_ou_non."""
     return oui_ou_non(self._peut_supporter > 0)
Example #33
0
 def aff_ordonnee(self):
     return oui_ou_non(self.ordonnee)
Example #34
0
 def str_fourreau(self):
     """Retourne oui ou non."""
     return oui_ou_non(self.fourreau)
Example #35
0
 def support(self):
     """Retourne oui_ou_non."""
     return oui_ou_non(self._peut_supporter > 0)