public void moveKinah(Player player, Storage source, int splitAmount) { if (source.getKinahItem().getItemCount() < splitAmount) return; switch (source.getStorageType()) { case 0: { Storage destination = player.getStorage(StorageType.ACCOUNT_WAREHOUSE.getId()); int chksum = (source.getKinahItem().getItemCount() - splitAmount) + (destination.getKinahItem().getItemCount() + splitAmount); if (chksum != source.getKinahItem().getItemCount() + destination.getKinahItem().getItemCount()) return; source.decreaseKinah(splitAmount); destination.increaseKinah(splitAmount); break; } case 2: { Storage destination = player.getStorage(StorageType.CUBE.getId()); int chksum = (source.getKinahItem().getItemCount() - splitAmount) + (destination.getKinahItem().getItemCount() + splitAmount); if (chksum != source.getKinahItem().getItemCount() + destination.getKinahItem().getItemCount()) return; source.decreaseKinah(splitAmount); destination.increaseKinah(splitAmount); break; } default: break; } }
/** * Loads item stones from DB for each item in a list if item is ARMOR or WEAPON * * @param itemList */ public void loadItemStones(Player player) { List<Item> itemList = new ArrayList<Item>(); itemList.addAll(player.getStorage(StorageType.CUBE.getId()).getStorageItems()); itemList.addAll(player.getStorage(StorageType.REGULAR_WAREHOUSE.getId()).getStorageItems()); itemList.addAll(player.getStorage(StorageType.ACCOUNT_WAREHOUSE.getId()).getStorageItems()); itemList.addAll(player.getEquipment().getEquippedItems()); for (Item item : itemList) { if (item.getItemTemplate().isArmor() || item.getItemTemplate().isWeapon()) { item.setItemStones(DAOManager.getDAO(ItemStoneListDAO.class).load(item.getObjectId())); // if item equipped - apply stats of item stone if (item.isEquipped() && item.getEquipmentSlot() != ItemSlot.MAIN_OFF_HAND.getSlotIdMask() && item.getEquipmentSlot() != ItemSlot.SUB_OFF_HAND.getSlotIdMask()) { for (ItemStone itemStone : item.getItemStones()) { ItemEquipmentListener.addStoneStats(itemStone, player.getGameStats()); } } } } }