Search in sources :

Example 1 with MapleItemInformationProvider

use of server.itens.MapleItemInformationProvider in project HeavenMS by ronancpl.

the class MCField method onItemPickup.

/**
 * Handles a player looting an item.
 *   [MENTION=2000183830]para[/MENTION]m player Player that picked up the object.
 *   [MENTION=2000183830]para[/MENTION]m mapitem Object picked up.
 *
 *   [MENTION=850422]return[/MENTION] True if pickup was successful, false otherwise.
 */
public boolean onItemPickup(Player player, FieldItem mapitem) {
    if (mapitem == null) {
        MCTracker.log("[MCPQ] Attempting to loot null object.");
        return false;
    }
    int itemid = mapitem.getItem().getItemId();
    if (!MonsterCarnival.isCPQConsumeItem(itemid)) {
        return false;
    }
    MCParty pty = player.getMCPQParty();
    MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();
    MapleStatEffect itemEffect = ii.getItemEffect(itemid);
    if (!itemEffect.isConsumeOnPickup()) {
        return false;
    }
    if (itemEffect.isParty()) {
        for (Player chr : pty.getMembers()) {
            if (chr.getStat().getCurrentHp() > 0) {
                itemEffect.applyTo(chr);
            }
        }
    } else {
        // Single Target Item
        itemEffect.applyTo(player);
    }
    // Status items
    if (itemEffect.getNuffSkill() != -1) {
        MCSkill debuff = MCSkillFactory.getMCSkill(itemEffect.getNuffSkill());
        if (debuff == null) {
            MCTracker.log("[MCPQ] debuff skill is null " + itemEffect.getNuffSkill());
            return false;
        }
        pty.getEnemy().applyMCSkill(debuff);
    }
    if (itemEffect.getCP() > 0) {
        this.gainCP(player, itemEffect.getCP());
    }
    return true;
}
Also used : Player(client.player.Player) MapleStatEffect(server.MapleStatEffect) MapleItemInformationProvider(server.itens.MapleItemInformationProvider)

Aggregations

Player (client.player.Player)1 MapleStatEffect (server.MapleStatEffect)1 MapleItemInformationProvider (server.itens.MapleItemInformationProvider)1