@Override
	public boolean invoke(MOB mob, List<String> 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.setMiscText(this.reversed()?"REVERSED":"NORMAL");
			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;
	}