Elemental spirit related cleanup.

This commit is contained in:
MobiusDevelopment 2021-10-27 01:46:27 +00:00
parent a0ee3599f5
commit 27176333cf
20 changed files with 165 additions and 165 deletions

View File

@ -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();
}

View File

@ -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)
{

View File

@ -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;

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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)
{

View File

@ -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;

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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)
{

View File

@ -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;

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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)
{

View File

@ -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;

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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)
{

View File

@ -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;

View File

@ -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;
}