@Override
	public boolean invoke(MOB mob, List<String> commands, Physical givenTarget, boolean auto, int asLevel)
	{
		if(!super.invoke(mob,commands,givenTarget,auto,asLevel))
			return false;

		final boolean success=proficiencyCheck(mob,0,auto);

		if(success)
		{
			final Room R=mob.location();
			final CMMsg msg=CMClass.getMsg(mob,R,this,CMMsg.MASK_MAGIC|CMMsg.MSG_NOISYMOVEMENT|(auto?CMMsg.MASK_ALWAYS:0),L("<S-NAME> strike(s) the set."));
			if(R.okMessage(mob,msg))
			{
				R.send(mob,msg);
				for(Enumeration<Item> i=R.items();i.hasMoreElements();)
				{
					final Item I=i.nextElement();
					msg.setTarget(I);
					if((I!=null)&&(I.container()==null))
					{
						if(I.okMessage(I, msg))
						{
							I.executeMsg(I, msg);
							beneficialAffect(mob,I,asLevel,Ability.TICKS_ALMOST_FOREVER);
						}
					}
				}
				beneficialAffect(mob,R,asLevel,Ability.TICKS_ALMOST_FOREVER);
			}
		}
		else
			return beneficialVisualFizzle(mob,null,L("<S-NAME> wave(s) <S-HIS-HER> arms around, confusing <S-HIM-HERSELF>."));

		return success;
	}