Brooch enum support for Sapphire and skill level.

Thanks to nasseka.
This commit is contained in:
MobiusDevelopment
2021-12-11 01:59:47 +00:00
parent a8be08b4e3
commit f47a1a6264
168 changed files with 1259 additions and 927 deletions
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -112,7 +112,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -109,7 +109,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,28 +21,33 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
RUBY_LV1(38855, 17814, 0.01, true), RUBY_LV1(38855, 17814, 1, 0.01, true, false),
RUBY_LV2(38856, 17814, 0.035, true), RUBY_LV2(38856, 17814, 1, 0.035, true, false),
RUBY_LV3(38857, 17815, 0.075, true), RUBY_LV3(38857, 17815, 1, 0.075, true, false),
RUBY_LV4(38858, 17816, 0.125, true), RUBY_LV4(38858, 17816, 1, 0.125, true, false),
RUBY_LV5(38859, 17817, 0.2, true), RUBY_LV5(38859, 17817, 1, 0.2, true, false),
SHAPPHIRE_LV1(38927, 17818, 0.01, false),
SHAPPHIRE_LV2(38928, 17818, 0.035, false), SAPPHIRE_LV1(38927, 17818, 1, 0.01, false, true),
SHAPPHIRE_LV3(38929, 17819, 0.075, false), SAPPHIRE_LV2(38928, 17818, 1, 0.035, false, true),
SHAPPHIRE_LV4(38930, 17820, 0.125, false), SAPPHIRE_LV3(38929, 17819, 1, 0.075, false, true),
SHAPPHIRE_LV5(38931, 17821, 0.2, false); SAPPHIRE_LV4(38930, 17820, 1, 0.125, false, true),
SAPPHIRE_LV5(38931, 17821, 1, 0.2, false, true);
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -50,9 +55,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -64,4 +74,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -8882,7 +8882,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -112,7 +112,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -109,7 +109,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,28 +21,33 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
RUBY_LV1(38855, 17814, 0.01, true), RUBY_LV1(38855, 17814, 1, 0.01, true, false),
RUBY_LV2(38856, 17814, 0.035, true), RUBY_LV2(38856, 17814, 1, 0.035, true, false),
RUBY_LV3(38857, 17815, 0.075, true), RUBY_LV3(38857, 17815, 1, 0.075, true, false),
RUBY_LV4(38858, 17816, 0.125, true), RUBY_LV4(38858, 17816, 1, 0.125, true, false),
RUBY_LV5(38859, 17817, 0.2, true), RUBY_LV5(38859, 17817, 1, 0.2, true, false),
SHAPPHIRE_LV1(38927, 17818, 0.01, false),
SHAPPHIRE_LV2(38928, 17818, 0.035, false), SAPPHIRE_LV1(38927, 17818, 1, 0.01, false, true),
SHAPPHIRE_LV3(38929, 17819, 0.075, false), SAPPHIRE_LV2(38928, 17818, 1, 0.035, false, true),
SHAPPHIRE_LV4(38930, 17820, 0.125, false), SAPPHIRE_LV3(38929, 17819, 1, 0.075, false, true),
SHAPPHIRE_LV5(38931, 17821, 0.2, false); SAPPHIRE_LV4(38930, 17820, 1, 0.125, false, true),
SAPPHIRE_LV5(38931, 17821, 1, 0.2, false, true);
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -50,9 +55,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -64,4 +74,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -8885,7 +8885,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -112,7 +112,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -109,7 +109,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,30 +21,37 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
RUBY_LV1(38855, 17814, 0.01, true), RUBY_LV1(38855, 17814, 1, 0.01, true, false),
RUBY_LV2(38856, 17814, 0.035, true), RUBY_LV2(38856, 17814, 1, 0.035, true, false),
RUBY_LV3(38857, 17815, 0.075, true), RUBY_LV3(38857, 17815, 1, 0.075, true, false),
RUBY_LV4(38858, 17816, 0.125, true), RUBY_LV4(38858, 17816, 1, 0.125, true, false),
RUBY_LV5(38859, 17817, 0.2, true), RUBY_LV5(38859, 17817, 1, 0.2, true, false),
GREATER_RUBY(47688, 18715, 0.2, true),
SHAPPHIRE_LV1(38927, 17818, 0.01, false), GREATER_RUBY(47688, 18715, 1, 0.2, true, false),
SHAPPHIRE_LV2(38928, 17818, 0.035, false),
SHAPPHIRE_LV3(38929, 17819, 0.075, false), SAPPHIRE_LV1(38927, 17818, 1, 0.01, false, true),
SHAPPHIRE_LV4(38930, 17820, 0.125, false), SAPPHIRE_LV2(38928, 17818, 1, 0.035, false, true),
SHAPPHIRE_LV5(38931, 17821, 0.2, false), SAPPHIRE_LV3(38929, 17819, 1, 0.075, false, true),
GREATER_SHAPPHIRE(47689, 18718, 0.2, false); SAPPHIRE_LV4(38930, 17820, 1, 0.125, false, true),
SAPPHIRE_LV5(38931, 17821, 1, 0.2, false, true),
GREATER_SAPPHIRE(47689, 18718, 1, 0.2, false, true);
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -52,9 +59,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -66,4 +78,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -8887,7 +8887,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -112,7 +112,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -109,7 +109,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,30 +21,37 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
RUBY_LV1(38855, 17814, 0.01, true), RUBY_LV1(38855, 17814, 1, 0.01, true, false),
RUBY_LV2(38856, 17814, 0.035, true), RUBY_LV2(38856, 17814, 1, 0.035, true, false),
RUBY_LV3(38857, 17815, 0.075, true), RUBY_LV3(38857, 17815, 1, 0.075, true, false),
RUBY_LV4(38858, 17816, 0.125, true), RUBY_LV4(38858, 17816, 1, 0.125, true, false),
RUBY_LV5(38859, 17817, 0.2, true), RUBY_LV5(38859, 17817, 1, 0.2, true, false),
GREATER_RUBY(47688, 18715, 0.2, true),
SHAPPHIRE_LV1(38927, 17818, 0.01, false), GREATER_RUBY(47688, 18715, 1, 0.2, true, false),
SHAPPHIRE_LV2(38928, 17818, 0.035, false),
SHAPPHIRE_LV3(38929, 17819, 0.075, false), SAPPHIRE_LV1(38927, 17818, 1, 0.01, false, true),
SHAPPHIRE_LV4(38930, 17820, 0.125, false), SAPPHIRE_LV2(38928, 17818, 1, 0.035, false, true),
SHAPPHIRE_LV5(38931, 17821, 0.2, false), SAPPHIRE_LV3(38929, 17819, 1, 0.075, false, true),
GREATER_SHAPPHIRE(47689, 18718, 0.2, false); SAPPHIRE_LV4(38930, 17820, 1, 0.125, false, true),
SAPPHIRE_LV5(38931, 17821, 1, 0.2, false, true),
GREATER_SAPPHIRE(47689, 18718, 1, 0.2, false, true);
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -52,9 +59,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -66,4 +78,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -8882,7 +8882,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -112,7 +112,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -109,7 +109,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,30 +21,37 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
RUBY_LV1(38855, 17814, 0.01, true), RUBY_LV1(38855, 17814, 1, 0.01, true, false),
RUBY_LV2(38856, 17814, 0.035, true), RUBY_LV2(38856, 17814, 1, 0.035, true, false),
RUBY_LV3(38857, 17815, 0.075, true), RUBY_LV3(38857, 17815, 1, 0.075, true, false),
RUBY_LV4(38858, 17816, 0.125, true), RUBY_LV4(38858, 17816, 1, 0.125, true, false),
RUBY_LV5(38859, 17817, 0.2, true), RUBY_LV5(38859, 17817, 1, 0.2, true, false),
GREATER_RUBY(47688, 18715, 0.2, true),
SHAPPHIRE_LV1(38927, 17818, 0.01, false), GREATER_RUBY(47688, 18715, 1, 0.2, true, false),
SHAPPHIRE_LV2(38928, 17818, 0.035, false),
SHAPPHIRE_LV3(38929, 17819, 0.075, false), SAPPHIRE_LV1(38927, 17818, 1, 0.01, false, true),
SHAPPHIRE_LV4(38930, 17820, 0.125, false), SAPPHIRE_LV2(38928, 17818, 1, 0.035, false, true),
SHAPPHIRE_LV5(38931, 17821, 0.2, false), SAPPHIRE_LV3(38929, 17819, 1, 0.075, false, true),
GREATER_SHAPPHIRE(47689, 18718, 0.2, false); SAPPHIRE_LV4(38930, 17820, 1, 0.125, false, true),
SAPPHIRE_LV5(38931, 17821, 1, 0.2, false, true),
GREATER_SAPPHIRE(47689, 18718, 1, 0.2, false, true);
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -52,9 +59,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -66,4 +78,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -8902,7 +8902,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -112,7 +112,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -109,7 +109,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,30 +21,37 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
RUBY_LV1(38855, 17814, 0.01, true), RUBY_LV1(38855, 17814, 1, 0.01, true, false),
RUBY_LV2(38856, 17814, 0.035, true), RUBY_LV2(38856, 17814, 1, 0.035, true, false),
RUBY_LV3(38857, 17815, 0.075, true), RUBY_LV3(38857, 17815, 1, 0.075, true, false),
RUBY_LV4(38858, 17816, 0.125, true), RUBY_LV4(38858, 17816, 1, 0.125, true, false),
RUBY_LV5(38859, 17817, 0.2, true), RUBY_LV5(38859, 17817, 1, 0.2, true, false),
GREATER_RUBY(47688, 18715, 0.2, true),
SHAPPHIRE_LV1(38927, 17818, 0.01, false), GREATER_RUBY(47688, 18715, 1, 0.2, true, false),
SHAPPHIRE_LV2(38928, 17818, 0.035, false),
SHAPPHIRE_LV3(38929, 17819, 0.075, false), SAPPHIRE_LV1(38927, 17818, 1, 0.01, false, true),
SHAPPHIRE_LV4(38930, 17820, 0.125, false), SAPPHIRE_LV2(38928, 17818, 1, 0.035, false, true),
SHAPPHIRE_LV5(38931, 17821, 0.2, false), SAPPHIRE_LV3(38929, 17819, 1, 0.075, false, true),
GREATER_SHAPPHIRE(47689, 18718, 0.2, false); SAPPHIRE_LV4(38930, 17820, 1, 0.125, false, true),
SAPPHIRE_LV5(38931, 17821, 1, 0.2, false, true),
GREATER_SAPPHIRE(47689, 18718, 1, 0.2, false, true);
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -52,9 +59,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -66,4 +78,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -8902,7 +8902,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -112,7 +112,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -109,7 +109,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,38 +21,45 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
RUBY_LV1(38855, 17814, 0.01, true), RUBY_LV1(38855, 17814, 1, 0.01, true, false),
RUBY_LV2(38856, 17814, 0.035, true), RUBY_LV2(38856, 17814, 1, 0.035, true, false),
RUBY_LV3(38857, 17815, 0.075, true), RUBY_LV3(38857, 17815, 1, 0.075, true, false),
RUBY_LV4(38858, 17816, 0.125, true), RUBY_LV4(38858, 17816, 1, 0.125, true, false),
RUBY_LV5(38859, 17817, 0.2, true), RUBY_LV5(38859, 17817, 1, 0.2, true, false),
GREATER_RUBY_LV1(47688, 18715, 0.2, true),
GREATER_RUBY_LV2(48771, 18715, 0.235, true), GREATER_RUBY_LV1(47688, 18715, 1, 0.2, true, false),
GREATER_RUBY_LV3(48772, 18715, 0.275, true), GREATER_RUBY_LV2(48771, 18715, 1, 0.235, true, false),
GREATER_RUBY_LV4(48773, 18715, 0.325, true), GREATER_RUBY_LV3(48772, 18715, 1, 0.275, true, false),
GREATER_RUBY_LV5(48774, 18715, 0.4, true), GREATER_RUBY_LV4(48773, 18715, 1, 0.325, true, false),
SHAPPHIRE_LV1(38927, 17818, 0.01, false), GREATER_RUBY_LV5(48774, 18715, 1, 0.4, true, false),
SHAPPHIRE_LV2(38928, 17818, 0.035, false),
SHAPPHIRE_LV3(38929, 17819, 0.075, false), SAPPHIRE_LV1(38927, 17818, 1, 0.01, false, true),
SHAPPHIRE_LV4(38930, 17820, 0.125, false), SAPPHIRE_LV2(38928, 17818, 1, 0.035, false, true),
SHAPPHIRE_LV5(38931, 17821, 0.2, false), SAPPHIRE_LV3(38929, 17819, 1, 0.075, false, true),
GREATER_SHAPPHIRE_LV1(47689, 18718, 0.2, false), SAPPHIRE_LV4(38930, 17820, 1, 0.125, false, true),
GREATER_SHAPPHIRE_LV2(48775, 18718, 0.235, false), SAPPHIRE_LV5(38931, 17821, 1, 0.2, false, true),
GREATER_SHAPPHIRE_LV3(48776, 18718, 0.275, false),
GREATER_SHAPPHIRE_LV4(48777, 18718, 0.325, false), GREATER_SAPPHIRE_LV1(47689, 18718, 1, 0.2, false, true),
GREATER_SHAPPHIRE_LV5(48778, 18718, 0.4, false); GREATER_SAPPHIRE_LV2(48775, 18718, 1, 0.235, false, true),
GREATER_SAPPHIRE_LV3(48776, 18718, 1, 0.275, false, true),
GREATER_SAPPHIRE_LV4(48777, 18718, 1, 0.325, false, true),
GREATER_SAPPHIRE_LV5(48778, 18718, 1, 0.4, false, true);
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -60,9 +67,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -74,4 +86,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -8903,7 +8903,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -101,7 +101,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -91,7 +91,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -98,7 +98,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -91,7 +91,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,38 +21,45 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
RUBY_LV1(38855, 17814, 0.01, true), RUBY_LV1(38855, 17814, 1, 0.01, true, false),
RUBY_LV2(38856, 17814, 0.035, true), RUBY_LV2(38856, 17814, 1, 0.035, true, false),
RUBY_LV3(38857, 17815, 0.075, true), RUBY_LV3(38857, 17815, 1, 0.075, true, false),
RUBY_LV4(38858, 17816, 0.125, true), RUBY_LV4(38858, 17816, 1, 0.125, true, false),
RUBY_LV5(38859, 17817, 0.2, true), RUBY_LV5(38859, 17817, 1, 0.2, true, false),
GREATER_RUBY_LV1(47688, 18715, 0.2, true),
GREATER_RUBY_LV2(48771, 18715, 0.235, true), GREATER_RUBY_LV1(47688, 18715, 1, 0.2, true, false),
GREATER_RUBY_LV3(48772, 18715, 0.275, true), GREATER_RUBY_LV2(48771, 18715, 1, 0.235, true, false),
GREATER_RUBY_LV4(48773, 18715, 0.325, true), GREATER_RUBY_LV3(48772, 18715, 1, 0.275, true, false),
GREATER_RUBY_LV5(48774, 18715, 0.4, true), GREATER_RUBY_LV4(48773, 18715, 1, 0.325, true, false),
SHAPPHIRE_LV1(38927, 17818, 0.01, false), GREATER_RUBY_LV5(48774, 18715, 1, 0.4, true, false),
SHAPPHIRE_LV2(38928, 17818, 0.035, false),
SHAPPHIRE_LV3(38929, 17819, 0.075, false), SAPPHIRE_LV1(38927, 17818, 1, 0.01, false, true),
SHAPPHIRE_LV4(38930, 17820, 0.125, false), SAPPHIRE_LV2(38928, 17818, 1, 0.035, false, true),
SHAPPHIRE_LV5(38931, 17821, 0.2, false), SAPPHIRE_LV3(38929, 17819, 1, 0.075, false, true),
GREATER_SHAPPHIRE_LV1(47689, 18718, 0.2, false), SAPPHIRE_LV4(38930, 17820, 1, 0.125, false, true),
GREATER_SHAPPHIRE_LV2(48775, 18718, 0.235, false), SAPPHIRE_LV5(38931, 17821, 1, 0.2, false, true),
GREATER_SHAPPHIRE_LV3(48776, 18718, 0.275, false),
GREATER_SHAPPHIRE_LV4(48777, 18718, 0.325, false), GREATER_SAPPHIRE_LV1(47689, 18718, 1, 0.2, false, true),
GREATER_SHAPPHIRE_LV5(48778, 18718, 0.4, false); GREATER_SAPPHIRE_LV2(48775, 18718, 1, 0.235, false, true),
GREATER_SAPPHIRE_LV3(48776, 18718, 1, 0.275, false, true),
GREATER_SAPPHIRE_LV4(48777, 18718, 1, 0.325, false, true),
GREATER_SAPPHIRE_LV5(48778, 18718, 1, 0.4, false, true);
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -60,9 +67,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -74,4 +86,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -8918,7 +8918,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -101,7 +101,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -91,7 +91,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -98,7 +98,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -91,7 +91,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,58 +21,67 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
RUBY_LV1(38855, 17814, 0.01, true), RUBY_LV1(38855, 17814, 1, 0.01, true, false),
RUBY_LV2(38856, 17814, 0.035, true), RUBY_LV2(38856, 17814, 1, 0.035, true, false),
RUBY_LV3(38857, 17815, 0.075, true), RUBY_LV3(38857, 17815, 1, 0.075, true, false),
RUBY_LV4(38858, 17816, 0.125, true), RUBY_LV4(38858, 17816, 1, 0.125, true, false),
RUBY_LV5(38859, 17817, 0.2, true), RUBY_LV5(38859, 17817, 1, 0.2, true, false),
GREATER_RUBY_LV1(47688, 18715, 0.2, true),
GREATER_RUBY_LV2(48771, 18715, 0.2, true), GREATER_RUBY_LV1(47688, 18715, 1, 0.2, true, false),
GREATER_RUBY_LV3(48772, 18715, 0.2, true), GREATER_RUBY_LV2(48771, 18715, 1, 0.2, true, false),
GREATER_RUBY_LV4(48773, 18715, 0.2, true), GREATER_RUBY_LV3(48772, 18715, 1, 0.2, true, false),
GREATER_RUBY_LV5(48774, 18715, 0.2, true), GREATER_RUBY_LV4(48773, 18715, 1, 0.2, true, false),
SUPERIOR_RUBY_LV1(81505, 39658, 0.23, true), GREATER_RUBY_LV5(48774, 18715, 1, 0.2, true, false),
SUPERIOR_RUBY_LV2(81506, 39658, 0.23, true),
SUPERIOR_RUBY_LV3(81507, 39658, 0.23, true), SUPERIOR_RUBY_LV1(81505, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV4(81508, 39658, 0.23, true), SUPERIOR_RUBY_LV2(81506, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV5(81509, 39658, 0.23, true), SUPERIOR_RUBY_LV3(81507, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV6(81510, 39658, 0.23, true), SUPERIOR_RUBY_LV4(81508, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV7(81511, 39658, 0.23, true), SUPERIOR_RUBY_LV5(81509, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV8(81512, 39658, 0.23, true), SUPERIOR_RUBY_LV6(81510, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV9(81513, 39658, 0.23, true), SUPERIOR_RUBY_LV7(81511, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV10(81514, 39658, 0.23, true), SUPERIOR_RUBY_LV8(81512, 39658, 1, 0.23, true, false),
SAPPHIRE_LV1(38927, 17818, 0.01, false), SUPERIOR_RUBY_LV9(81513, 39658, 1, 0.23, true, false),
SAPPHIRE_LV2(38928, 17818, 0.035, false), SUPERIOR_RUBY_LV10(81514, 39658, 1, 0.23, true, false),
SAPPHIRE_LV3(38929, 17819, 0.075, false),
SAPPHIRE_LV4(38930, 17820, 0.125, false), SAPPHIRE_LV1(38927, 17818, 1, 0.01, false, true),
SAPPHIRE_LV5(38931, 17821, 0.2, false), SAPPHIRE_LV2(38928, 17818, 1, 0.035, false, true),
GREATER_SAPPHIRE_LV1(47689, 18718, 0.2, false), SAPPHIRE_LV3(38929, 17819, 1, 0.075, false, true),
GREATER_SAPPHIRE_LV2(48775, 18718, 0.2, false), SAPPHIRE_LV4(38930, 17820, 1, 0.125, false, true),
GREATER_SAPPHIRE_LV3(48776, 18718, 0.2, false), SAPPHIRE_LV5(38931, 17821, 1, 0.2, false, true),
GREATER_SAPPHIRE_LV4(48777, 18718, 0.2, false),
GREATER_SAPPHIRE_LV5(48778, 18718, 0.2, false), GREATER_SAPPHIRE_LV1(47689, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV1(81515, 39660, 0.23, false), GREATER_SAPPHIRE_LV2(48775, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV2(81516, 39660, 0.23, false), GREATER_SAPPHIRE_LV3(48776, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV3(81517, 39660, 0.23, false), GREATER_SAPPHIRE_LV4(48777, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV4(81518, 39660, 0.23, false), GREATER_SAPPHIRE_LV5(48778, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV5(81519, 39660, 0.23, false),
SUPERIOR_SAPPHIRE_LV6(81520, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV1(81515, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV7(81521, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV2(81516, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV8(81522, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV3(81517, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV9(81523, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV4(81518, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV10(81524, 39660, 0.23, false); SUPERIOR_SAPPHIRE_LV5(81519, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV6(81520, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV7(81521, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV8(81522, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV9(81523, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV10(81524, 39660, 1, 0.23, false, true);
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -80,9 +89,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -94,4 +108,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -9019,7 +9019,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -101,7 +101,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -91,7 +91,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -98,7 +98,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -91,7 +91,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,58 +21,67 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
RUBY_LV1(38855, 17814, 0.01, true), RUBY_LV1(38855, 17814, 1, 0.01, true, false),
RUBY_LV2(38856, 17814, 0.035, true), RUBY_LV2(38856, 17814, 1, 0.035, true, false),
RUBY_LV3(38857, 17815, 0.075, true), RUBY_LV3(38857, 17815, 1, 0.075, true, false),
RUBY_LV4(38858, 17816, 0.125, true), RUBY_LV4(38858, 17816, 1, 0.125, true, false),
RUBY_LV5(38859, 17817, 0.2, true), RUBY_LV5(38859, 17817, 1, 0.2, true, false),
GREATER_RUBY_LV1(47688, 18715, 0.2, true),
GREATER_RUBY_LV2(48771, 18715, 0.2, true), GREATER_RUBY_LV1(47688, 18715, 1, 0.2, true, false),
GREATER_RUBY_LV3(48772, 18715, 0.2, true), GREATER_RUBY_LV2(48771, 18715, 1, 0.2, true, false),
GREATER_RUBY_LV4(48773, 18715, 0.2, true), GREATER_RUBY_LV3(48772, 18715, 1, 0.2, true, false),
GREATER_RUBY_LV5(48774, 18715, 0.2, true), GREATER_RUBY_LV4(48773, 18715, 1, 0.2, true, false),
SUPERIOR_RUBY_LV1(81505, 39658, 0.23, true), GREATER_RUBY_LV5(48774, 18715, 1, 0.2, true, false),
SUPERIOR_RUBY_LV2(81506, 39658, 0.23, true),
SUPERIOR_RUBY_LV3(81507, 39658, 0.23, true), SUPERIOR_RUBY_LV1(81505, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV4(81508, 39658, 0.23, true), SUPERIOR_RUBY_LV2(81506, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV5(81509, 39658, 0.23, true), SUPERIOR_RUBY_LV3(81507, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV6(81510, 39658, 0.23, true), SUPERIOR_RUBY_LV4(81508, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV7(81511, 39658, 0.23, true), SUPERIOR_RUBY_LV5(81509, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV8(81512, 39658, 0.23, true), SUPERIOR_RUBY_LV6(81510, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV9(81513, 39658, 0.23, true), SUPERIOR_RUBY_LV7(81511, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV10(81514, 39658, 0.23, true), SUPERIOR_RUBY_LV8(81512, 39658, 1, 0.23, true, false),
SAPPHIRE_LV1(38927, 17818, 0.01, false), SUPERIOR_RUBY_LV9(81513, 39658, 1, 0.23, true, false),
SAPPHIRE_LV2(38928, 17818, 0.035, false), SUPERIOR_RUBY_LV10(81514, 39658, 1, 0.23, true, false),
SAPPHIRE_LV3(38929, 17819, 0.075, false),
SAPPHIRE_LV4(38930, 17820, 0.125, false), SAPPHIRE_LV1(38927, 17818, 1, 0.01, false, true),
SAPPHIRE_LV5(38931, 17821, 0.2, false), SAPPHIRE_LV2(38928, 17818, 1, 0.035, false, true),
GREATER_SAPPHIRE_LV1(47689, 18718, 0.2, false), SAPPHIRE_LV3(38929, 17819, 1, 0.075, false, true),
GREATER_SAPPHIRE_LV2(48775, 18718, 0.2, false), SAPPHIRE_LV4(38930, 17820, 1, 0.125, false, true),
GREATER_SAPPHIRE_LV3(48776, 18718, 0.2, false), SAPPHIRE_LV5(38931, 17821, 1, 0.2, false, true),
GREATER_SAPPHIRE_LV4(48777, 18718, 0.2, false),
GREATER_SAPPHIRE_LV5(48778, 18718, 0.2, false), GREATER_SAPPHIRE_LV1(47689, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV1(81515, 39660, 0.23, false), GREATER_SAPPHIRE_LV2(48775, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV2(81516, 39660, 0.23, false), GREATER_SAPPHIRE_LV3(48776, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV3(81517, 39660, 0.23, false), GREATER_SAPPHIRE_LV4(48777, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV4(81518, 39660, 0.23, false), GREATER_SAPPHIRE_LV5(48778, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV5(81519, 39660, 0.23, false),
SUPERIOR_SAPPHIRE_LV6(81520, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV1(81515, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV7(81521, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV2(81516, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV8(81522, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV3(81517, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV9(81523, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV4(81518, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV10(81524, 39660, 0.23, false); SUPERIOR_SAPPHIRE_LV5(81519, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV6(81520, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV7(81521, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV8(81522, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV9(81523, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV10(81524, 39660, 1, 0.23, false, true);
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -80,9 +89,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -94,4 +108,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -9045,7 +9045,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -101,7 +101,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -91,7 +91,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -98,7 +98,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -91,7 +91,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,58 +21,67 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
RUBY_LV1(38855, 17814, 0.01, true), RUBY_LV1(38855, 17814, 1, 0.01, true, false),
RUBY_LV2(38856, 17814, 0.035, true), RUBY_LV2(38856, 17814, 1, 0.035, true, false),
RUBY_LV3(38857, 17815, 0.075, true), RUBY_LV3(38857, 17815, 1, 0.075, true, false),
RUBY_LV4(38858, 17816, 0.125, true), RUBY_LV4(38858, 17816, 1, 0.125, true, false),
RUBY_LV5(38859, 17817, 0.2, true), RUBY_LV5(38859, 17817, 1, 0.2, true, false),
GREATER_RUBY_LV1(47688, 18715, 0.2, true),
GREATER_RUBY_LV2(48771, 18715, 0.2, true), GREATER_RUBY_LV1(47688, 18715, 1, 0.2, true, false),
GREATER_RUBY_LV3(48772, 18715, 0.2, true), GREATER_RUBY_LV2(48771, 18715, 1, 0.2, true, false),
GREATER_RUBY_LV4(48773, 18715, 0.2, true), GREATER_RUBY_LV3(48772, 18715, 1, 0.2, true, false),
GREATER_RUBY_LV5(48774, 18715, 0.2, true), GREATER_RUBY_LV4(48773, 18715, 1, 0.2, true, false),
SUPERIOR_RUBY_LV1(81505, 39658, 0.23, true), GREATER_RUBY_LV5(48774, 18715, 1, 0.2, true, false),
SUPERIOR_RUBY_LV2(81506, 39658, 0.23, true),
SUPERIOR_RUBY_LV3(81507, 39658, 0.23, true), SUPERIOR_RUBY_LV1(81505, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV4(81508, 39658, 0.23, true), SUPERIOR_RUBY_LV2(81506, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV5(81509, 39658, 0.23, true), SUPERIOR_RUBY_LV3(81507, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV6(81510, 39658, 0.23, true), SUPERIOR_RUBY_LV4(81508, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV7(81511, 39658, 0.23, true), SUPERIOR_RUBY_LV5(81509, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV8(81512, 39658, 0.23, true), SUPERIOR_RUBY_LV6(81510, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV9(81513, 39658, 0.23, true), SUPERIOR_RUBY_LV7(81511, 39658, 1, 0.23, true, false),
SUPERIOR_RUBY_LV10(81514, 39658, 0.23, true), SUPERIOR_RUBY_LV8(81512, 39658, 1, 0.23, true, false),
SAPPHIRE_LV1(38927, 17818, 0.01, false), SUPERIOR_RUBY_LV9(81513, 39658, 1, 0.23, true, false),
SAPPHIRE_LV2(38928, 17818, 0.035, false), SUPERIOR_RUBY_LV10(81514, 39658, 1, 0.23, true, false),
SAPPHIRE_LV3(38929, 17819, 0.075, false),
SAPPHIRE_LV4(38930, 17820, 0.125, false), SAPPHIRE_LV1(38927, 17818, 1, 0.01, false, true),
SAPPHIRE_LV5(38931, 17821, 0.2, false), SAPPHIRE_LV2(38928, 17818, 1, 0.035, false, true),
GREATER_SAPPHIRE_LV1(47689, 18718, 0.2, false), SAPPHIRE_LV3(38929, 17819, 1, 0.075, false, true),
GREATER_SAPPHIRE_LV2(48775, 18718, 0.2, false), SAPPHIRE_LV4(38930, 17820, 1, 0.125, false, true),
GREATER_SAPPHIRE_LV3(48776, 18718, 0.2, false), SAPPHIRE_LV5(38931, 17821, 1, 0.2, false, true),
GREATER_SAPPHIRE_LV4(48777, 18718, 0.2, false),
GREATER_SAPPHIRE_LV5(48778, 18718, 0.2, false), GREATER_SAPPHIRE_LV1(47689, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV1(81515, 39660, 0.23, false), GREATER_SAPPHIRE_LV2(48775, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV2(81516, 39660, 0.23, false), GREATER_SAPPHIRE_LV3(48776, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV3(81517, 39660, 0.23, false), GREATER_SAPPHIRE_LV4(48777, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV4(81518, 39660, 0.23, false), GREATER_SAPPHIRE_LV5(48778, 18718, 1, 0.2, false, true),
SUPERIOR_SAPPHIRE_LV5(81519, 39660, 0.23, false),
SUPERIOR_SAPPHIRE_LV6(81520, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV1(81515, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV7(81521, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV2(81516, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV8(81522, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV3(81517, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV9(81523, 39660, 0.23, false), SUPERIOR_SAPPHIRE_LV4(81518, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV10(81524, 39660, 0.23, false); SUPERIOR_SAPPHIRE_LV5(81519, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV6(81520, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV7(81521, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV8(81522, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV9(81523, 39660, 1, 0.23, false, true),
SUPERIOR_SAPPHIRE_LV10(81524, 39660, 1, 0.23, false, true);
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -80,9 +89,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -94,4 +108,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -9095,7 +9095,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -112,7 +112,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -109,7 +109,7 @@ public class SoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class SpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -21,41 +21,43 @@ package org.l2jmobius.gameserver.enums;
*/ */
public enum BroochJewel public enum BroochJewel
{ {
// Working effect RUBY_LV1(70451, 17817, 1, 0.02, true, false),
RUBY_LV1(70451, 17817, 0.02, true), RUBY_LV2(70452, 17817, 1, 0.03, true, false),
RUBY_LV2(70452, 17817, 0.03, true), RUBY_LV3(70453, 17817, 1, 0.05, true, false),
RUBY_LV3(70453, 17817, 0.05, true), RUBY_LV4(70454, 17817, 1, 0.08, true, false),
RUBY_LV4(70454, 17817, 0.08, true), RUBY_LV5(70455, 17817, 1, 0.16, true, false),
RUBY_LV5(70455, 17817, 0.16, true), GREATER_RUBY_LV1(71368, 17817, 1, 0.17, true, false), // + 1% p atk
GREATER_RUBY_LV1(71368, 17817, 0.17, true), // + 1% p atk GREATER_RUBY_LV2(71369, 17817, 1, 0.18, true, false), // + 2% p atk
GREATER_RUBY_LV2(71369, 17817, 0.18, true), // + 2% p atk GREATER_RUBY_LV3(71370, 17817, 1, 0.19, true, false), // + 3% p atk
GREATER_RUBY_LV3(71370, 17817, 0.19, true), // + 3% p atk GREATER_RUBY_LV4(71371, 17817, 1, 0.20, true, false), // + 5% p atk
GREATER_RUBY_LV4(71371, 17817, 0.20, true), // + 5% p atk GREATER_RUBY_LV5(71372, 17817, 1, 0.20, true, false), // + 7% p atk + crit. p. rate +10%
GREATER_RUBY_LV5(71372, 17817, 0.20, true), // + 7% p atk + crit. p. rate +10%
// Working effect SAPPHIRE_LV1(70456, 17821, 1, 0.02, false, true),
SHAPPHIRE_LV1(70456, 17821, 0.02, false), SAPPHIRE_LV2(70457, 17821, 1, 0.03, false, true),
SHAPPHIRE_LV2(70457, 17821, 0.03, false), SAPPHIRE_LV3(70458, 17821, 1, 0.05, false, true),
SHAPPHIRE_LV3(70458, 17821, 0.05, false), SAPPHIRE_LV4(70459, 17821, 1, 0.08, false, true),
SHAPPHIRE_LV4(70459, 17821, 0.08, false), SAPPHIRE_LV5(70460, 17821, 1, 0.16, false, true),
SHAPPHIRE_LV5(70460, 17821, 0.16, false), GREATER_SAPPHIRE_LV1(71373, 17821, 1, 00.17, false, true), // + 2 % m attack
GREATER_SHAPPHIRE_LV1(71373, 17821, 00.17, false), // + 2 % m attack GREATER_SAPPHIRE_LV2(71374, 17821, 1, 00.18, false, true), // + 4 % m attack
GREATER_SHAPPHIRE_LV2(71374, 17821, 00.18, false), // + 4 % m attack GREATER_SAPPHIRE_LV3(71375, 17821, 1, 00.19, false, true), // + 6 % m attack
GREATER_SHAPPHIRE_LV3(71375, 17821, 00.19, false), // + 6 % m attack GREATER_SAPPHIRE_LV4(71376, 17821, 1, 00.20, false, true), // + 10 % m attack
GREATER_SHAPPHIRE_LV4(71376, 17821, 00.20, false), // + 10 % m attack GREATER_SAPPHIRE_LV5(71377, 17821, 1, 00.20, false, true); // + 14 % m attack + crit. m. rate +10%
GREATER_SHAPPHIRE_LV5(71377, 17821, 00.20, false); // + 14 % m attack + crit. m. rate +10%
private int _itemId; private int _itemId;
private int _effectId; private int _skillId;
private int _skillLevel;
private double _bonus; private double _bonus;
private boolean _isRuby; // If not, it is sapphire. private boolean _isRuby;
private boolean _isSapphire;
private BroochJewel(int itemId, int effectId, double bonus, boolean isRuby) private BroochJewel(int itemId, int skillId, int skillLevel, double bonus, boolean isRuby, boolean isSapphire)
{ {
_itemId = itemId; _itemId = itemId;
_effectId = effectId; _skillId = skillId;
_skillLevel = skillLevel;
_bonus = bonus; _bonus = bonus;
_isRuby = isRuby; _isRuby = isRuby;
_isSapphire = isSapphire;
} }
public int getItemId() public int getItemId()
@@ -63,9 +65,14 @@ public enum BroochJewel
return _itemId; return _itemId;
} }
public int getEffectId() public int getSkillId()
{ {
return _effectId; return _skillId;
}
public int getSkillLevel()
{
return _skillLevel;
} }
public double getBonus() public double getBonus()
@@ -77,4 +84,9 @@ public enum BroochJewel
{ {
return _isRuby; return _isRuby;
} }
public boolean isSapphire()
{
return _isSapphire;
}
} }
@@ -8783,7 +8783,7 @@ public class Player extends Playable
for (int i = broochJewels.length - 1; i > 0; i--) for (int i = broochJewels.length - 1; i > 0; i--)
{ {
final BroochJewel jewel = broochJewels[i]; final BroochJewel jewel = broochJewels[i];
if (!jewel.isRuby() && _inventory.isItemEquipped(jewel.getItemId())) if (jewel.isSapphire() && _inventory.isItemEquipped(jewel.getItemId()))
{ {
setActiveShappireJewel(jewel); setActiveShappireJewel(jewel);
break; break;
@@ -126,7 +126,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -143,7 +143,7 @@ public class BeastSoulShot implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (activeOwner.getActiveRubyJewel() != null) if (activeOwner.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveRubyJewel().getSkillId(), activeOwner.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -127,7 +127,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(pet, pet, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -144,7 +144,7 @@ public class BeastSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (activeOwner.getActiveShappireJewel() != null) if (activeOwner.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getEffectId(), 2, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(activeOwner, new MagicSkillUse(s, s, activeOwner.getActiveShappireJewel().getSkillId(), activeOwner.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -112,7 +112,7 @@ public class BlessedSoulShots implements IItemHandler
// Visual effect change if player has equipped Ruby level 3 or higher // Visual effect change if player has equipped Ruby level 3 or higher
if (player.getActiveRubyJewel() != null) if (player.getActiveRubyJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveRubyJewel().getSkillId(), player.getActiveRubyJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {
@@ -104,7 +104,7 @@ public class BlessedSpiritShot implements IItemHandler
// Visual effect change if player has equipped Sapphire level 3 or higher // Visual effect change if player has equipped Sapphire level 3 or higher
if (player.getActiveShappireJewel() != null) if (player.getActiveShappireJewel() != null)
{ {
Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getEffectId(), 1, 0, 0), 600); Broadcast.toSelfAndKnownPlayersInRadius(player, new MagicSkillUse(player, player, player.getActiveShappireJewel().getSkillId(), player.getActiveShappireJewel().getSkillLevel(), 0, 0), 600);
} }
else else
{ {

Some files were not shown because too many files have changed in this diff Show More