示例#1
0
 @Override
 protected void execute() {
   int newAmount = 0;
   for (int i = 1; i <= amount; i++) {
     if (hasRequirements(player, buttonId, false, 1, pouchData)) {
       player.getInventory().remove(new Item(POUCH_ID, 1));
       player.getInventory().remove(new Item(SHARD_ID, 1));
       player.getInventory().remove(new Item(pouchData.getCharmId(), 1));
       player.getInventory().remove(new Item(pouchData.getSecondIngredientId(), 1));
       player.getInventory().add(new Item(pouchData.getPouchId(), 1));
       newAmount++;
     } else {
       break;
     }
   }
   if (newAmount == 0) {
     abort();
     return;
   }
   player.playAnimation(new Animation(725));
   player.playGraphics(new Graphic(1207));
   player
       .getSkill()
       .addExperience(
           Skill.SUMMONING, pouchData.getExp() * newAmount * Constants.SUMMONING_EXPERIENCE);
   player.sendMessage(
       "You infuse "
           + newAmount
           + " "
           + new Item(pouchData.getPouchId()).getDefinition().getName()
           + (newAmount > 1 ? "s" : "")
           + ".");
   abort();
 }
示例#2
0
 /** Process interface functions */
 public static boolean processInterfaceFunctions(Player c, int buttonId) {
   if (buttonId < 205231 || buttonId > 207109) {
     return false;
   }
   PouchData pouch = PouchData.getByButton(buttonId);
   if (pouch == null) {
     return false;
   }
   switch (buttonId - pouch.getButtonId()) {
     case 1:
       hasRequirements(c, pouch.getButtonId(), true, 5, pouch);
       return true;
     case 2:
       hasRequirements(c, pouch.getButtonId(), true, 10, pouch);
       return true;
     case 3:
       hasRequirements(c, pouch.getButtonId(), true, 28, pouch);
       return true;
     case 4:
       c.getInterfaceState().openValueInput(52700, pouch.getButtonId(), pouch.getPouchId());
       return true;
     default:
       hasRequirements(c, pouch.getButtonId(), true, 1, pouch);
       return true;
   }
 }
示例#3
0
 public CreatePouch(Player player, int buttonId, int amount) {
   super(1, true);
   this.player = player;
   this.buttonId = buttonId;
   pouchData = PouchData.getByButton(buttonId);
   this.amount = amount;
 }
示例#4
0
  /**
   * Checks whether or not that player has requirements to make the pouch.
   *
   * @param c The Player.
   * @param itemId The item id.
   * @param slot The slot of the item.
   */
  public static boolean hasRequirements(
      final Player player, final int buttonId, boolean inform, int amount, PouchData pouch) {
    if (inform) {
      if (player.getSkill().getLevelForExperience(Skill.SUMMONING) < pouch.getLevelRequired()) {
        player.sendMessage(
            "You need a summoning level of " + pouch.getLevelRequired() + " to create this pouch");
        return false;
      }
    }
    if (!player.getInventory().contains(POUCH_ID)) {
      if (inform) {
        player.sendMessage("You dont have a pouch to create this item.");
      }
      return false;
    }
    if (!player.getInventory().hasItem(new Item(SHARD_ID, pouch.getShardsRequired()))) {
      if (inform) {
        player.sendMessage(
            "You need " + pouch.getShardsRequired() + " shards to create this pouch.");
      }
      return false;
    }

    if (!player.getInventory().contains(pouch.getCharmId())) {
      if (inform) {
        player.sendMessage(
            "You need a "
                + new Item(pouch.getCharmId()).getDefinition().getName()
                + " to create this pouch.");
      }
      return false;
    }
    if (!player.getInventory().contains(pouch.getSecondIngredientId())) {
      if (inform) {
        player.sendMessage(
            "You need "
                + new Item(pouch.getSecondIngredientId()).getDefinition().getName()
                + " to create this pouch.");
      }
      return false;
    }
    player.setCurrentSkill(new CreatePouch(player, buttonId, amount));
    player.getCurrentSkill().start();
    return true;
  }