Reworked available brooch jewel logic.
This commit is contained in:
@ -21,28 +21,30 @@ package com.l2jmobius.gameserver.enums;
|
||||
*/
|
||||
public enum BroochJewel
|
||||
{
|
||||
RUBY_LV1(38855, 17814, 0.01),
|
||||
RUBY_LV2(38856, 17814, 0.035),
|
||||
RUBY_LV3(38857, 17815, 0.075),
|
||||
RUBY_LV4(38858, 17816, 0.125),
|
||||
RUBY_LV5(38859, 17817, 0.2),
|
||||
GREATER_RUBY(47688, 17817, 0.2),
|
||||
SHAPPHIRE_LV1(38927, 17818, 0.01),
|
||||
SHAPPHIRE_LV2(38928, 17818, 0.035),
|
||||
SHAPPHIRE_LV3(38929, 17819, 0.075),
|
||||
SHAPPHIRE_LV4(38930, 17820, 0.125),
|
||||
SHAPPHIRE_LV5(38931, 17821, 0.2),
|
||||
GREATER_SHAPPHIRE(47689, 17821, 0.2);
|
||||
RUBY_LV1(38855, 17814, 0.01, true),
|
||||
RUBY_LV2(38856, 17814, 0.035, true),
|
||||
RUBY_LV3(38857, 17815, 0.075, true),
|
||||
RUBY_LV4(38858, 17816, 0.125, true),
|
||||
RUBY_LV5(38859, 17817, 0.2, true),
|
||||
GREATER_RUBY(47688, 18715, 0.2, true),
|
||||
SHAPPHIRE_LV1(38927, 17818, 0.01, false),
|
||||
SHAPPHIRE_LV2(38928, 17818, 0.035, false),
|
||||
SHAPPHIRE_LV3(38929, 17819, 0.075, false),
|
||||
SHAPPHIRE_LV4(38930, 17820, 0.125, false),
|
||||
SHAPPHIRE_LV5(38931, 17821, 0.2, false),
|
||||
GREATER_SHAPPHIRE(47689, 18718, 0.2, false);
|
||||
|
||||
private int _itemId;
|
||||
private int _effectId;
|
||||
private double _bonus;
|
||||
private boolean _isRuby; // If not, it is sapphire.
|
||||
|
||||
private BroochJewel(int itemId, int effectId, double bonus)
|
||||
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_effectId = effectId;
|
||||
_bonus = bonus;
|
||||
_isRuby = isRuby;
|
||||
}
|
||||
|
||||
public int getItemId()
|
||||
@ -59,4 +61,9 @@ public enum BroochJewel
|
||||
{
|
||||
return _bonus;
|
||||
}
|
||||
|
||||
public boolean isRuby()
|
||||
{
|
||||
return _isRuby;
|
||||
}
|
||||
}
|
||||
|
@ -8942,63 +8942,28 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public void updateActiveBroochJewel()
|
||||
{
|
||||
final BroochJewel[] broochJewels = BroochJewel.values();
|
||||
// Update active Ruby jewel.
|
||||
if ((_inventory.getItemByItemId(BroochJewel.GREATER_RUBY.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.GREATER_RUBY.getItemId()).isEquipped()))
|
||||
setActiveRubyJewel(null);
|
||||
for (int i = broochJewels.length - 1; i > 0; i--)
|
||||
{
|
||||
setActiveRubyJewel(BroochJewel.GREATER_RUBY);
|
||||
}
|
||||
else if ((_inventory.getItemByItemId(BroochJewel.RUBY_LV5.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.RUBY_LV5.getItemId()).isEquipped()))
|
||||
{
|
||||
setActiveRubyJewel(BroochJewel.RUBY_LV5);
|
||||
}
|
||||
else if ((_inventory.getItemByItemId(BroochJewel.RUBY_LV4.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.RUBY_LV4.getItemId()).isEquipped()))
|
||||
{
|
||||
setActiveRubyJewel(BroochJewel.RUBY_LV4);
|
||||
}
|
||||
else if ((_inventory.getItemByItemId(BroochJewel.RUBY_LV3.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.RUBY_LV3.getItemId()).isEquipped()))
|
||||
{
|
||||
setActiveRubyJewel(BroochJewel.RUBY_LV3);
|
||||
}
|
||||
else if ((_inventory.getItemByItemId(BroochJewel.RUBY_LV2.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.RUBY_LV2.getItemId()).isEquipped()))
|
||||
{
|
||||
setActiveRubyJewel(BroochJewel.RUBY_LV2);
|
||||
}
|
||||
else if ((_inventory.getItemByItemId(BroochJewel.RUBY_LV1.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.RUBY_LV1.getItemId()).isEquipped()))
|
||||
{
|
||||
setActiveRubyJewel(BroochJewel.RUBY_LV1);
|
||||
}
|
||||
else
|
||||
{
|
||||
setActiveRubyJewel(null);
|
||||
final BroochJewel jewel = broochJewels[i];
|
||||
if (jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId()))
|
||||
{
|
||||
setActiveRubyJewel(jewel);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Update active Sapphire jewel.
|
||||
if ((_inventory.getItemByItemId(BroochJewel.GREATER_SHAPPHIRE.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.GREATER_SHAPPHIRE.getItemId()).isEquipped()))
|
||||
setActiveShappireJewel(null);
|
||||
for (int i = broochJewels.length - 1; i > 0; i--)
|
||||
{
|
||||
setActiveShappireJewel(BroochJewel.GREATER_SHAPPHIRE);
|
||||
}
|
||||
else if ((_inventory.getItemByItemId(BroochJewel.SHAPPHIRE_LV5.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.SHAPPHIRE_LV5.getItemId()).isEquipped()))
|
||||
{
|
||||
setActiveShappireJewel(BroochJewel.SHAPPHIRE_LV5);
|
||||
}
|
||||
else if ((_inventory.getItemByItemId(BroochJewel.SHAPPHIRE_LV4.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.SHAPPHIRE_LV4.getItemId()).isEquipped()))
|
||||
{
|
||||
setActiveShappireJewel(BroochJewel.SHAPPHIRE_LV4);
|
||||
}
|
||||
else if ((_inventory.getItemByItemId(BroochJewel.SHAPPHIRE_LV3.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.SHAPPHIRE_LV3.getItemId()).isEquipped()))
|
||||
{
|
||||
setActiveShappireJewel(BroochJewel.SHAPPHIRE_LV3);
|
||||
}
|
||||
else if ((_inventory.getItemByItemId(BroochJewel.SHAPPHIRE_LV2.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.SHAPPHIRE_LV2.getItemId()).isEquipped()))
|
||||
{
|
||||
setActiveShappireJewel(BroochJewel.SHAPPHIRE_LV2);
|
||||
}
|
||||
else if ((_inventory.getItemByItemId(BroochJewel.SHAPPHIRE_LV1.getItemId()) != null) && (_inventory.getItemByItemId(BroochJewel.SHAPPHIRE_LV1.getItemId()).isEquipped()))
|
||||
{
|
||||
setActiveShappireJewel(BroochJewel.SHAPPHIRE_LV1);
|
||||
}
|
||||
else
|
||||
{
|
||||
setActiveShappireJewel(null);
|
||||
final BroochJewel jewel = broochJewels[i];
|
||||
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId()))
|
||||
{
|
||||
setActiveShappireJewel(jewel);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -909,6 +909,18 @@ public abstract class Inventory extends ItemContainer
|
||||
return _paperdoll[slot] != null;
|
||||
}
|
||||
|
||||
public boolean isItemEquipped(int itemId)
|
||||
{
|
||||
for (ItemInstance item : getItemsByItemId(itemId))
|
||||
{
|
||||
if (item.isEquipped())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static int getPaperdollIndex(long slot)
|
||||
{
|
||||
if (slot == Item.SLOT_UNDERWEAR)
|
||||
|
Reference in New Issue
Block a user