@Override
    public void paint(Graphics g) {
        super.paint(g);
        Graphics2D g2D = (Graphics2D) g;

        textDrawer.drawPortalDescription(g2D, null == contextualString ? "" : contextualString);
        textDrawer.drawQuestion(g2D, null == questionString ? "" : questionString);
        textDrawer.drawExposition(g2D, null == situationString ? "" : situationString);

        if(null != endGameString){
            textDrawer.drawEndGame(g2D, endGameString);
            return;
        }


        synchronized (floors){
            Iterator i = floors.iterator();
            while (i.hasNext()){
                Floor floor = (Floor)i.next();
                floor.paint(g2D);

            }
        }


        synchronized (entities){
            Iterator i = entities.iterator();
            while (i.hasNext()){
                ((Entity)i.next()).paint(g2D);

            }
        }

            textDrawer.drawPortalDescription(g2D, null == contextualString ? "" : contextualString);
            textDrawer.drawQuestion(g2D, null == questionString ? "" : questionString);
            textDrawer.drawExposition(g2D, null == situationString ? "" : situationString);
    }