@Override
	public int castingQuality(MOB mob, Physical target)
	{
		if(mob!=null)
		{
			if(mob.isInCombat())
				return Ability.QUALITY_INDIFFERENT;
			if(CMLib.flags().isSitting(mob))
				return Ability.QUALITY_INDIFFERENT;
			if(!CMLib.flags().aliveAwakeMobileUnbound(mob,false))
				return Ability.QUALITY_INDIFFERENT;
			if(target instanceof MOB)
			{
				if(CMLib.flags().canBeSeenBy(mob,(MOB)target))
					return Ability.QUALITY_INDIFFERENT;
				final Item w=mob.fetchWieldedItem();
				if((w==null)||(w.minRange()>0)||(w.maxRange()>0))
					return Ability.QUALITY_INDIFFERENT;
				return Ability.QUALITY_MALICIOUS;
			}
		}
		return super.castingQuality(mob,target);
	}