@Override
  public void onUsingFocusTick(
      ItemStack paramItemStack, EntityPlayer paramEntityPlayer, int paramInt) {
    if (paramEntityPlayer.worldObj.isRemote) return;

    ItemWandCasting wand = (ItemWandCasting) paramItemStack.getItem();
    AspectList aspects = wand.getAllVis(paramItemStack);

    Aspect aspectToAdd = null;
    int takes = 0;

    while (aspectToAdd == null) {
      lastGiven = lastGiven == 5 ? 0 : lastGiven + 1;

      Aspect aspect = Aspect.getPrimalAspects().get(lastGiven);

      if (aspects.getAmount(aspect) < wand.getMaxVis(paramItemStack)) aspectToAdd = aspect;

      ++takes;
      if (takes == 7) return;
    }

    int xpUse = getXpUse(paramItemStack);
    if (paramEntityPlayer.experienceTotal >= xpUse) {
      ExperienceHelper.drainPlayerXP(paramEntityPlayer, xpUse);
      wand.storeVis(paramItemStack, aspectToAdd, wand.getVis(paramItemStack, aspectToAdd) + 500);
    }
  }