@Override
	public boolean preInvoke(MOB mob, List<String> commands, Physical givenTarget, boolean auto, int asLevel, int secondsElapsed, double actionsRemaining)
	{
		if(commands!=null) commands=new XVector<String>(commands);
		if(!conCheck(mob,commands,givenTarget,auto,asLevel))
			return false;
		final Vector V=new Vector();
		V.addElement(commands.get(0));
		final MOB target=this.getTarget(mob,V,givenTarget);
		if(target==null) return false;
		commands.remove(0);
		if(secondsElapsed>0)
		{
			if((secondsElapsed%4)==0)
				return mob.location().show(mob,target,CMMsg.MSG_SPEAK,_("^T<S-NAME> continue(s) conning <T-NAMESELF> to '@x1'.^?",CMParms.combine(commands,0)));
			return true;
		}
		final CMMsg msg=CMClass.getMsg(mob,target,this,CMMsg.MSG_SPEAK,_("^T<S-NAME> attempt(s) to con <T-NAMESELF> to '@x1'.^?",CMParms.combine(commands,0)));
		if(mob.location().okMessage(mob,msg))
			mob.location().send(mob,msg);
		else
			return false;
		return true;
	}