@Override
	public void setVictim(MOB other)
	{
		if (other == null)
		{
			setRangeToTarget(-1);
			if (victim != null)
			{
				synchronized (commandQue)
				{
					commandQue.clear();
				}
			}
		}
		if (victim == other)
			return;
		if (other == this)
			return;
		victim = other;
		recoverPhyStats();
		recoverCharStats();
		recoverMaxState();
		if (other != null)
		{
			if ((other.location() == null) || (location() == null) || (other.amDead()) || (amDead())
			|| (other.location() != location()) || (!location().isInhabitant(this))
			|| (!location().isInhabitant(other)))
			{
				if (victim != null)
					victim.setVictim(null);
				victim = null;
				setRangeToTarget(-1);
			}
			else
			{
				if (Log.combatChannelOn())
				{
					final Item I = fetchWieldedItem();
					final Item VI = other.fetchWieldedItem();
					Log.combatOut("STRT", Name() + ":" + phyStats().getCombatStats() + ":"
							+ curState().getCombatStats() + ":" + ((I == null) ? "null" : I.name()) + ":" + other.Name()
							+ ":" + other.phyStats().getCombatStats() + ":" + other.curState().getCombatStats() + ":"
							+ ((VI == null) ? "null" : VI.name()));
				}
				other.recoverCharStats();
				other.recoverPhyStats();
				other.recoverMaxState();
			}
		}
	}