Addition of onlyReplaceByLearn skilltree parameter.
This commit is contained in:
parent
850f6e3c0f
commit
034a771eb5
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -270,7 +270,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -270,7 +270,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
|
||||||
|
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">
|
||||||
|
@ -270,7 +270,10 @@ public class SkillTreeData implements IXmlReader
|
|||||||
{
|
{
|
||||||
final int removeSkillId = parseInteger(attrs, "id");
|
final int removeSkillId = parseInteger(attrs, "id");
|
||||||
skillLearn.addRemoveSkills(removeSkillId);
|
skillLearn.addRemoveSkills(removeSkillId);
|
||||||
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user