Addition of adenaFee parameter for variation data.
Thanks to CostyKiller.
This commit is contained in:
@ -167,15 +167,16 @@ public class VariationData implements IXmlReader
|
||||
{
|
||||
final int itemGroupId = parseInteger(feeNode.getAttributes(), "itemGroup");
|
||||
final List<Integer> itemGroup = itemGroups.get(itemGroupId);
|
||||
final int itemId = parseInteger(feeNode.getAttributes(), "itemId");
|
||||
final int itemCount = parseInteger(feeNode.getAttributes(), "itemCount");
|
||||
final int cancelFee = parseInteger(feeNode.getAttributes(), "cancelFee");
|
||||
if (ItemTable.getInstance().getTemplate(itemId) == null)
|
||||
final int itemId = parseInteger(feeNode.getAttributes(), "itemId", 0);
|
||||
final long itemCount = parseLong(feeNode.getAttributes(), "itemCount", 0L);
|
||||
final long adenaFee = parseLong(feeNode.getAttributes(), "adenaFee", 0L);
|
||||
final long cancelFee = parseLong(feeNode.getAttributes(), "cancelFee", 0L);
|
||||
if ((itemId != 0) && (ItemTable.getInstance().getTemplate(itemId) == null))
|
||||
{
|
||||
LOGGER.warning(getClass().getSimpleName() + ": Item with id " + itemId + " was not found.");
|
||||
}
|
||||
|
||||
final VariationFee fee = new VariationFee(itemId, itemCount, cancelFee);
|
||||
final VariationFee fee = new VariationFee(itemId, itemCount, adenaFee, cancelFee);
|
||||
final Map<Integer, VariationFee> feeByMinerals = new HashMap<>();
|
||||
forEach(feeNode, "mineral", mineralNode ->
|
||||
{
|
||||
|
@ -23,12 +23,14 @@ public class VariationFee
|
||||
{
|
||||
private final int _itemId;
|
||||
private final long _itemCount;
|
||||
private final long _adenaFee;
|
||||
private final long _cancelFee;
|
||||
|
||||
public VariationFee(int itemId, long itemCount, long cancelFee)
|
||||
public VariationFee(int itemId, long itemCount, long adenaFee, long cancelFee)
|
||||
{
|
||||
_itemId = itemId;
|
||||
_itemCount = itemCount;
|
||||
_adenaFee = adenaFee;
|
||||
_cancelFee = cancelFee;
|
||||
}
|
||||
|
||||
@ -42,6 +44,11 @@ public class VariationFee
|
||||
return _itemCount;
|
||||
}
|
||||
|
||||
public long getAdenaFee()
|
||||
{
|
||||
return _adenaFee;
|
||||
}
|
||||
|
||||
public long getCancelFee()
|
||||
{
|
||||
return _cancelFee;
|
||||
|
@ -97,6 +97,14 @@ public class RequestRefine extends AbstractRefinePacket
|
||||
return;
|
||||
}
|
||||
|
||||
final long adenaFee = fee.getAdenaFee();
|
||||
if ((adenaFee > 0) && (player.getAdena() < adenaFee))
|
||||
{
|
||||
player.sendPacket(new ExVariationResult(0, 0, false));
|
||||
player.sendPacket(SystemMessageId.AUGMENTATION_FAILED_DUE_TO_INAPPROPRIATE_CONDITIONS);
|
||||
return;
|
||||
}
|
||||
|
||||
final Variation variation = VariationData.getInstance().getVariation(mineralItem.getId());
|
||||
if (variation == null)
|
||||
{
|
||||
@ -153,6 +161,12 @@ public class RequestRefine extends AbstractRefinePacket
|
||||
return;
|
||||
}
|
||||
|
||||
// Consume Adena.
|
||||
if ((adenaFee > 0) && !player.reduceAdena("RequestRefine", adenaFee, player, false))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove the augmentation if any (286).
|
||||
if (targetItem.isAugmented())
|
||||
{
|
||||
|
Reference in New Issue
Block a user