Additional checks for villagemasters.

Contributed by Sahar.
This commit is contained in:
MobiusDevelopment
2019-11-04 21:11:12 +00:00
parent a7d7160fce
commit 2fcb4b924e
9 changed files with 363 additions and 93 deletions

View File

@@ -840,17 +840,16 @@ public class VillageMasterInstance extends NpcInstance
subclasses = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass);
// Kamaels can only take Kamael classes as subclasses.
for (ClassId cid : ClassId.values())
{
if ((cid.getRace() == Race.KAMAEL) && (player.getRace() != Race.KAMAEL))
{
subclasses.remove(cid);
}
}
if (player.getRace() == Race.KAMAEL)
{
for (ClassId cid : ClassId.values())
{
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getAppearance().isFemale())
{
subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -865,6 +864,37 @@ public class VillageMasterInstance extends NpcInstance
subclasses.remove(ClassId.INSPECTOR);
}
}
else
{
if (player.getRace() == Race.ELF)
{
for (ClassId cid : ClassId.values())
{
if (cid.getRace() == Race.DARK_ELF)
{
subclasses.remove(cid);
}
}
}
else if (player.getRace() == Race.DARK_ELF)
{
for (ClassId cid : ClassId.values())
{
if (cid.getRace() == Race.ELF)
{
subclasses.remove(cid);
}
}
}
for (ClassId cid : ClassId.values())
{
if (cid.getRace() == Race.KAMAEL)
{
subclasses.remove(cid);
}
}
}
Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
if (unavailableClasses != null)