public boolean standNextTo(Hero hero, Player player)
	{
		if (hero.getColor() == getColor()) {
			return false;
		}
		
		Mission m = Mission.getLastInstance();
		Player cp = m.getPlayer(getColor());
		
		if (getUnits().size() == 0) {
			m.battleFinished(hero.getColor(), player, cp, hero, this, 0, 0, null);

		} else if (hero.getUnits().size() == 0){
			m.battleFinished(getColor(), player, cp, hero, this, 0, 0, null);
		} else {
			Battle b = new Battle(player, cp, hero, this, WorldMap.getLastInstance().getTerrainAt(getY(), getX()), null);
			b.createMapWidget();
			b.populateMapWidget();;
			
			WindowBattle bat = new WindowBattle(b, player, cp, hero, this);
			b.updateQueue.connect(bat, "updateQueue(Queue)");
			b.log.connect(bat, "addLogLine(String)");
			b.start();
			
			
			if (player instanceof PlayerHuman || cp instanceof PlayerHuman) {
				gui.WindowStack ws = gui.WindowStack.getLastInstance();
				ws.push(bat);
			}
			QApplication.processEvents();
		}
		return false;
	}