@Override
	public void finishSpringing(MOB target)
	{
		if((!invoker().mayIFight(target))||(target.phyStats().weight()<5))
			target.location().show(target,null,CMMsg.MSG_OK_ACTION,L("<S-NAME> float(s) gently into the pit!"));
		else
		{
			target.location().show(target,null,CMMsg.MSG_OK_ACTION,L("<S-NAME> hit(s) the pit floor with a THUMP!"));
			final int damage=CMLib.dice().roll(trapLevel()+abilityCode(),6,1);
			CMLib.combat().postDamage(invoker(),target,this,damage,CMMsg.MASK_MALICIOUS|CMMsg.MASK_ALWAYS|CMMsg.TYP_JUSTICE,-1,null);
		}
		final List<String> snakes=new Vector<String>();
		String t=text();
		int x=t.indexOf("</MOBITEM><MOBITEM>");
		while(x>=0)
		{
			snakes.add(t.substring(0,x+10));
			t=t.substring(x+10);
			x=t.indexOf("</MOBITEM><MOBITEM>");
		}
		if(t.length()>0)
			snakes.add(t);
		if(snakes.size()>0)
			monsters=new Vector<MOB>();
		for(int i=0;i<snakes.size();i++)
		{
			t=snakes.get(i);
			final Item I=CMClass.getItem("GenCaged");
			((CagedAnimal)I).setCageText(t);
			final MOB monster=((CagedAnimal)I).unCageMe();
			if(monster!=null)
			{
				monsters.add(monster);
				monster.basePhyStats().setRejuv(PhyStats.NO_REJUV);
				monster.bringToLife(target.location(),true);
				monster.setVictim(target);
				if(target.getVictim()==null)
					target.setVictim(monster);
			}
		}
		CMLib.commands().postLook(target,true);
	}