Fixed items enchanted by specific scrolls.

This commit is contained in:
MobiusDevelopment
2019-11-29 02:32:20 +00:00
parent fbae5d6ae1
commit d0491ccd9e
34 changed files with 408 additions and 0 deletions

View File

@ -17,6 +17,7 @@
package org.l2jmobius.gameserver.data.xml.impl;
import java.io.File;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
@ -132,6 +133,11 @@ public class EnchantItemData implements IXmlReader
}
}
public Collection<EnchantScroll> getScrolls()
{
return _scrolls.values();
}
/**
* Gets the enchant scroll.
* @param scroll the scroll

View File

@ -20,6 +20,7 @@ import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.commons.util.Rnd;
import org.l2jmobius.gameserver.data.xml.impl.EnchantItemData;
import org.l2jmobius.gameserver.data.xml.impl.EnchantItemGroupsData;
import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@ -99,6 +100,11 @@ public class EnchantScroll extends AbstractEnchantItem
_items.add(itemId);
}
public Set<Integer> getItems()
{
return _items;
}
/**
* @param itemToEnchant the item to be enchanted
* @param supportItem the support item used when enchanting (can be null)
@ -107,6 +113,18 @@ public class EnchantScroll extends AbstractEnchantItem
@Override
public boolean isValid(ItemInstance itemToEnchant, EnchantSupportItem supportItem)
{
for (EnchantScroll scroll : EnchantItemData.getInstance().getScrolls())
{
if (scroll.getId() == getId())
{
continue;
}
final Set<Integer> scrollItems = scroll.getItems();
if ((scrollItems != null) && scrollItems.contains(itemToEnchant.getId()))
{
return false;
}
}
if ((_items != null) && !_items.contains(itemToEnchant.getId()))
{
return false;