Elemental spirit related cleanup.
This commit is contained in:
parent
a0ee3599f5
commit
27176333cf
@ -64,21 +64,21 @@ public class ElementalSpirit
|
||||
_template = ElementalSpiritData.getInstance().getSpirit(data.getType(), data.getStage());
|
||||
}
|
||||
|
||||
public void addExperience(long experience)
|
||||
public void addExperience(int experience)
|
||||
{
|
||||
if ((getLevel() == getMaxLevel()) && ((getExperience() + experience) > getExperienceToNextLevel()))
|
||||
if ((_data.getLevel() == _template.getMaxLevel()) && (_data.getExperience() >= _template.getMaxExperienceAtLevel(_template.getMaxLevel())))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_data.addExperience(experience);
|
||||
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.OBTAINED_S2_ATTRIBUTE_XP_OF_S1).addInt((int) experience).addElementalSpirit(getType()));
|
||||
_owner.sendPacket(new ExElementalSpiritGetExp(_data.getType(), _data.getExperience()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.OBTAINED_S2_ATTRIBUTE_XP_OF_S1).addInt(experience).addElementalSpirit(getType()));
|
||||
|
||||
if (getExperience() > getExperienceToNextLevel())
|
||||
if (_data.getExperience() > getExperienceToNextLevel())
|
||||
{
|
||||
levelUp();
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(getType()).addByte(_data.getLevel()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(_data.getType()).addByte(_data.getLevel()));
|
||||
_owner.sendPacket(new ElementalSpiritInfo(_owner, _owner.getActiveElementalSpiritType(), (byte) 0));
|
||||
final UserInfo userInfo = new UserInfo(_owner);
|
||||
userInfo.addComponentType(UserInfoType.ATT_SPIRITS);
|
||||
@ -90,7 +90,7 @@ public class ElementalSpirit
|
||||
{
|
||||
do
|
||||
{
|
||||
if (_data.getLevel() < getMaxLevel())
|
||||
if (_data.getLevel() < _template.getMaxLevel())
|
||||
{
|
||||
_data.increaseLevel();
|
||||
}
|
||||
@ -104,8 +104,8 @@ public class ElementalSpirit
|
||||
|
||||
public void reduceLevel()
|
||||
{
|
||||
_data.setLevel((byte) Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)));
|
||||
_data.setLevel(Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage()).getMaxExperienceAtLevel(_data.getLevel() - 1));
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
@ -134,27 +134,27 @@ public class ElementalSpirit
|
||||
int amount = Math.round(_data.getExperience() / ElementalSpiritData.FRAGMENT_XP_CONSUME);
|
||||
if (getLevel() > 1)
|
||||
{
|
||||
amount += ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)) / ElementalSpiritData.FRAGMENT_XP_CONSUME;
|
||||
amount += ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage()).getMaxExperienceAtLevel(getLevel() - 1) / ElementalSpiritData.FRAGMENT_XP_CONSUME;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void resetStage()
|
||||
{
|
||||
_data.setLevel((byte) 1);
|
||||
_data.setLevel(1);
|
||||
_data.setExperience(0);
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
public boolean canEvolve()
|
||||
{
|
||||
return (getStage() < 3) && (getLevel() == 10) && (getExperience() == getExperienceToNextLevel());
|
||||
return (_data.getStage() < 3) && (_data.getLevel() == 10) && (_data.getExperience() == getExperienceToNextLevel());
|
||||
}
|
||||
|
||||
public void upgrade()
|
||||
{
|
||||
_data.increaseStage();
|
||||
_data.setLevel((byte) 1);
|
||||
_data.setLevel(1);
|
||||
_data.setExperience(0);
|
||||
_template = ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage());
|
||||
EventDispatcher.getInstance().notifyEventAsync(new OnElementalSpiritUpgrade(_owner, this), _owner);
|
||||
@ -193,7 +193,7 @@ public class ElementalSpirit
|
||||
return _template.getMaxExperienceAtLevel(_data.getLevel());
|
||||
}
|
||||
|
||||
public byte getLevel()
|
||||
public int getLevel()
|
||||
{
|
||||
return _data.getLevel();
|
||||
}
|
||||
|
@ -724,7 +724,7 @@ public class Attackable extends Npc
|
||||
{
|
||||
if ((player.getActiveElementalSpiritType() > 0) && (getAttributeExp() > 0) && (getElementalSpiritType() != ElementalType.NONE))
|
||||
{
|
||||
final long attributeExp = (long) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus());
|
||||
final int attributeExp = (int) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus());
|
||||
final ElementalSpirit spirit = player.getElementalSpirit(getElementalSpiritType().getSuperior());
|
||||
if (spirit != null)
|
||||
{
|
||||
|
@ -22,8 +22,8 @@ package org.l2jmobius.gameserver.model.holders;
|
||||
public class ElementalSpiritDataHolder
|
||||
{
|
||||
private int _charId;
|
||||
private int _level = 1;
|
||||
private byte _type;
|
||||
private byte _level = 1;
|
||||
private byte _stage = 1;
|
||||
private long _experience;
|
||||
private byte _attackPoints;
|
||||
@ -52,6 +52,16 @@ public class ElementalSpiritDataHolder
|
||||
_charId = charId;
|
||||
}
|
||||
|
||||
public int getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public void setLevel(int level)
|
||||
{
|
||||
_level = level;
|
||||
}
|
||||
|
||||
public byte getType()
|
||||
{
|
||||
return _type;
|
||||
@ -62,16 +72,6 @@ public class ElementalSpiritDataHolder
|
||||
_type = type;
|
||||
}
|
||||
|
||||
public byte getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public void setLevel(byte level)
|
||||
{
|
||||
_level = level;
|
||||
}
|
||||
|
||||
public byte getStage()
|
||||
{
|
||||
return _stage;
|
||||
|
@ -33,7 +33,7 @@ public class ElementalSpiritTemplateHolder
|
||||
private final int _maxCharacteristics;
|
||||
private final int _extractItem;
|
||||
|
||||
private final Map<Byte, SpiritLevel> _levels;
|
||||
private final Map<Integer, SpiritLevel> _levels;
|
||||
private List<ItemHolder> _itemsToEvolve;
|
||||
private List<ElementalSpiritAbsorbItemHolder> _absorbItems;
|
||||
|
||||
@ -55,7 +55,7 @@ public class ElementalSpiritTemplateHolder
|
||||
spiritLevel.criticalRate = criticalRate;
|
||||
spiritLevel.criticalDamage = criticalDamage;
|
||||
spiritLevel.maxExperience = maxExperience;
|
||||
_levels.put((byte) level, spiritLevel);
|
||||
_levels.put(level, spiritLevel);
|
||||
}
|
||||
|
||||
public void addItemToEvolve(Integer itemId, Integer count)
|
||||
@ -82,7 +82,7 @@ public class ElementalSpiritTemplateHolder
|
||||
return _npcId;
|
||||
}
|
||||
|
||||
public long getMaxExperienceAtLevel(byte level)
|
||||
public long getMaxExperienceAtLevel(int level)
|
||||
{
|
||||
final SpiritLevel spiritLevel = _levels.get(level);
|
||||
return spiritLevel == null ? 0 : spiritLevel.maxExperience;
|
||||
@ -93,22 +93,22 @@ public class ElementalSpiritTemplateHolder
|
||||
return _levels.size();
|
||||
}
|
||||
|
||||
public int getAttackAtLevel(byte level)
|
||||
public int getAttackAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).attack;
|
||||
}
|
||||
|
||||
public int getDefenseAtLevel(byte level)
|
||||
public int getDefenseAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).defense;
|
||||
}
|
||||
|
||||
public int getCriticalRateAtLevel(byte level)
|
||||
public int getCriticalRateAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).criticalRate;
|
||||
}
|
||||
|
||||
public int getCriticalDamageAtLevel(byte level)
|
||||
public int getCriticalDamageAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).criticalDamage;
|
||||
}
|
||||
|
@ -64,21 +64,21 @@ public class ElementalSpirit
|
||||
_template = ElementalSpiritData.getInstance().getSpirit(data.getType(), data.getStage());
|
||||
}
|
||||
|
||||
public void addExperience(long experience)
|
||||
public void addExperience(int experience)
|
||||
{
|
||||
if ((getLevel() == getMaxLevel()) && ((getExperience() + experience) > getExperienceToNextLevel()))
|
||||
if ((_data.getLevel() == _template.getMaxLevel()) && (_data.getExperience() >= _template.getMaxExperienceAtLevel(_template.getMaxLevel())))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_data.addExperience(experience);
|
||||
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.OBTAINED_S2_ATTRIBUTE_XP_OF_S1).addInt((int) experience).addElementalSpirit(getType()));
|
||||
_owner.sendPacket(new ExElementalSpiritGetExp(_data.getType(), _data.getExperience()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.OBTAINED_S2_ATTRIBUTE_XP_OF_S1).addInt(experience).addElementalSpirit(getType()));
|
||||
|
||||
if (getExperience() > getExperienceToNextLevel())
|
||||
if (_data.getExperience() > getExperienceToNextLevel())
|
||||
{
|
||||
levelUp();
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(getType()).addByte(_data.getLevel()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(_data.getType()).addByte(_data.getLevel()));
|
||||
_owner.sendPacket(new ElementalSpiritInfo(_owner, _owner.getActiveElementalSpiritType(), (byte) 0));
|
||||
final UserInfo userInfo = new UserInfo(_owner);
|
||||
userInfo.addComponentType(UserInfoType.ATT_SPIRITS);
|
||||
@ -90,7 +90,7 @@ public class ElementalSpirit
|
||||
{
|
||||
do
|
||||
{
|
||||
if (_data.getLevel() < getMaxLevel())
|
||||
if (_data.getLevel() < _template.getMaxLevel())
|
||||
{
|
||||
_data.increaseLevel();
|
||||
}
|
||||
@ -104,8 +104,8 @@ public class ElementalSpirit
|
||||
|
||||
public void reduceLevel()
|
||||
{
|
||||
_data.setLevel((byte) Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)));
|
||||
_data.setLevel(Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage()).getMaxExperienceAtLevel(_data.getLevel() - 1));
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
@ -134,27 +134,27 @@ public class ElementalSpirit
|
||||
int amount = Math.round(_data.getExperience() / ElementalSpiritData.FRAGMENT_XP_CONSUME);
|
||||
if (getLevel() > 1)
|
||||
{
|
||||
amount += ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)) / ElementalSpiritData.FRAGMENT_XP_CONSUME;
|
||||
amount += ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage()).getMaxExperienceAtLevel(getLevel() - 1) / ElementalSpiritData.FRAGMENT_XP_CONSUME;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void resetStage()
|
||||
{
|
||||
_data.setLevel((byte) 1);
|
||||
_data.setLevel(1);
|
||||
_data.setExperience(0);
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
public boolean canEvolve()
|
||||
{
|
||||
return (getStage() < 3) && (getLevel() == 10) && (getExperience() == getExperienceToNextLevel());
|
||||
return (_data.getStage() < 3) && (_data.getLevel() == 10) && (_data.getExperience() == getExperienceToNextLevel());
|
||||
}
|
||||
|
||||
public void upgrade()
|
||||
{
|
||||
_data.increaseStage();
|
||||
_data.setLevel((byte) 1);
|
||||
_data.setLevel(1);
|
||||
_data.setExperience(0);
|
||||
_template = ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage());
|
||||
EventDispatcher.getInstance().notifyEventAsync(new OnElementalSpiritUpgrade(_owner, this), _owner);
|
||||
@ -193,7 +193,7 @@ public class ElementalSpirit
|
||||
return _template.getMaxExperienceAtLevel(_data.getLevel());
|
||||
}
|
||||
|
||||
public byte getLevel()
|
||||
public int getLevel()
|
||||
{
|
||||
return _data.getLevel();
|
||||
}
|
||||
|
@ -724,7 +724,7 @@ public class Attackable extends Npc
|
||||
{
|
||||
if ((player.getActiveElementalSpiritType() > 0) && (getAttributeExp() > 0) && (getElementalSpiritType() != ElementalType.NONE))
|
||||
{
|
||||
final long attributeExp = (long) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus());
|
||||
final int attributeExp = (int) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus());
|
||||
final ElementalSpirit spirit = player.getElementalSpirit(getElementalSpiritType().getSuperior());
|
||||
if (spirit != null)
|
||||
{
|
||||
|
@ -22,8 +22,8 @@ package org.l2jmobius.gameserver.model.holders;
|
||||
public class ElementalSpiritDataHolder
|
||||
{
|
||||
private int _charId;
|
||||
private int _level = 1;
|
||||
private byte _type;
|
||||
private byte _level = 1;
|
||||
private byte _stage = 1;
|
||||
private long _experience;
|
||||
private byte _attackPoints;
|
||||
@ -52,6 +52,16 @@ public class ElementalSpiritDataHolder
|
||||
_charId = charId;
|
||||
}
|
||||
|
||||
public int getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public void setLevel(int level)
|
||||
{
|
||||
_level = level;
|
||||
}
|
||||
|
||||
public byte getType()
|
||||
{
|
||||
return _type;
|
||||
@ -62,16 +72,6 @@ public class ElementalSpiritDataHolder
|
||||
_type = type;
|
||||
}
|
||||
|
||||
public byte getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public void setLevel(byte level)
|
||||
{
|
||||
_level = level;
|
||||
}
|
||||
|
||||
public byte getStage()
|
||||
{
|
||||
return _stage;
|
||||
|
@ -33,7 +33,7 @@ public class ElementalSpiritTemplateHolder
|
||||
private final int _maxCharacteristics;
|
||||
private final int _extractItem;
|
||||
|
||||
private final Map<Byte, SpiritLevel> _levels;
|
||||
private final Map<Integer, SpiritLevel> _levels;
|
||||
private List<ItemHolder> _itemsToEvolve;
|
||||
private List<ElementalSpiritAbsorbItemHolder> _absorbItems;
|
||||
|
||||
@ -55,7 +55,7 @@ public class ElementalSpiritTemplateHolder
|
||||
spiritLevel.criticalRate = criticalRate;
|
||||
spiritLevel.criticalDamage = criticalDamage;
|
||||
spiritLevel.maxExperience = maxExperience;
|
||||
_levels.put((byte) level, spiritLevel);
|
||||
_levels.put(level, spiritLevel);
|
||||
}
|
||||
|
||||
public void addItemToEvolve(Integer itemId, Integer count)
|
||||
@ -82,7 +82,7 @@ public class ElementalSpiritTemplateHolder
|
||||
return _npcId;
|
||||
}
|
||||
|
||||
public long getMaxExperienceAtLevel(byte level)
|
||||
public long getMaxExperienceAtLevel(int level)
|
||||
{
|
||||
final SpiritLevel spiritLevel = _levels.get(level);
|
||||
return spiritLevel == null ? 0 : spiritLevel.maxExperience;
|
||||
@ -93,22 +93,22 @@ public class ElementalSpiritTemplateHolder
|
||||
return _levels.size();
|
||||
}
|
||||
|
||||
public int getAttackAtLevel(byte level)
|
||||
public int getAttackAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).attack;
|
||||
}
|
||||
|
||||
public int getDefenseAtLevel(byte level)
|
||||
public int getDefenseAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).defense;
|
||||
}
|
||||
|
||||
public int getCriticalRateAtLevel(byte level)
|
||||
public int getCriticalRateAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).criticalRate;
|
||||
}
|
||||
|
||||
public int getCriticalDamageAtLevel(byte level)
|
||||
public int getCriticalDamageAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).criticalDamage;
|
||||
}
|
||||
|
@ -64,21 +64,21 @@ public class ElementalSpirit
|
||||
_template = ElementalSpiritData.getInstance().getSpirit(data.getType(), data.getStage());
|
||||
}
|
||||
|
||||
public void addExperience(long experience)
|
||||
public void addExperience(int experience)
|
||||
{
|
||||
if ((getLevel() == getMaxLevel()) && ((getExperience() + experience) > getExperienceToNextLevel()))
|
||||
if ((_data.getLevel() == _template.getMaxLevel()) && (_data.getExperience() >= _template.getMaxExperienceAtLevel(_template.getMaxLevel())))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_data.addExperience(experience);
|
||||
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.OBTAINED_S2_ATTRIBUTE_XP_OF_S1).addInt((int) experience).addElementalSpirit(getType()));
|
||||
_owner.sendPacket(new ExElementalSpiritGetExp(_data.getType(), _data.getExperience()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.OBTAINED_S2_ATTRIBUTE_XP_OF_S1).addInt(experience).addElementalSpirit(getType()));
|
||||
|
||||
if (getExperience() > getExperienceToNextLevel())
|
||||
if (_data.getExperience() > getExperienceToNextLevel())
|
||||
{
|
||||
levelUp();
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(getType()).addByte(_data.getLevel()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(_data.getType()).addByte(_data.getLevel()));
|
||||
_owner.sendPacket(new ElementalSpiritInfo(_owner, _owner.getActiveElementalSpiritType(), (byte) 0));
|
||||
final UserInfo userInfo = new UserInfo(_owner);
|
||||
userInfo.addComponentType(UserInfoType.ATT_SPIRITS);
|
||||
@ -90,7 +90,7 @@ public class ElementalSpirit
|
||||
{
|
||||
do
|
||||
{
|
||||
if (_data.getLevel() < getMaxLevel())
|
||||
if (_data.getLevel() < _template.getMaxLevel())
|
||||
{
|
||||
_data.increaseLevel();
|
||||
}
|
||||
@ -104,8 +104,8 @@ public class ElementalSpirit
|
||||
|
||||
public void reduceLevel()
|
||||
{
|
||||
_data.setLevel((byte) Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)));
|
||||
_data.setLevel(Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage()).getMaxExperienceAtLevel(_data.getLevel() - 1));
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
@ -134,27 +134,27 @@ public class ElementalSpirit
|
||||
int amount = Math.round(_data.getExperience() / ElementalSpiritData.FRAGMENT_XP_CONSUME);
|
||||
if (getLevel() > 1)
|
||||
{
|
||||
amount += ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)) / ElementalSpiritData.FRAGMENT_XP_CONSUME;
|
||||
amount += ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage()).getMaxExperienceAtLevel(getLevel() - 1) / ElementalSpiritData.FRAGMENT_XP_CONSUME;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void resetStage()
|
||||
{
|
||||
_data.setLevel((byte) 1);
|
||||
_data.setLevel(1);
|
||||
_data.setExperience(0);
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
public boolean canEvolve()
|
||||
{
|
||||
return (getStage() < 3) && (getLevel() == 10) && (getExperience() == getExperienceToNextLevel());
|
||||
return (_data.getStage() < 3) && (_data.getLevel() == 10) && (_data.getExperience() == getExperienceToNextLevel());
|
||||
}
|
||||
|
||||
public void upgrade()
|
||||
{
|
||||
_data.increaseStage();
|
||||
_data.setLevel((byte) 1);
|
||||
_data.setLevel(1);
|
||||
_data.setExperience(0);
|
||||
_template = ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage());
|
||||
EventDispatcher.getInstance().notifyEventAsync(new OnElementalSpiritUpgrade(_owner, this), _owner);
|
||||
@ -193,7 +193,7 @@ public class ElementalSpirit
|
||||
return _template.getMaxExperienceAtLevel(_data.getLevel());
|
||||
}
|
||||
|
||||
public byte getLevel()
|
||||
public int getLevel()
|
||||
{
|
||||
return _data.getLevel();
|
||||
}
|
||||
|
@ -724,7 +724,7 @@ public class Attackable extends Npc
|
||||
{
|
||||
if ((player.getActiveElementalSpiritType() > 0) && (getAttributeExp() > 0) && (getElementalSpiritType() != ElementalType.NONE))
|
||||
{
|
||||
final long attributeExp = (long) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus());
|
||||
final int attributeExp = (int) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus());
|
||||
final ElementalSpirit spirit = player.getElementalSpirit(getElementalSpiritType().getSuperior());
|
||||
if (spirit != null)
|
||||
{
|
||||
|
@ -22,8 +22,8 @@ package org.l2jmobius.gameserver.model.holders;
|
||||
public class ElementalSpiritDataHolder
|
||||
{
|
||||
private int _charId;
|
||||
private int _level = 1;
|
||||
private byte _type;
|
||||
private byte _level = 1;
|
||||
private byte _stage = 1;
|
||||
private long _experience;
|
||||
private byte _attackPoints;
|
||||
@ -52,6 +52,16 @@ public class ElementalSpiritDataHolder
|
||||
_charId = charId;
|
||||
}
|
||||
|
||||
public int getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public void setLevel(int level)
|
||||
{
|
||||
_level = level;
|
||||
}
|
||||
|
||||
public byte getType()
|
||||
{
|
||||
return _type;
|
||||
@ -62,16 +72,6 @@ public class ElementalSpiritDataHolder
|
||||
_type = type;
|
||||
}
|
||||
|
||||
public byte getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public void setLevel(byte level)
|
||||
{
|
||||
_level = level;
|
||||
}
|
||||
|
||||
public byte getStage()
|
||||
{
|
||||
return _stage;
|
||||
|
@ -33,7 +33,7 @@ public class ElementalSpiritTemplateHolder
|
||||
private final int _maxCharacteristics;
|
||||
private final int _extractItem;
|
||||
|
||||
private final Map<Byte, SpiritLevel> _levels;
|
||||
private final Map<Integer, SpiritLevel> _levels;
|
||||
private List<ItemHolder> _itemsToEvolve;
|
||||
private List<ElementalSpiritAbsorbItemHolder> _absorbItems;
|
||||
|
||||
@ -55,7 +55,7 @@ public class ElementalSpiritTemplateHolder
|
||||
spiritLevel.criticalRate = criticalRate;
|
||||
spiritLevel.criticalDamage = criticalDamage;
|
||||
spiritLevel.maxExperience = maxExperience;
|
||||
_levels.put((byte) level, spiritLevel);
|
||||
_levels.put(level, spiritLevel);
|
||||
}
|
||||
|
||||
public void addItemToEvolve(Integer itemId, Integer count)
|
||||
@ -82,7 +82,7 @@ public class ElementalSpiritTemplateHolder
|
||||
return _npcId;
|
||||
}
|
||||
|
||||
public long getMaxExperienceAtLevel(byte level)
|
||||
public long getMaxExperienceAtLevel(int level)
|
||||
{
|
||||
final SpiritLevel spiritLevel = _levels.get(level);
|
||||
return spiritLevel == null ? 0 : spiritLevel.maxExperience;
|
||||
@ -93,22 +93,22 @@ public class ElementalSpiritTemplateHolder
|
||||
return _levels.size();
|
||||
}
|
||||
|
||||
public int getAttackAtLevel(byte level)
|
||||
public int getAttackAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).attack;
|
||||
}
|
||||
|
||||
public int getDefenseAtLevel(byte level)
|
||||
public int getDefenseAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).defense;
|
||||
}
|
||||
|
||||
public int getCriticalRateAtLevel(byte level)
|
||||
public int getCriticalRateAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).criticalRate;
|
||||
}
|
||||
|
||||
public int getCriticalDamageAtLevel(byte level)
|
||||
public int getCriticalDamageAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).criticalDamage;
|
||||
}
|
||||
|
@ -64,21 +64,21 @@ public class ElementalSpirit
|
||||
_template = ElementalSpiritData.getInstance().getSpirit(data.getType(), data.getStage());
|
||||
}
|
||||
|
||||
public void addExperience(long experience)
|
||||
public void addExperience(int experience)
|
||||
{
|
||||
if ((getLevel() == getMaxLevel()) && ((getExperience() + experience) > getExperienceToNextLevel()))
|
||||
if ((_data.getLevel() == _template.getMaxLevel()) && (_data.getExperience() >= _template.getMaxExperienceAtLevel(_template.getMaxLevel())))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_data.addExperience(experience);
|
||||
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S1_S2_ATTRIBUTE_XP).addInt((int) experience).addElementalSpirit(getType()));
|
||||
_owner.sendPacket(new ExElementalSpiritGetExp(_data.getType(), _data.getExperience()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S1_S2_ATTRIBUTE_XP).addInt(experience).addElementalSpirit(_data.getType()));
|
||||
|
||||
if (getExperience() > getExperienceToNextLevel())
|
||||
if (_data.getExperience() > getExperienceToNextLevel())
|
||||
{
|
||||
levelUp();
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(getType()).addByte(_data.getLevel()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(_data.getType()).addByte(_data.getLevel()));
|
||||
_owner.sendPacket(new ElementalSpiritInfo(_owner, _owner.getActiveElementalSpiritType(), (byte) 0));
|
||||
final UserInfo userInfo = new UserInfo(_owner);
|
||||
userInfo.addComponentType(UserInfoType.ATT_SPIRITS);
|
||||
@ -90,7 +90,7 @@ public class ElementalSpirit
|
||||
{
|
||||
do
|
||||
{
|
||||
if (_data.getLevel() < getMaxLevel())
|
||||
if (_data.getLevel() < _template.getMaxLevel())
|
||||
{
|
||||
_data.increaseLevel();
|
||||
}
|
||||
@ -104,8 +104,8 @@ public class ElementalSpirit
|
||||
|
||||
public void reduceLevel()
|
||||
{
|
||||
_data.setLevel((byte) Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)));
|
||||
_data.setLevel(Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage()).getMaxExperienceAtLevel(_data.getLevel() - 1));
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
@ -134,27 +134,27 @@ public class ElementalSpirit
|
||||
int amount = Math.round(_data.getExperience() / ElementalSpiritData.FRAGMENT_XP_CONSUME);
|
||||
if (getLevel() > 1)
|
||||
{
|
||||
amount += ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)) / ElementalSpiritData.FRAGMENT_XP_CONSUME;
|
||||
amount += ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage()).getMaxExperienceAtLevel(getLevel() - 1) / ElementalSpiritData.FRAGMENT_XP_CONSUME;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void resetStage()
|
||||
{
|
||||
_data.setLevel((byte) 1);
|
||||
_data.setLevel(1);
|
||||
_data.setExperience(0);
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
public boolean canEvolve()
|
||||
{
|
||||
return (getStage() < 5) && (getLevel() == 10) && (getExperience() == getExperienceToNextLevel());
|
||||
return (_data.getStage() < 5) && (_data.getLevel() == 10) && (_data.getExperience() == getExperienceToNextLevel());
|
||||
}
|
||||
|
||||
public void upgrade()
|
||||
{
|
||||
_data.increaseStage();
|
||||
_data.setLevel((byte) 1);
|
||||
_data.setLevel(1);
|
||||
_data.setExperience(0);
|
||||
_template = ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage());
|
||||
EventDispatcher.getInstance().notifyEventAsync(new OnElementalSpiritUpgrade(_owner, this), _owner);
|
||||
@ -193,7 +193,7 @@ public class ElementalSpirit
|
||||
return _template.getMaxExperienceAtLevel(_data.getLevel());
|
||||
}
|
||||
|
||||
public byte getLevel()
|
||||
public int getLevel()
|
||||
{
|
||||
return _data.getLevel();
|
||||
}
|
||||
|
@ -729,7 +729,7 @@ public class Attackable extends Npc
|
||||
{
|
||||
if ((player.getActiveElementalSpiritType() > 0) && (getAttributeExp() > 0) && (getElementalSpiritType() != ElementalType.NONE))
|
||||
{
|
||||
final long attributeExp = (long) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus());
|
||||
final int attributeExp = (int) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus());
|
||||
final ElementalSpirit spirit = player.getElementalSpirit(getElementalSpiritType().getSuperior());
|
||||
if (spirit != null)
|
||||
{
|
||||
|
@ -22,8 +22,8 @@ package org.l2jmobius.gameserver.model.holders;
|
||||
public class ElementalSpiritDataHolder
|
||||
{
|
||||
private int _charId;
|
||||
private int _level = 1;
|
||||
private byte _type;
|
||||
private byte _level = 1;
|
||||
private byte _stage = 1;
|
||||
private long _experience;
|
||||
private byte _attackPoints;
|
||||
@ -52,6 +52,16 @@ public class ElementalSpiritDataHolder
|
||||
_charId = charId;
|
||||
}
|
||||
|
||||
public int getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public void setLevel(int level)
|
||||
{
|
||||
_level = level;
|
||||
}
|
||||
|
||||
public byte getType()
|
||||
{
|
||||
return _type;
|
||||
@ -62,16 +72,6 @@ public class ElementalSpiritDataHolder
|
||||
_type = type;
|
||||
}
|
||||
|
||||
public byte getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public void setLevel(byte level)
|
||||
{
|
||||
_level = level;
|
||||
}
|
||||
|
||||
public byte getStage()
|
||||
{
|
||||
return _stage;
|
||||
|
@ -33,7 +33,7 @@ public class ElementalSpiritTemplateHolder
|
||||
private final int _maxCharacteristics;
|
||||
private final int _extractItem;
|
||||
|
||||
private final Map<Byte, SpiritLevel> _levels;
|
||||
private final Map<Integer, SpiritLevel> _levels;
|
||||
private List<ItemHolder> _itemsToEvolve;
|
||||
private List<ElementalSpiritAbsorbItemHolder> _absorbItems;
|
||||
|
||||
@ -55,7 +55,7 @@ public class ElementalSpiritTemplateHolder
|
||||
spiritLevel.criticalRate = criticalRate;
|
||||
spiritLevel.criticalDamage = criticalDamage;
|
||||
spiritLevel.maxExperience = maxExperience;
|
||||
_levels.put((byte) level, spiritLevel);
|
||||
_levels.put(level, spiritLevel);
|
||||
}
|
||||
|
||||
public void addItemToEvolve(Integer itemId, Integer count)
|
||||
@ -82,7 +82,7 @@ public class ElementalSpiritTemplateHolder
|
||||
return _npcId;
|
||||
}
|
||||
|
||||
public long getMaxExperienceAtLevel(byte level)
|
||||
public long getMaxExperienceAtLevel(int level)
|
||||
{
|
||||
final SpiritLevel spiritLevel = _levels.get(level);
|
||||
return spiritLevel == null ? 0 : spiritLevel.maxExperience;
|
||||
@ -93,22 +93,22 @@ public class ElementalSpiritTemplateHolder
|
||||
return _levels.size();
|
||||
}
|
||||
|
||||
public int getAttackAtLevel(byte level)
|
||||
public int getAttackAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).attack;
|
||||
}
|
||||
|
||||
public int getDefenseAtLevel(byte level)
|
||||
public int getDefenseAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).defense;
|
||||
}
|
||||
|
||||
public int getCriticalRateAtLevel(byte level)
|
||||
public int getCriticalRateAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).criticalRate;
|
||||
}
|
||||
|
||||
public int getCriticalDamageAtLevel(byte level)
|
||||
public int getCriticalDamageAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).criticalDamage;
|
||||
}
|
||||
|
@ -64,21 +64,21 @@ public class ElementalSpirit
|
||||
_template = ElementalSpiritData.getInstance().getSpirit(data.getType(), data.getStage());
|
||||
}
|
||||
|
||||
public void addExperience(long experience)
|
||||
public void addExperience(int experience)
|
||||
{
|
||||
if ((getLevel() == getMaxLevel()) && ((getExperience() + experience) > getExperienceToNextLevel()))
|
||||
if ((_data.getLevel() == _template.getMaxLevel()) && (_data.getExperience() >= _template.getMaxExperienceAtLevel(_template.getMaxLevel())))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_data.addExperience(experience);
|
||||
_owner.sendPacket(new ExElementalSpiritGetExp(getType(), _data.getExperience()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S1_S2_ATTRIBUTE_XP).addInt((int) experience).addElementalSpirit(getType()));
|
||||
_owner.sendPacket(new ExElementalSpiritGetExp(_data.getType(), _data.getExperience()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_ACQUIRED_S1_S2_ATTRIBUTE_XP).addInt(experience).addElementalSpirit(_data.getType()));
|
||||
|
||||
if (getExperience() > getExperienceToNextLevel())
|
||||
if (_data.getExperience() > getExperienceToNextLevel())
|
||||
{
|
||||
levelUp();
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(getType()).addByte(_data.getLevel()));
|
||||
_owner.sendPacket(new SystemMessage(SystemMessageId.S1_ATTRIBUTE_SPIRIT_BECAME_LEVEL_S2).addElementalSpirit(_data.getType()).addByte(_data.getLevel()));
|
||||
_owner.sendPacket(new ElementalSpiritInfo(_owner, _owner.getActiveElementalSpiritType(), (byte) 0));
|
||||
final UserInfo userInfo = new UserInfo(_owner);
|
||||
userInfo.addComponentType(UserInfoType.ATT_SPIRITS);
|
||||
@ -90,7 +90,7 @@ public class ElementalSpirit
|
||||
{
|
||||
do
|
||||
{
|
||||
if (_data.getLevel() < getMaxLevel())
|
||||
if (_data.getLevel() < _template.getMaxLevel())
|
||||
{
|
||||
_data.increaseLevel();
|
||||
}
|
||||
@ -104,8 +104,8 @@ public class ElementalSpirit
|
||||
|
||||
public void reduceLevel()
|
||||
{
|
||||
_data.setLevel((byte) Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)));
|
||||
_data.setLevel(Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage()).getMaxExperienceAtLevel(_data.getLevel() - 1));
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
@ -134,27 +134,27 @@ public class ElementalSpirit
|
||||
int amount = Math.round(_data.getExperience() / ElementalSpiritData.FRAGMENT_XP_CONSUME);
|
||||
if (getLevel() > 1)
|
||||
{
|
||||
amount += ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)) / ElementalSpiritData.FRAGMENT_XP_CONSUME;
|
||||
amount += ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage()).getMaxExperienceAtLevel(getLevel() - 1) / ElementalSpiritData.FRAGMENT_XP_CONSUME;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void resetStage()
|
||||
{
|
||||
_data.setLevel((byte) 1);
|
||||
_data.setLevel(1);
|
||||
_data.setExperience(0);
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
public boolean canEvolve()
|
||||
{
|
||||
return (getStage() < 5) && (getLevel() == 10) && (getExperience() == getExperienceToNextLevel());
|
||||
return (_data.getStage() < 5) && (_data.getLevel() == 10) && (_data.getExperience() == getExperienceToNextLevel());
|
||||
}
|
||||
|
||||
public void upgrade()
|
||||
{
|
||||
_data.increaseStage();
|
||||
_data.setLevel((byte) 1);
|
||||
_data.setLevel(1);
|
||||
_data.setExperience(0);
|
||||
_template = ElementalSpiritData.getInstance().getSpirit(_data.getType(), _data.getStage());
|
||||
EventDispatcher.getInstance().notifyEventAsync(new OnElementalSpiritUpgrade(_owner, this), _owner);
|
||||
@ -193,7 +193,7 @@ public class ElementalSpirit
|
||||
return _template.getMaxExperienceAtLevel(_data.getLevel());
|
||||
}
|
||||
|
||||
public byte getLevel()
|
||||
public int getLevel()
|
||||
{
|
||||
return _data.getLevel();
|
||||
}
|
||||
|
@ -734,7 +734,7 @@ public class Attackable extends Npc
|
||||
{
|
||||
if ((player.getActiveElementalSpiritType() > 0) && (getAttributeExp() > 0) && (getElementalSpiritType() != ElementalType.NONE))
|
||||
{
|
||||
final long attributeExp = (long) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus());
|
||||
final int attributeExp = (int) (((getAttributeExp() * damage) / totalDamage) * player.getElementalSpiritXpBonus());
|
||||
final ElementalSpirit spirit = player.getElementalSpirit(getElementalSpiritType().getSuperior());
|
||||
if (spirit != null)
|
||||
{
|
||||
|
@ -22,8 +22,8 @@ package org.l2jmobius.gameserver.model.holders;
|
||||
public class ElementalSpiritDataHolder
|
||||
{
|
||||
private int _charId;
|
||||
private int _level = 1;
|
||||
private byte _type;
|
||||
private byte _level = 1;
|
||||
private byte _stage = 1;
|
||||
private long _experience;
|
||||
private byte _attackPoints;
|
||||
@ -52,6 +52,16 @@ public class ElementalSpiritDataHolder
|
||||
_charId = charId;
|
||||
}
|
||||
|
||||
public int getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public void setLevel(int level)
|
||||
{
|
||||
_level = level;
|
||||
}
|
||||
|
||||
public byte getType()
|
||||
{
|
||||
return _type;
|
||||
@ -62,16 +72,6 @@ public class ElementalSpiritDataHolder
|
||||
_type = type;
|
||||
}
|
||||
|
||||
public byte getLevel()
|
||||
{
|
||||
return _level;
|
||||
}
|
||||
|
||||
public void setLevel(byte level)
|
||||
{
|
||||
_level = level;
|
||||
}
|
||||
|
||||
public byte getStage()
|
||||
{
|
||||
return _stage;
|
||||
|
@ -33,7 +33,7 @@ public class ElementalSpiritTemplateHolder
|
||||
private final int _maxCharacteristics;
|
||||
private final int _extractItem;
|
||||
|
||||
private final Map<Byte, SpiritLevel> _levels;
|
||||
private final Map<Integer, SpiritLevel> _levels;
|
||||
private List<ItemHolder> _itemsToEvolve;
|
||||
private List<ElementalSpiritAbsorbItemHolder> _absorbItems;
|
||||
|
||||
@ -55,7 +55,7 @@ public class ElementalSpiritTemplateHolder
|
||||
spiritLevel.criticalRate = criticalRate;
|
||||
spiritLevel.criticalDamage = criticalDamage;
|
||||
spiritLevel.maxExperience = maxExperience;
|
||||
_levels.put((byte) level, spiritLevel);
|
||||
_levels.put(level, spiritLevel);
|
||||
}
|
||||
|
||||
public void addItemToEvolve(Integer itemId, Integer count)
|
||||
@ -82,7 +82,7 @@ public class ElementalSpiritTemplateHolder
|
||||
return _npcId;
|
||||
}
|
||||
|
||||
public long getMaxExperienceAtLevel(byte level)
|
||||
public long getMaxExperienceAtLevel(int level)
|
||||
{
|
||||
final SpiritLevel spiritLevel = _levels.get(level);
|
||||
return spiritLevel == null ? 0 : spiritLevel.maxExperience;
|
||||
@ -93,22 +93,22 @@ public class ElementalSpiritTemplateHolder
|
||||
return _levels.size();
|
||||
}
|
||||
|
||||
public int getAttackAtLevel(byte level)
|
||||
public int getAttackAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).attack;
|
||||
}
|
||||
|
||||
public int getDefenseAtLevel(byte level)
|
||||
public int getDefenseAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).defense;
|
||||
}
|
||||
|
||||
public int getCriticalRateAtLevel(byte level)
|
||||
public int getCriticalRateAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).criticalRate;
|
||||
}
|
||||
|
||||
public int getCriticalDamageAtLevel(byte level)
|
||||
public int getCriticalDamageAtLevel(int level)
|
||||
{
|
||||
return _levels.get(level).criticalDamage;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user