|
|
@ -1302,7 +1302,6 @@ public class PlayerCharacter extends AbstractCharacter { |
|
|
|
this.calculateSkills(); |
|
|
|
this.calculateSkills(); |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public boolean refineSpi() { |
|
|
|
public boolean refineSpi() { |
|
|
|
boolean worked = false; |
|
|
|
boolean worked = false; |
|
|
|
short newSpi = (short) 0; |
|
|
|
short newSpi = (short) 0; |
|
|
@ -1357,6 +1356,58 @@ public class PlayerCharacter extends AbstractCharacter { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//insert test run for lowered focus lines with trained spells
|
|
|
|
|
|
|
|
boolean tester = false; |
|
|
|
|
|
|
|
switch(stat){ |
|
|
|
|
|
|
|
case MBServerStatics.STAT_STR_ID: |
|
|
|
|
|
|
|
tester = refineStr(); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case MBServerStatics.STAT_DEX_ID: |
|
|
|
|
|
|
|
tester = refineDex(); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case MBServerStatics.STAT_CON_ID: |
|
|
|
|
|
|
|
tester = refineCon(); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case MBServerStatics.STAT_INT_ID: |
|
|
|
|
|
|
|
tester = refineInt(null); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case MBServerStatics.STAT_SPI_ID: |
|
|
|
|
|
|
|
tester = refineSpi(); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//loop through all skills and all powers to ensure that the refine doesn't yield a power no longer able to be cast
|
|
|
|
|
|
|
|
for(CharacterSkill charSkill : this.getSkills().values()) { |
|
|
|
|
|
|
|
for (CharacterPower power : this.getPowers().values()) { |
|
|
|
|
|
|
|
ArrayList<PowerReq> reqs = PowerReq.getPowerReqsForRune(power.getPowerID()); |
|
|
|
|
|
|
|
for (PowerReq req : reqs) { |
|
|
|
|
|
|
|
ConcurrentHashMap<String, CharacterSkill> playerSkills = this.getSkills(); |
|
|
|
|
|
|
|
CharacterSkill playerSkill = playerSkills.get(charSkill.getToken()); |
|
|
|
|
|
|
|
int currentSkillLevel = playerSkill.getTotalSkillPercet(); |
|
|
|
|
|
|
|
if (charSkill.getToken() == req.getToken() && req.getLevel() > currentSkillLevel) { |
|
|
|
|
|
|
|
//refund the point taken in the test
|
|
|
|
|
|
|
|
switch(stat){ |
|
|
|
|
|
|
|
case MBServerStatics.STAT_STR_ID: |
|
|
|
|
|
|
|
this.addStr(1); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case MBServerStatics.STAT_DEX_ID: |
|
|
|
|
|
|
|
this.addDex(1); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case MBServerStatics.STAT_CON_ID: |
|
|
|
|
|
|
|
this.addCon(1); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case MBServerStatics.STAT_INT_ID: |
|
|
|
|
|
|
|
this.addInt(1); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case MBServerStatics.STAT_SPI_ID: |
|
|
|
|
|
|
|
this.addSpi(1); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
return true; |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|