Addition of onlyReplaceByLearn skilltree parameter.
This commit is contained in:
@@ -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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_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);
|
||||||
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
if (!parseBoolean(attrs, "onlyReplaceByLearn", false))
|
||||||
|
{
|
||||||
|
_removeSkillCache.computeIfAbsent(classId, k -> new HashSet<>()).add(removeSkillId);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user