forked from MagicBane/Server
ABS char skill system
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
|
||||
package engine.objects;
|
||||
|
||||
import engine.Enum;
|
||||
import engine.gameManager.DbManager;
|
||||
import engine.gameManager.PowersManager;
|
||||
import engine.net.ByteBufferWriter;
|
||||
@@ -97,28 +98,29 @@ public class CharacterPower extends AbstractGameObject {
|
||||
* This iterates through players runes and adds and removes powers as needed
|
||||
* Don't Call this directly. Instead call pc.calculateSkills().
|
||||
*/
|
||||
public static void calculatePowers(PlayerCharacter pc) {
|
||||
if (pc == null)
|
||||
public static void calculatePowers(AbstractCharacter absChar) {
|
||||
if (absChar == null || absChar.getObjectType().equals(Enum.GameObjectType.PlayerCharacter) == false)
|
||||
return;
|
||||
|
||||
PlayerCharacter pc = (PlayerCharacter) absChar;
|
||||
// First add powers that don't exist
|
||||
ConcurrentHashMap<Integer, CharacterPower> powers = pc.getPowers();
|
||||
// ArrayList<PowerReq> genericPowers = PowerReq.getPowerReqsForAll();
|
||||
// CharacterPower.grantPowers(genericPowers, powers, pc);
|
||||
Race race = pc.getRace();
|
||||
Race race = pc.race;
|
||||
if (race != null) {
|
||||
CharacterPower.grantPowers(race.getPowersGranted(), powers, pc);
|
||||
} else
|
||||
Logger.error("Failed to find Race for player " + pc.getObjectUUID());
|
||||
BaseClass bc = pc.getBaseClass();
|
||||
BaseClass bc = pc.baseClass;
|
||||
if (bc != null) {
|
||||
CharacterPower.grantPowers(bc.getPowersGranted(), powers, pc);
|
||||
} else
|
||||
Logger.error("Failed to find BaseClass for player " + pc.getObjectUUID());
|
||||
PromotionClass promo = pc.getPromotionClass();
|
||||
PromotionClass promo = pc.promotionClass;
|
||||
if (promo != null)
|
||||
CharacterPower.grantPowers(promo.getPowersGranted(), powers, pc);
|
||||
ArrayList<CharacterRune> runes = pc.getRunes();
|
||||
ArrayList<CharacterRune> runes = pc.runes;
|
||||
if (runes != null) {
|
||||
for (CharacterRune rune : runes) {
|
||||
CharacterPower.grantPowers(rune.getPowersGranted(), powers, pc);
|
||||
@@ -242,9 +244,11 @@ public class CharacterPower extends AbstractGameObject {
|
||||
}
|
||||
}
|
||||
|
||||
public static void grantTrains(PlayerCharacter pc) {
|
||||
if (pc == null)
|
||||
public static void grantTrains(AbstractCharacter absChar) {
|
||||
if (absChar == null || absChar.getObjectType().equals(Enum.GameObjectType.PlayerCharacter) == false)
|
||||
return;
|
||||
|
||||
PlayerCharacter pc = (PlayerCharacter) absChar;
|
||||
ConcurrentHashMap<Integer, CharacterPower> powers = pc.getPowers();
|
||||
for (CharacterPower cp : powers.values()) {
|
||||
cp.grantedTrains = cp.getGrantedTrains(pc);
|
||||
@@ -526,13 +530,13 @@ public class CharacterPower extends AbstractGameObject {
|
||||
return false;
|
||||
|
||||
ConcurrentHashMap<Integer, CharacterPower> powers = pc.getPowers();
|
||||
Race race = pc.getRace();
|
||||
Race race = pc.race;
|
||||
if (race != null) {
|
||||
if (!canRefine(race.getPowersGranted(), powers, pc))
|
||||
return false;
|
||||
} else
|
||||
return false;
|
||||
BaseClass bc = pc.getBaseClass();
|
||||
BaseClass bc = pc.baseClass;
|
||||
if (bc != null) {
|
||||
if (!canRefine(bc.getPowersGranted(), powers, pc))
|
||||
return false;
|
||||
@@ -585,13 +589,13 @@ public class CharacterPower extends AbstractGameObject {
|
||||
return false;
|
||||
int token = this.power.getToken();
|
||||
boolean valid = false;
|
||||
Race race = pc.getRace();
|
||||
Race race = pc.race;
|
||||
if (race != null) {
|
||||
if (CharacterPower.powerAllowed(token, race.getPowersGranted(), pc))
|
||||
return true;
|
||||
} else
|
||||
return false;
|
||||
BaseClass bc = pc.getBaseClass();
|
||||
BaseClass bc = pc.baseClass;
|
||||
if (bc != null) {
|
||||
if (CharacterPower.powerAllowed(token, bc.getPowersGranted(), pc))
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user