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 = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass); 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) if (player.getRace() == Race.KAMAEL)
{ {
for (ClassId cid : ClassId.values())
{
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getAppearance().isFemale()) if (player.getAppearance().isFemale())
{ {
subclasses.remove(ClassId.MALE_SOULBREAKER); subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -881,6 +880,37 @@ public class VillageMasterInstance extends NpcInstance
subclasses.remove(ClassId.INSPECTOR); 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); Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
if (unavailableClasses != null) if (unavailableClasses != null)

View File

@@ -856,17 +856,16 @@ public class VillageMasterInstance extends NpcInstance
subclasses = EnumSet.copyOf(mainSubclassSet); subclasses = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass); 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) if (player.getRace() == Race.KAMAEL)
{ {
for (ClassId cid : ClassId.values())
{
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getAppearance().isFemale()) if (player.getAppearance().isFemale())
{ {
subclasses.remove(ClassId.MALE_SOULBREAKER); subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -881,6 +880,37 @@ public class VillageMasterInstance extends NpcInstance
subclasses.remove(ClassId.INSPECTOR); 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); Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
if (unavailableClasses != null) if (unavailableClasses != null)

View File

@@ -840,17 +840,16 @@ public class VillageMasterInstance extends NpcInstance
subclasses = EnumSet.copyOf(mainSubclassSet); subclasses = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass); 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) if (player.getRace() == Race.KAMAEL)
{ {
for (ClassId cid : ClassId.values())
{
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getAppearance().isFemale()) if (player.getAppearance().isFemale())
{ {
subclasses.remove(ClassId.MALE_SOULBREAKER); subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -865,6 +864,37 @@ public class VillageMasterInstance extends NpcInstance
subclasses.remove(ClassId.INSPECTOR); 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); Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
if (unavailableClasses != null) if (unavailableClasses != null)

View File

@@ -840,17 +840,16 @@ public class VillageMasterInstance extends NpcInstance
subclasses = EnumSet.copyOf(mainSubclassSet); subclasses = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass); 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) if (player.getRace() == Race.KAMAEL)
{ {
for (ClassId cid : ClassId.values())
{
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getAppearance().isFemale()) if (player.getAppearance().isFemale())
{ {
subclasses.remove(ClassId.MALE_SOULBREAKER); subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -865,6 +864,37 @@ public class VillageMasterInstance extends NpcInstance
subclasses.remove(ClassId.INSPECTOR); 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); Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
if (unavailableClasses != null) if (unavailableClasses != null)

View File

@@ -840,17 +840,16 @@ public class VillageMasterInstance extends NpcInstance
subclasses = EnumSet.copyOf(mainSubclassSet); subclasses = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass); 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) if (player.getRace() == Race.KAMAEL)
{ {
for (ClassId cid : ClassId.values())
{
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getAppearance().isFemale()) if (player.getAppearance().isFemale())
{ {
subclasses.remove(ClassId.MALE_SOULBREAKER); subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -865,6 +864,37 @@ public class VillageMasterInstance extends NpcInstance
subclasses.remove(ClassId.INSPECTOR); 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); Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
if (unavailableClasses != null) if (unavailableClasses != null)

View File

@@ -840,17 +840,16 @@ public class VillageMasterInstance extends NpcInstance
subclasses = EnumSet.copyOf(mainSubclassSet); subclasses = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass); 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) if (player.getRace() == Race.KAMAEL)
{ {
for (ClassId cid : ClassId.values())
{
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getAppearance().isFemale()) if (player.getAppearance().isFemale())
{ {
subclasses.remove(ClassId.MALE_SOULBREAKER); subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -865,6 +864,37 @@ public class VillageMasterInstance extends NpcInstance
subclasses.remove(ClassId.INSPECTOR); 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); Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
if (unavailableClasses != null) if (unavailableClasses != null)

View File

@@ -840,17 +840,16 @@ public class VillageMasterInstance extends NpcInstance
subclasses = EnumSet.copyOf(mainSubclassSet); subclasses = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass); 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) if (player.getRace() == Race.KAMAEL)
{ {
for (ClassId cid : ClassId.values())
{
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getAppearance().isFemale()) if (player.getAppearance().isFemale())
{ {
subclasses.remove(ClassId.MALE_SOULBREAKER); subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -865,6 +864,37 @@ public class VillageMasterInstance extends NpcInstance
subclasses.remove(ClassId.INSPECTOR); 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); Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
if (unavailableClasses != null) if (unavailableClasses != null)

View File

@@ -840,32 +840,62 @@ public class VillageMasterInstance extends NpcInstance
subclasses = EnumSet.copyOf(mainSubclassSet); subclasses = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass); 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)) for (ClassId cid : ClassId.values())
{ {
subclasses.remove(cid); if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
// if (player.getAppearance().isFemale())
// {
// subclasses.remove(ClassId.MALE_SOULBREAKER);
// }
// else
// {
// subclasses.remove(ClassId.FEMALE_SOULBREAKER);
// }
//
// if (!player.getSubClasses().containsKey(2) || (player.getSubClasses().get(2).getLevel() < 75))
// {
// 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);
}
} }
} }
// if (player.getRace() == Race.KAMAEL)
// {
// if (player.getAppearance().isFemale())
// {
// subclasses.remove(ClassId.MALE_SOULBREAKER);
// }
// else
// {
// subclasses.remove(ClassId.FEMALE_SOULBREAKER);
// }
//
// if (!player.getSubClasses().containsKey(2) || (player.getSubClasses().get(2).getLevel() < 75))
// {
// subclasses.remove(ClassId.INSPECTOR);
// }
// }
Set<ClassId> unavailableClasses = subclassSetMap.get(pClass); Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
if (unavailableClasses != null) if (unavailableClasses != null)
{ {

View File

@@ -840,17 +840,16 @@ public class VillageMasterInstance extends NpcInstance
subclasses = EnumSet.copyOf(mainSubclassSet); subclasses = EnumSet.copyOf(mainSubclassSet);
subclasses.remove(pClass); 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) if (player.getRace() == Race.KAMAEL)
{ {
for (ClassId cid : ClassId.values())
{
if (cid.getRace() != Race.KAMAEL)
{
subclasses.remove(cid);
}
}
if (player.getAppearance().isFemale()) if (player.getAppearance().isFemale())
{ {
subclasses.remove(ClassId.MALE_SOULBREAKER); subclasses.remove(ClassId.MALE_SOULBREAKER);
@@ -865,6 +864,37 @@ public class VillageMasterInstance extends NpcInstance
subclasses.remove(ClassId.INSPECTOR); 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); Set<ClassId> unavailableClasses = subclassSetMap.get(pClass);
if (unavailableClasses != null) if (unavailableClasses != null)