Store if item is ensoul stone at EtcItem.

This commit is contained in:
MobiusDevelopment 2022-06-16 13:14:29 +00:00
parent acba6347c0
commit f186d811e2
3 changed files with 24 additions and 2 deletions

View File

@ -28,10 +28,12 @@ import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.l2jmobius.commons.util.IXmlReader;
import org.l2jmobius.gameserver.data.ItemTable;
import org.l2jmobius.gameserver.model.ensoul.EnsoulFee;
import org.l2jmobius.gameserver.model.ensoul.EnsoulOption;
import org.l2jmobius.gameserver.model.ensoul.EnsoulStone;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.item.EtcItem;
/**
* @author UnAfraid
@ -175,6 +177,7 @@ public class EnsoulData implements IXmlReader
final EnsoulStone stone = new EnsoulStone(id, slotType);
forEach(ensoulNode, "option", optionNode -> stone.addOption(parseInteger(optionNode.getAttributes(), "id")));
_ensoulStones.put(stone.getId(), stone);
((EtcItem) ItemTable.getInstance().getTemplate(stone.getId())).setEnsoulStone();
}
public ItemHolder getEnsoulFee(int stoneId, int index)

View File

@ -36,6 +36,7 @@ public class EtcItem extends ItemTemplate
private int _extractableCountMax;
private boolean _isInfinite;
private boolean _isMineral = false;
private boolean _isEnsoulStone = false;
/**
* Constructor for EtcItem.
@ -164,4 +165,14 @@ public class EtcItem extends ItemTemplate
{
_isMineral = true;
}
public boolean isEnsoulStone()
{
return _isEnsoulStone;
}
public void setEnsoulStone()
{
_isEnsoulStone = true;
}
}

View File

@ -54,6 +54,7 @@ import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
import org.l2jmobius.gameserver.network.serverpackets.ExUseSharedGroupItem;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.network.serverpackets.ensoul.ExShowEnsoulWindow;
import org.l2jmobius.gameserver.network.serverpackets.variation.ExShowVariationMakeWindow;
public class UseItem implements IClientIncomingPacket
@ -327,9 +328,16 @@ public class UseItem implements IClientIncomingPacket
}
}
if ((etcItem != null) && etcItem.isMineral())
if (etcItem != null)
{
player.sendPacket(ExShowVariationMakeWindow.STATIC_PACKET);
if (etcItem.isMineral())
{
player.sendPacket(ExShowVariationMakeWindow.STATIC_PACKET);
}
else if (etcItem.isEnsoulStone())
{
player.sendPacket(ExShowEnsoulWindow.STATIC_PACKET);
}
}
}
}