ABS char skill system

This commit is contained in:
2024-03-27 17:17:34 -05:00
parent 27d869276a
commit aff2a8fa0e
16 changed files with 542 additions and 656 deletions
+11 -9
View File
@@ -378,7 +378,7 @@ public class CharacterSkill extends AbstractGameObject {
if (pc == null)
return 0;
if (pc.getRace() == null || pc.getBaseClass() == null) {
if (pc.race == null || pc.baseClass == null) {
Logger.error("Race or BaseClass not found for player " + pc.getObjectUUID());
return 0;
}
@@ -388,12 +388,12 @@ public class CharacterSkill extends AbstractGameObject {
int available = 0;
//get racial bonus;
if (pc.getRace().getRaceType().equals(Enum.RaceType.HUMANMALE) ||
pc.getRace().getRaceType().equals(Enum.RaceType.HUMANFEMALE))
if (pc.race.getRaceType().equals(Enum.RaceType.HUMANMALE) ||
pc.race.getRaceType().equals(Enum.RaceType.HUMANFEMALE))
raceBonus = 1; //Human racial bonus;
//get base class trains
if (pc.getBaseClass().getObjectUUID() == 2500 || pc.getBaseClass().getObjectUUID() == 2502) {
if (pc.baseClass.getObjectUUID() == 2500 || pc.baseClass.getObjectUUID() == 2502) {
baseMod = 4; //Fighter or Rogue
} else {
baseMod = 5; //Healer or Mage
@@ -480,24 +480,26 @@ public class CharacterSkill extends AbstractGameObject {
* This iterates through players runes and adds and removes skills as needed
* Don't Call this directly. Instead call pc.calculateSkills().
*/
public static void calculateSkills(PlayerCharacter pc) {
if (pc == null)
public static void calculateSkills(AbstractCharacter absChar) {
if (absChar == null && absChar.getObjectType().equals(Enum.GameObjectType.PlayerCharacter) == false)
return;
PlayerCharacter pc = (PlayerCharacter)absChar;
ConcurrentHashMap<String, CharacterSkill> skills = pc.getSkills();
//First add skills that don't exist
Race race = pc.getRace();
Race race = pc.race;
if (race != null) {
CharacterSkill.grantSkills(race.getSkillsGranted(), pc);
} else
Logger.error("Failed to find Race for player " + pc.getObjectUUID());
BaseClass bc = pc.getBaseClass();
BaseClass bc = pc.baseClass;
if (bc != null) {
CharacterSkill.grantSkills(bc.getSkillsGranted(), pc);
} else
Logger.error("Failed to find BaseClass for player " + pc.getObjectUUID());
PromotionClass promo = pc.getPromotionClass();
PromotionClass promo = pc.promotionClass;
if (promo != null)
CharacterSkill.grantSkills(promo.getSkillsGranted(), pc);
ArrayList<CharacterRune> runes = pc.getRunes();