public void run() {
   long tileFactor = 0;
   switch (landscape.getTile(currentX, currentY).getType()) {
     case FORREST:
       tileFactor = 10000;
       break;
     case PLAIN:
       tileFactor = 5000;
       break;
     case MOUNTAIN:
       tileFactor = 15000;
       break;
   }
   boolean alive = true;
   while (alive) {
     try {
       Thread.sleep((long) (Math.random() * 10000) + tileFactor);
     } catch (InterruptedException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
     alive = landscape.getTile(currentX, currentY).isInhabited();
     if (alive) {
       landscape.spawnHuman(currentX, currentY);
     }
   }
 }