@Override
	public boolean invoke(MOB mob, Vector commands, Physical target, boolean auto, int asLevel)
	{
		if(target==null) target=mob;
		if(!(target instanceof MOB)) return false;
		if(((MOB)target).location()==null) return false;
		if(((MOB)target).location().show(mob,target,this,CMMsg.MSG_OK_VISUAL,_("^R<S-NAME> and <T-NAME> start(s) dueling!^?")))
		{
			final MOB tmob = (MOB)target;
			Dueler A;
			Dueler tA;
			A=(Dueler)mob.fetchEffect(ID());
			if(A!=null){ A.unInvoke(); mob.delEffect(A); }
			A=(Dueler)tmob.fetchEffect(ID());
			if(A!=null){ A.unInvoke(); tmob.delEffect(A); }
			A=(Dueler)newInstance();
			tA=(Dueler)newInstance();
			A.otherDueler=tA;
			A.otherDuelPartner=tmob;
			tA.otherDueler=A;
			tA.otherDuelPartner=mob;
			A.init(mob);
			tA.init(tmob);
			mob.setVictim(tmob);
			tmob.setVictim(mob);
			A.startTickDown(mob, mob, Ability.TICKS_FOREVER);
			tA.startTickDown(tmob, tmob, Ability.TICKS_FOREVER);
		}
		return true;
	}