@Override
	public void spring(MOB mob)
	{
		final Room room=mob.location();
		if(room != null)
		{
			final Set<MOB> friendlySet=new HashSet<MOB>();
			if(invoker()!=null)
				invoker().getGroupMembers(friendlySet);
			room.show(mob, affected, CMMsg.MSG_OK_ACTION, L("<T-NAME> explodes, spraying clumps of stomach acid everywhere!"));
			for(final Enumeration<MOB> m=room.inhabitants();m.hasMoreElements();)
			{
				MOB M=m.nextElement();
				if((M!=null)&&(!friendlySet.contains(M)))
				{
					final MOB invoker=(invoker()!=null) ? invoker() : M;
					final int damage=CMLib.dice().roll(4,5+invoker.phyStats().level(),0);
					CMLib.combat().postDamage(invoker,M,this,damage,CMMsg.MASK_MALICIOUS|CMMsg.MASK_ALWAYS|CMMsg.TYP_ACID,Weapon.TYPE_MELTING,L("The acid clumps <DAMAGE> <T-NAME>!"));
					CMLib.combat().postRevengeAttack(M, invoker);
				}
			}
		}
		Physical affected=this.affected;
		unInvoke();
		if(affected instanceof Item)
			((Item)affected).destroy();
			
	}