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

@@ -856,17 +856,16 @@ public class VillageMasterInstance extends NpcInstance
subclasses = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass);
// Kamaels can only take Kamael classes as subclasses.
if (player.getRace() == Race.KAMAEL)
{
for (ClassId cid : ClassId.values())
{
if ((cid.getRace() == Race.KAMAEL) && (player.getRace() != Race.KAMAEL))
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getRace() == Race.KAMAEL)
{
if (player.getAppearance().isFemale())
{
subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -881,6 +880,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)

View File

@@ -856,17 +856,16 @@ public class VillageMasterInstance extends NpcInstance
subclasses = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass);
// Kamaels can only take Kamael classes as subclasses.
if (player.getRace() == Race.KAMAEL)
{
for (ClassId cid : ClassId.values())
{
if ((cid.getRace() == Race.KAMAEL) && (player.getRace() != Race.KAMAEL))
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getRace() == Race.KAMAEL)
{
if (player.getAppearance().isFemale())
{
subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -881,6 +880,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)

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.
if (player.getRace() == Race.KAMAEL)
{
for (ClassId cid : ClassId.values())
{
if ((cid.getRace() == Race.KAMAEL) && (player.getRace() != Race.KAMAEL))
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getRace() == Race.KAMAEL)
{
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)

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.
if (player.getRace() == Race.KAMAEL)
{
for (ClassId cid : ClassId.values())
{
if ((cid.getRace() == Race.KAMAEL) && (player.getRace() != Race.KAMAEL))
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getRace() == Race.KAMAEL)
{
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)

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.
if (player.getRace() == Race.KAMAEL)
{
for (ClassId cid : ClassId.values())
{
if ((cid.getRace() == Race.KAMAEL) && (player.getRace() != Race.KAMAEL))
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getRace() == Race.KAMAEL)
{
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)

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.
if (player.getRace() == Race.KAMAEL)
{
for (ClassId cid : ClassId.values())
{
if ((cid.getRace() == Race.KAMAEL) && (player.getRace() != Race.KAMAEL))
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getRace() == Race.KAMAEL)
{
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)

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.
if (player.getRace() == Race.KAMAEL)
{
for (ClassId cid : ClassId.values())
{
if ((cid.getRace() == Race.KAMAEL) && (player.getRace() != Race.KAMAEL))
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getRace() == Race.KAMAEL)
{
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)

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.
if (player.getRace() == Race.KAMAEL)
{
for (ClassId cid : ClassId.values())
{
if ((cid.getRace() == Race.KAMAEL) && (player.getRace() != Race.KAMAEL))
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
// if (player.getRace() == Race.KAMAEL)
// {
// if (player.getAppearance().isFemale())
// {
// subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -864,7 +863,38 @@ 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)

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.
if (player.getRace() == Race.KAMAEL)
{
for (ClassId cid : ClassId.values())
{
if ((cid.getRace() == Race.KAMAEL) && (player.getRace() != Race.KAMAEL))
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getRace() == Race.KAMAEL)
{
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)