Addition of onlyReplaceByLearn skilltree parameter.

This commit is contained in:
MobiusDevelopment 2021-02-28 04:43:11 +00:00
parent 850f6e3c0f
commit 034a771eb5
36 changed files with 90 additions and 18 deletions

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -31,6 +31,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -31,6 +31,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -31,6 +31,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -270,7 +270,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -271,7 +271,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -270,7 +270,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}

View File

@ -32,6 +32,7 @@
<xs:element name="removeSkill" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:positiveInteger" use="required" />
<xs:attribute name="onlyReplaceByLearn" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:element>
<xs:element name="socialClass" minOccurs="0" maxOccurs="1">

View File

@ -270,7 +270,10 @@ public class SkillTreeData implements IXmlReader
{
final int removeSkillId = parseInteger(attrs, "id");
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;
}
}