Search in sources :

Example 11 with Equip

use of client.inventory.Equip in project HeavenMS by ronancpl.

the class CashShop method findByCashId.

public Item findByCashId(int cashId) {
    boolean isRing = false;
    Equip equip = null;
    for (Item item : getInventory()) {
        if (item.getInventoryType().equals(MapleInventoryType.EQUIP)) {
            equip = (Equip) item;
            isRing = equip.getRingId() > -1;
        }
        if ((item.getPetId() > -1 ? item.getPetId() : isRing ? equip.getRingId() : item.getCashId()) == cashId) {
            return item;
        }
    }
    return null;
}
Also used : Equip(client.inventory.Equip) Item(client.inventory.Item)

Example 12 with Equip

use of client.inventory.Equip in project HeavenMS by ronancpl.

the class MapleInventoryManipulator method equip.

public static void equip(MapleClient c, short src, short dst) {
    Equip source = (Equip) c.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem(src);
    if (source == null || !MapleItemInformationProvider.getInstance().canWearEquipment(c.getPlayer(), source, dst)) {
        c.announce(MaplePacketCreator.enableActions());
        return;
    } else if ((((source.getItemId() >= 1902000 && source.getItemId() <= 1902002) || source.getItemId() == 1912000) && c.getPlayer().isCygnus()) || ((source.getItemId() >= 1902005 && source.getItemId() <= 1902007) || source.getItemId() == 1912005) && !c.getPlayer().isCygnus()) {
        // Adventurer taming equipment
        return;
    }
    boolean itemChanged = false;
    if (MapleItemInformationProvider.getInstance().isUntradeableOnEquip(source.getItemId())) {
        source.setFlag((byte) ItemConstants.UNTRADEABLE);
        itemChanged = true;
    }
    if (source.getRingId() > -1) {
        c.getPlayer().getRingById(source.getRingId()).equip();
    }
    if (dst == -6) {
        // unequip the overall
        Item top = c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem((short) -5);
        if (top != null && ItemConstants.isOverall(top.getItemId())) {
            if (c.getPlayer().getInventory(MapleInventoryType.EQUIP).isFull()) {
                c.announce(MaplePacketCreator.getInventoryFull());
                c.announce(MaplePacketCreator.getShowInventoryFull());
                return;
            }
            unequip(c, (byte) -5, c.getPlayer().getInventory(MapleInventoryType.EQUIP).getNextFreeSlot());
        }
    } else if (dst == -5) {
        final Item bottom = c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem((short) -6);
        if (bottom != null && ItemConstants.isOverall(source.getItemId())) {
            if (c.getPlayer().getInventory(MapleInventoryType.EQUIP).isFull()) {
                c.announce(MaplePacketCreator.getInventoryFull());
                c.announce(MaplePacketCreator.getShowInventoryFull());
                return;
            }
            unequip(c, (byte) -6, c.getPlayer().getInventory(MapleInventoryType.EQUIP).getNextFreeSlot());
        }
    } else if (dst == -10) {
        // check if weapon is two-handed
        Item weapon = c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem((short) -11);
        if (weapon != null && MapleItemInformationProvider.getInstance().isTwoHanded(weapon.getItemId())) {
            if (c.getPlayer().getInventory(MapleInventoryType.EQUIP).isFull()) {
                c.announce(MaplePacketCreator.getInventoryFull());
                c.announce(MaplePacketCreator.getShowInventoryFull());
                return;
            }
            unequip(c, (byte) -11, c.getPlayer().getInventory(MapleInventoryType.EQUIP).getNextFreeSlot());
        }
    } else if (dst == -11) {
        Item shield = c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem((short) -10);
        if (shield != null && MapleItemInformationProvider.getInstance().isTwoHanded(source.getItemId())) {
            if (c.getPlayer().getInventory(MapleInventoryType.EQUIP).isFull()) {
                c.announce(MaplePacketCreator.getInventoryFull());
                c.announce(MaplePacketCreator.getShowInventoryFull());
                return;
            }
            unequip(c, (byte) -10, c.getPlayer().getInventory(MapleInventoryType.EQUIP).getNextFreeSlot());
        }
    }
    if (dst == -18) {
        if (c.getPlayer().getMount() != null) {
            c.getPlayer().getMount().setItemId(source.getItemId());
        }
    }
    if (source.getItemId() == 1122017) {
        c.getPlayer().equipPendantOfSpirit();
    }
    // 1112413, 1112414, 1112405 (Lilin's Ring)
    source = (Equip) c.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem(src);
    Equip target = (Equip) c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem(dst);
    c.getPlayer().getInventory(MapleInventoryType.EQUIP).removeSlot(src);
    if (target != null) {
        c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).removeSlot(dst);
    }
    final List<ModifyInventory> mods = new ArrayList<>();
    if (itemChanged) {
        mods.add(new ModifyInventory(3, source));
        // to prevent crashes
        mods.add(new ModifyInventory(0, source.copy()));
    }
    source.setPosition(dst);
    c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).addFromDB(source);
    if (target != null) {
        target.setPosition(src);
        c.getPlayer().getInventory(MapleInventoryType.EQUIP).addFromDB(target);
    }
    if (c.getPlayer().getBuffedValue(MapleBuffStat.BOOSTER) != null && ItemConstants.isWeapon(source.getItemId())) {
        c.getPlayer().cancelBuffStats(MapleBuffStat.BOOSTER);
    }
    mods.add(new ModifyInventory(2, source, src));
    c.announce(MaplePacketCreator.modifyInventory(true, mods));
    c.getPlayer().equipChanged();
}
Also used : Equip(client.inventory.Equip) Item(client.inventory.Item) ArrayList(java.util.ArrayList) ModifyInventory(client.inventory.ModifyInventory)

Example 13 with Equip

use of client.inventory.Equip in project HeavenMS by ronancpl.

the class MapleItemInformationProvider method scrollEquipWithId.

public Item scrollEquipWithId(Item equip, int scrollId, boolean usingWhiteScroll, int vegaItemId, boolean isGM) {
    boolean assertGM = (isGM && ServerConstants.USE_PERFECT_GM_SCROLL);
    if (equip instanceof Equip) {
        Equip nEquip = (Equip) equip;
        Map<String, Integer> stats = this.getEquipStats(scrollId);
        Map<String, Integer> eqstats = this.getEquipStats(equip.getItemId());
        if (((nEquip.getUpgradeSlots() > 0 || ItemConstants.isCleanSlate(scrollId))) || assertGM) {
            double prop = (double) stats.get("success");
            if (vegaItemId == 5610000) {
                if (prop == 10.0)
                    prop = 30.0;
            } else if (vegaItemId == 5610001) {
                if (prop == 60.0)
                    prop = 90.0;
            } else if (vegaItemId == 2049100) {
                prop = 100.0;
            }
            if (assertGM || rollSuccessChance(prop)) {
                short flag = nEquip.getFlag();
                switch(scrollId) {
                    case 2040727:
                        flag |= ItemConstants.SPIKES;
                        nEquip.setFlag((byte) flag);
                        break;
                    case 2041058:
                        flag |= ItemConstants.COLD;
                        nEquip.setFlag((byte) flag);
                        break;
                    case 2049000:
                    case 2049001:
                    case 2049002:
                    case 2049003:
                        if (nEquip.getLevel() + nEquip.getUpgradeSlots() < eqstats.get("tuc")) {
                            nEquip.setUpgradeSlots((byte) (nEquip.getUpgradeSlots() + 1));
                        }
                        break;
                    case 2049100:
                    case 2049101:
                    case 2049102:
                        scrollEquipWithChaos(nEquip, ServerConstants.CHSCROLL_STAT_RANGE);
                        break;
                    default:
                        improveEquipStats(nEquip, stats);
                        break;
                }
                if (!ItemConstants.isCleanSlate(scrollId)) {
                    if (!assertGM) {
                        nEquip.setUpgradeSlots((byte) (nEquip.getUpgradeSlots() - 1));
                    }
                    nEquip.setLevel((byte) (nEquip.getLevel() + 1));
                }
            } else {
                if (!ServerConstants.USE_PERFECT_SCROLLING && !usingWhiteScroll && !ItemConstants.isCleanSlate(scrollId) && !assertGM) {
                    nEquip.setUpgradeSlots((byte) (nEquip.getUpgradeSlots() - 1));
                }
                if (Randomizer.nextInt(101) < stats.get("cursed")) {
                    return null;
                }
            }
        }
    }
    return equip;
}
Also used : Equip(client.inventory.Equip)

Example 14 with Equip

use of client.inventory.Equip in project HeavenMS by ronancpl.

the class MapleItemInformationProvider method isUpgradeable.

public boolean isUpgradeable(int itemId) {
    Item it = this.getEquipById(itemId);
    Equip eq = (Equip) it;
    return (eq.getUpgradeSlots() > 0 || eq.getStr() > 0 || eq.getDex() > 0 || eq.getInt() > 0 || eq.getLuk() > 0 || eq.getWatk() > 0 || eq.getMatk() > 0 || eq.getWdef() > 0 || eq.getMdef() > 0 || eq.getAcc() > 0 || eq.getAvoid() > 0 || eq.getSpeed() > 0 || eq.getJump() > 0 || eq.getHp() > 0 || eq.getMp() > 0);
}
Also used : Item(client.inventory.Item) Equip(client.inventory.Equip)

Example 15 with Equip

use of client.inventory.Equip in project HeavenMS by ronancpl.

the class MapleStorageInventory method PartitionByLevel.

private void PartitionByLevel(int Esq, int Dir, ArrayList<Item> A) {
    Equip x, w, eqpI, eqpJ;
    i = Esq;
    j = Dir;
    x = (Equip) (A.get((i + j) / 2));
    do {
        eqpI = (Equip) A.get(i);
        eqpJ = (Equip) A.get(j);
        while (x.getLevel() > eqpI.getLevel()) i++;
        while (x.getLevel() < eqpJ.getLevel()) j--;
        if (i <= j) {
            w = (Equip) A.get(i);
            A.set(i, A.get(j));
            A.set(j, (Item) w);
            i++;
            j--;
        }
    } while (i <= j);
}
Also used : Equip(client.inventory.Equip)

Aggregations

Equip (client.inventory.Equip)39 Item (client.inventory.Item)31 SQLException (java.sql.SQLException)16 ArrayList (java.util.ArrayList)13 Connection (java.sql.Connection)12 PreparedStatement (java.sql.PreparedStatement)12 ResultSet (java.sql.ResultSet)12 DatabaseConnection (tools.DatabaseConnection)12 MapleItemInformationProvider (server.MapleItemInformationProvider)10 Point (java.awt.Point)8 MTSItemInfo (server.MTSItemInfo)8 MapleCharacter (client.MapleCharacter)6 MapleInventory (client.inventory.MapleInventory)6 MapleMapItem (server.maps.MapleMapItem)5 MaplePlayerShopItem (server.maps.MaplePlayerShopItem)5 MapleInventoryType (client.inventory.MapleInventoryType)4 MaplePet (client.inventory.MaplePet)4 ModifyInventory (client.inventory.ModifyInventory)4 LinkedList (java.util.LinkedList)3 Pair (tools.Pair)3