001
002/**
003 * Classe de la pièce qui nous téléporte n'importe ou.
004 *
005 * @author Gabriel Leroux
006 * @version 30/04/2020
007 */
008public class TransporterRoom extends Room
009{
010    private RoomRandomizer aRoomRandomizer;
011    private Room aAlea;
012    /**
013     * Constructeur d'objets de classe TransporterRoom
014     * @param pDescription, description de la salle
015     * @param pImage, image de la salle
016     * @param pTab, le tableau des salles que l'on peut piocher aléatoirement
017     */
018    public TransporterRoom(final String pDescription, final String pImage,final Room[]pTab)
019    {
020        super(pDescription, pImage);
021        this.aRoomRandomizer= new RoomRandomizer(pTab);
022        this.aAlea=null;
023    }
024    /**
025     * Modificateur de la room en mémoire
026     * @param pRoom le nom de la Room a insérer en mémoire
027     */
028    public void setAlea(final Room pRoom){
029        this.aAlea=pRoom;
030    }
031    /**
032     * Retourne une pièce aléatoire, indépendante du paramètre de direction
033     * @param pDirection indique la direction que l'on choisit d'ignorer
034     * @return une pièce aléatoire
035     */
036    @Override public Room getExit(final String pDirection)
037    {
038        Room vRoom=this.aAlea;
039        this.aAlea=null;
040        
041        if(vRoom!=null){
042            
043            return vRoom;
044            
045        }
046        else if(!(pDirection.equals("north-east")||pDirection.equals("north-west")||pDirection.equals("south")||pDirection.equals("north")||pDirection.equals("south-west"))){
047            return null;//pour éviter tout bug lorsque l'on est dans la TransporterRoom et que l'on rentre une direction inconnue
048        }
049        else{
050        System.out.println("pb");
051        return aRoomRandomizer.findRandomRoom();}
052    }
053}