@Override
	public void run() 
	{
		for(Settlement settlement : Empire.getInstance().SETTLEMENTS.values())
		{
			if (settlement.isAttacked == true)
			{
				this.rescueSettlement(Empire.getInstance().SETTLEMENTS.get("Rome"), settlement);
				break;
			}
		}		
		
		
		
		ArrayList<Road> streetsToPatrol = new ArrayList<>();

		ArrayList<Place> permuttedCrossroadsList = new ArrayList<>();
		ArrayList<Place> copiedCrossroadsList = new ArrayList<>();
		copiedCrossroadsList.addAll(Empire.getInstance().CROSSROADS.values());
		int rand;
		
		int size = copiedCrossroadsList.size();
		for(int i = 0; i<size; i++)
		{
			rand = random.nextInt(copiedCrossroadsList.size());
			permuttedCrossroadsList.add(copiedCrossroadsList.get(rand));
			copiedCrossroadsList.remove(rand);
		}
		
		for(int i=0; i<permuttedCrossroadsList.size()-1; i++)
		{
			streetsToPatrol.addAll(this.findPath(permuttedCrossroadsList.get(i), permuttedCrossroadsList.get(i+1)));
		}
		streetsToPatrol.addAll(this.findPath(permuttedCrossroadsList.get(permuttedCrossroadsList.size()-1), permuttedCrossroadsList.get(0)));
		
		this.move(Empire.getInstance().SETTLEMENTS.get("Rome"), permuttedCrossroadsList.get(0));
		
		while(this.isLiving)
		{
			for(Road r: streetsToPatrol)
			{		
				if(this.isLiving)
				{
					for(Settlement settlement : Empire.getInstance().SETTLEMENTS.values())
					{
						if (settlement.isAttacked)
						{
							
							Point roadPoint = r.getAPosition();
							for(Place crossroad : permuttedCrossroadsList)
							{
								Point crossroadPoint = crossroad.getPosition();
								if((crossroadPoint.getXPosition() == roadPoint.getXPosition()) &&(crossroadPoint.getYPosition() == roadPoint.getYPosition()))
								{
									this.rescueSettlement(crossroad, settlement);
									break;
								}
							}
							break;
						}
					}
					
					
					this.move(r);
					
					
				}
				else
				{
					break;
				}
			}
		}
		
		
		//this.rescueSettlement(Empire.getInstance().SETTLEMENTS.get(cities[new Random().nextInt(size)]));
		//System.out.println(cities[new Random().nextInt(size)]);
		
		//this.kill();
		//clonedLegionist.kill();
		//Empire.getInstance().CREATURES.remove(this.clonedLegionist);
	}