class Lieu: def __init__(self, nom, dsc, img=None) -> None: self.nom = nom self.dsc = dsc self.image = None self.nord = None self.sud = None self.est = None self.ouest = None self.occupant = None self.objets = [] self.action_supp = None def decrire_lieu(self): """Renvoie une description de la salle et le monstre éventuellement présent :: param self(Lieu) :: une instance de Lieu :: return (str) :: un string contenant la description globale """ reponse = self.dsc if self.occupant: # cela veut dire si self.occupant existe (n'est pas 0, vide ou None) reponse = reponse + f" \nLa salle contient également un(e) {self.occupant.nom} : {self.occupant.get_description()}" return reponse def decrire_actions_possibles(self:'Lieu') -> str: """Renvoie un string de toutes les actions possibles""" actions_possibles = "" if self.occupant: actions_possibles =+ "C : Combattre" actions_possibles =+ "F : Fuire" if self.objets: actions_possibles =+ "R : Ramasser" if self.nord: actions_possibles =+ "Z : Porte Nord" if self.sud: actions_possibles =+ "S : Porte Sud" if self.ouest: actions_possibles =+ "D : Porte Ouest" if self.est: actions_possibles =+ "Q : Porte Est" if self.objet: actions_possibles =+ "U : utiliser objet" def set_occupant(self:'Lieu', occupant:'None|Monstre|Personnage') -> bool: '''Cette méthode permet de mettre en place un occupant dasn un lieu''' if not self.occupant or occupant.est_hs(): self.occupant = occupant def ouvrir(self:'Personnage', lieu:'Lieu'): '''permet de verifier si on a un objet dans l'inventaire pour ouvrir''' if self.objet == 'clé cadena': lieu.nord = entree.nord = couloire_sud couloire_sud.sud = entree if self.objet == "Croc d'Hydra": picine.est = cuisine.ouest if self.objet == 'Boutielle de vodka': salle_NSI.ouest = salle_arcade.est