@Override
	public int willingnessToMoveHere(Hero hero, Player player, float distance,
			int day) {
		float moveRatio = hero.getMovePoints()/(distance+1);
		
		if (color == player.getColor()) {
			if (getEndangered()) {
				System.out.println(" 1 "+hero.getName());
				return (int)(500*moveRatio);
			} else {
				int strength = 0;
				if (getGarission() != null)
					strength += getGarission().getStrenght();
				if (strength > 1.5f*hero.getStrenght()) {
					System.out.println(hero.isInCastle());
					System.out.println(getHero());
					System.out.println(" 2 "+hero.getName());
					return (int)(500*moveRatio);
				}
			}
		} else if (Mission.getLastInstance().isAlly(hero.getColor(), getColor())) {
				return -1;
		} else {
			float strength = 1;
			if (getHero() != null)
				strength += getHero().getStrenght();
			if (getGarission() != null)
				strength += getGarission().getStrenght();
			System.out.println(" 3 "+hero.getName());
			return (int)(Math.min(200f*hero.getStrenght()/strength, 300f) + 50*moveRatio);
		}
		
		return 0;
	}