@Override
	public boolean invoke(MOB mob, List<String> commands, Physical givenTarget, boolean auto, int asLevel)
	{
		final MOB target=this.getTarget(mob,commands,givenTarget);
		if(target==null)
			return false;

		if(!super.invoke(mob,commands,givenTarget,auto,asLevel))
			return false;

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

		if(success && (target.phyStats().level() < ((mob.phyStats().level() + super.getXLEVELLevel(mob))/2)))
		{
			final CMMsg msg=CMClass.getMsg(mob,target,this,verbalCastCode(mob,target,auto)|CMMsg.MASK_MALICIOUS,L("^S<S-NAME> @x1 for <T-NAME> to die.^?",prayForWord(mob)));
			if(mob.location().okMessage(mob,msg))
			{
				mob.location().send(mob,msg);
				CMLib.combat().postDeath(target, target, null);
				DeadBody body=null;
				for(Enumeration<Item> i=mob.location().items();i.hasMoreElements();)
				{
					final Item I=i.nextElement();
					if((I instanceof DeadBody)&&(((DeadBody)I).getMobName().equals(target.Name())))
						body=(DeadBody)I;
				}
				if(body==null)
					mob.tell(L("The death did not appear to create a body!"));
				else
					beneficialAffect(mob, body, asLevel, 0);
			}
		}
		else
			return maliciousFizzle(mob,target,L("^S<S-NAME> @x1 <T-NAME> to die, but nothing happens.^?",prayForWord(mob)));
		// return whether it worked
		return success;
	}