Extract elemental spirit adjustments.
Thanks to Mode.
This commit is contained in:
parent
3847b65fcd
commit
c7a4956a2a
@ -96,6 +96,13 @@ public class ElementalSpirit
|
||||
while (_data.getExperience() > getExperienceToNextLevel());
|
||||
}
|
||||
|
||||
public void reduceLevel()
|
||||
{
|
||||
_data.setLevel((byte) Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)));
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
public int getAvailableCharacteristicsPoints()
|
||||
{
|
||||
final int stage = _data.getStage();
|
||||
@ -118,7 +125,12 @@ public class ElementalSpirit
|
||||
|
||||
public int getExtractAmount()
|
||||
{
|
||||
return Math.round(_data.getExperience() / ElementalSpiritData.FRAGMENT_XP_CONSUME);
|
||||
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;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void resetStage()
|
||||
|
@ -65,7 +65,7 @@ public class ExElementalSpiritExtract implements IClientIncomingPacket
|
||||
{
|
||||
final int amount = spirit.getExtractAmount();
|
||||
client.sendPacket(new SystemMessage(SystemMessageId.EXTRACTED_S1_S2_SUCCESSFULLY).addItemName(spirit.getExtractItem()).addInt(amount));
|
||||
spirit.resetStage();
|
||||
spirit.reduceLevel();
|
||||
player.addItem("Extract", spirit.getExtractItem(), amount, player, true);
|
||||
|
||||
final UserInfo userInfo = new UserInfo(player);
|
||||
@ -78,7 +78,7 @@ public class ExElementalSpiritExtract implements IClientIncomingPacket
|
||||
|
||||
private boolean checkConditions(PlayerInstance player, ElementalSpirit spirit)
|
||||
{
|
||||
if (spirit.getExtractAmount() < 1)
|
||||
if ((spirit.getLevel() < 2) || (spirit.getExtractAmount() < 1))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.NOT_ENOUGH_ATTRIBUTE_XP_FOR_EXTRACTION);
|
||||
return false;
|
||||
|
@ -96,6 +96,13 @@ public class ElementalSpirit
|
||||
while (_data.getExperience() > getExperienceToNextLevel());
|
||||
}
|
||||
|
||||
public void reduceLevel()
|
||||
{
|
||||
_data.setLevel((byte) Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)));
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
public int getAvailableCharacteristicsPoints()
|
||||
{
|
||||
final int stage = _data.getStage();
|
||||
@ -118,7 +125,12 @@ public class ElementalSpirit
|
||||
|
||||
public int getExtractAmount()
|
||||
{
|
||||
return Math.round(_data.getExperience() / ElementalSpiritData.FRAGMENT_XP_CONSUME);
|
||||
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;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void resetStage()
|
||||
|
@ -65,7 +65,7 @@ public class ExElementalSpiritExtract implements IClientIncomingPacket
|
||||
{
|
||||
final int amount = spirit.getExtractAmount();
|
||||
client.sendPacket(new SystemMessage(SystemMessageId.EXTRACTED_S1_S2_SUCCESSFULLY).addItemName(spirit.getExtractItem()).addInt(amount));
|
||||
spirit.resetStage();
|
||||
spirit.reduceLevel();
|
||||
player.addItem("Extract", spirit.getExtractItem(), amount, player, true);
|
||||
|
||||
final UserInfo userInfo = new UserInfo(player);
|
||||
@ -78,7 +78,7 @@ public class ExElementalSpiritExtract implements IClientIncomingPacket
|
||||
|
||||
private boolean checkConditions(PlayerInstance player, ElementalSpirit spirit)
|
||||
{
|
||||
if (spirit.getExtractAmount() < 1)
|
||||
if ((spirit.getLevel() < 2) || (spirit.getExtractAmount() < 1))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.NOT_ENOUGH_ATTRIBUTE_XP_FOR_EXTRACTION);
|
||||
return false;
|
||||
|
@ -96,6 +96,13 @@ public class ElementalSpirit
|
||||
while (_data.getExperience() > getExperienceToNextLevel());
|
||||
}
|
||||
|
||||
public void reduceLevel()
|
||||
{
|
||||
_data.setLevel((byte) Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)));
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
public int getAvailableCharacteristicsPoints()
|
||||
{
|
||||
final int stage = _data.getStage();
|
||||
@ -118,7 +125,12 @@ public class ElementalSpirit
|
||||
|
||||
public int getExtractAmount()
|
||||
{
|
||||
return Math.round(_data.getExperience() / ElementalSpiritData.FRAGMENT_XP_CONSUME);
|
||||
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;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void resetStage()
|
||||
|
@ -65,7 +65,7 @@ public class ExElementalSpiritExtract implements IClientIncomingPacket
|
||||
{
|
||||
final int amount = spirit.getExtractAmount();
|
||||
client.sendPacket(new SystemMessage(SystemMessageId.EXTRACTED_S1_S2_SUCCESSFULLY).addItemName(spirit.getExtractItem()).addInt(amount));
|
||||
spirit.resetStage();
|
||||
spirit.reduceLevel();
|
||||
player.addItem("Extract", spirit.getExtractItem(), amount, player, true);
|
||||
|
||||
final UserInfo userInfo = new UserInfo(player);
|
||||
@ -78,7 +78,7 @@ public class ExElementalSpiritExtract implements IClientIncomingPacket
|
||||
|
||||
private boolean checkConditions(PlayerInstance player, ElementalSpirit spirit)
|
||||
{
|
||||
if (spirit.getExtractAmount() < 1)
|
||||
if ((spirit.getLevel() < 2) || (spirit.getExtractAmount() < 1))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.NOT_ENOUGH_ATTRIBUTE_XP_FOR_EXTRACTION);
|
||||
return false;
|
||||
|
@ -96,6 +96,13 @@ public class ElementalSpirit
|
||||
while (_data.getExperience() > getExperienceToNextLevel());
|
||||
}
|
||||
|
||||
public void reduceLevel()
|
||||
{
|
||||
_data.setLevel((byte) Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)));
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
public int getAvailableCharacteristicsPoints()
|
||||
{
|
||||
final int stage = _data.getStage();
|
||||
@ -118,7 +125,12 @@ public class ElementalSpirit
|
||||
|
||||
public int getExtractAmount()
|
||||
{
|
||||
return Math.round(_data.getExperience() / ElementalSpiritData.FRAGMENT_XP_CONSUME);
|
||||
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;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void resetStage()
|
||||
|
@ -65,7 +65,7 @@ public class ExElementalSpiritExtract implements IClientIncomingPacket
|
||||
{
|
||||
final int amount = spirit.getExtractAmount();
|
||||
client.sendPacket(new SystemMessage(SystemMessageId.EXTRACTED_S1_S2_SUCCESSFULLY).addItemName(spirit.getExtractItem()).addInt(amount));
|
||||
spirit.resetStage();
|
||||
spirit.reduceLevel();
|
||||
player.addItem("Extract", spirit.getExtractItem(), amount, player, true);
|
||||
|
||||
final UserInfo userInfo = new UserInfo(player);
|
||||
@ -78,7 +78,7 @@ public class ExElementalSpiritExtract implements IClientIncomingPacket
|
||||
|
||||
private boolean checkConditions(PlayerInstance player, ElementalSpirit spirit)
|
||||
{
|
||||
if (spirit.getExtractAmount() < 1)
|
||||
if ((spirit.getLevel() < 2) || (spirit.getExtractAmount() < 1))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.NOT_ENOUGH_ATTRIBUTE_XP_FOR_EXTRACTION);
|
||||
return false;
|
||||
|
@ -96,6 +96,13 @@ public class ElementalSpirit
|
||||
while (_data.getExperience() > getExperienceToNextLevel());
|
||||
}
|
||||
|
||||
public void reduceLevel()
|
||||
{
|
||||
_data.setLevel((byte) Math.max(1, _data.getLevel() - 1));
|
||||
_data.setExperience(ElementalSpiritData.getInstance().getSpirit(getType(), getStage()).getMaxExperienceAtLevel((byte) (getLevel() - 1)));
|
||||
resetCharacteristics();
|
||||
}
|
||||
|
||||
public int getAvailableCharacteristicsPoints()
|
||||
{
|
||||
final int stage = _data.getStage();
|
||||
@ -118,7 +125,12 @@ public class ElementalSpirit
|
||||
|
||||
public int getExtractAmount()
|
||||
{
|
||||
return Math.round(_data.getExperience() / ElementalSpiritData.FRAGMENT_XP_CONSUME);
|
||||
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;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void resetStage()
|
||||
|
@ -65,7 +65,7 @@ public class ExElementalSpiritExtract implements IClientIncomingPacket
|
||||
{
|
||||
final int amount = spirit.getExtractAmount();
|
||||
client.sendPacket(new SystemMessage(SystemMessageId.EXTRACTED_S1_S2_SUCCESSFULLY).addItemName(spirit.getExtractItem()).addInt(amount));
|
||||
spirit.resetStage();
|
||||
spirit.reduceLevel();
|
||||
player.addItem("Extract", spirit.getExtractItem(), amount, player, true);
|
||||
|
||||
final UserInfo userInfo = new UserInfo(player);
|
||||
@ -78,7 +78,7 @@ public class ExElementalSpiritExtract implements IClientIncomingPacket
|
||||
|
||||
private boolean checkConditions(PlayerInstance player, ElementalSpirit spirit)
|
||||
{
|
||||
if (spirit.getExtractAmount() < 1)
|
||||
if ((spirit.getLevel() < 2) || (spirit.getExtractAmount() < 1))
|
||||
{
|
||||
player.sendPacket(SystemMessageId.NOT_ENOUGH_ATTRIBUTE_XP_FOR_EXTRACTION);
|
||||
return false;
|
||||
|
Loading…
Reference in New Issue
Block a user