Доброго времени суток.
Появилась очередная проблема, я думаю что ноги растут из ядра.
Скиллы одного типа не заменяют друг друга. К примеру Можно повесить сразу три пофа на себя или шесть аур танка.
Копаясь были найдены кое какие изменения по коду, относительно предыдущей ревизии.
И так новая ревизия:
Skill.java
if(et._stackOrder == -1)
{
if (!et.noStack())
{
for (final Effect e : target.getEffectList().getAllEffects())
{
if (e.getTemplate().containsStackType(et))
{
continue loop;
}
}
}
else if(target.getEffectList().getEffectsBySkillId(getId()) != null)
{
continue;
}
}
Старая ревизия:
if(et._stackOrder == -1)
{
if(!et._stackTypes.contains(EffectTemplate.NO_STACK))
{
for(Effect e : target.getEffectList().getAllEffects())
{
for(String arg : et._stackTypes)
{
if(e.getStackType().contains(arg))
{
continue loop;
}
}
}
}
else if(target.getEffectList().getEffectsBySkillId(getId()) != null)
{
continue;
}
}
В разделе Effect.java
Определение Стаковых типов выделено комментом:
//public List<String> getStackType()
//{
// return getTemplate()._stackTypes;
//}
//public boolean checkStackType(String param)
//{
// return getStackType().contains(param);
//}
//public boolean checkStackType(Effect param)
//{
// boolean r = false;
// for(String arg : param.getStackType())
// {
// r = checkStackType(arg);
// }
// return r;
//}
И что еще говорит о стоке так это вот такой вот коротенький кусочек кода:
public int getStackOrder()
{
return getTemplate()._stackOrder;
}
Куда копать? Что изменить?
Сорсы Новелла.
Спасибо заранее.