@Override
	public boolean invoke(MOB mob, Vector commands, Physical givenTarget, boolean auto, int asLevel)
	{
		if(!auto) return false;
		final Physical target=givenTarget;
		if(target==null) return false;
		if((target instanceof Item)&&(room==null)) return false;
		if(target.fetchEffect("Sinking")==null)
		{
			final Sinking F=new Sinking();
			F.setProficiency(proficiency());
			F.invoker=null;
			if(target instanceof MOB)
				F.invoker=(MOB)target;
			else
				F.invoker=CMClass.getMOB("StdMOB");
			target.addEffect(F);
			F.setSavable(false);
			F.makeLongLasting();
			if(!(target instanceof MOB))
				CMLib.threads().startTickDown(F,Tickable.TICKID_MOB,1);
			target.recoverPhyStats();
		}
		return true;
	}