package com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character.stats;
public class PTAbilitySetCalc extends PTAbilitySet {
private PTAbilityScore[] mAbilitiesPostMods;
public PTAbilitySetCalc() {
super();
//Resources res = android.content.res.Resources.getSystem();
//int base_ability = res.getInteger(R.integer.base_ability_score);
mAbilitiesPostMods = new PTAbilityScore[ABILITY_NAMES.length];
for(int i = 0; i < ABILITY_NAMES.length; i++) {
mAbilitiesPostMods[i] = new PTAbilityScore(ABILITY_NAMES[i], BASE_ABILITY_SCORE);
}
}
// Returns the point buy cost of the set
public int getPointBuyCost() {
int total = 0;
for(int i = 0; i < super.getLength(); i++) {
total += super.getAbilityScore(i).getAbilityPointCost();
}
return total;
}
// Increments the ability score with the corresponding
// ability string, if it is valid to do so
public void incAbilityScore(String ability) {
for(int i = 0; i < super.getLength(); i++) {
if(ability.equals(super.getAbilityScore(i).getAbility())) {
super.getAbilityScore(i).incScore();
return;
}
}
}
// Increments the ability score with the corresponding
// ability string, if it is valid to do so
public void decAbilityScore(String ability) {
for(int i = 0; i < super.getLength(); i++) {
if(ability.equals(super.getAbilityScore(i).getAbility())) {
super.getAbilityScore(i).decScore();
return;
}
}
}
public void applyMods(PTAbilityModSet modSet) {
int[] mods = modSet.getMods();
int[] baseAbilities = super.getScores();
if(mods.length != baseAbilities.length) {
return;
}
for(int i = 0; i < mAbilitiesPostMods.length; i++) {
mAbilitiesPostMods[i].setScore(mods[i] + baseAbilities[i]);
}
}
public int[] getScoresPostMods() {
int[] scores = new int[mAbilitiesPostMods.length];
for(int i = 0; i < mAbilitiesPostMods.length; i++) {
scores[i] = mAbilitiesPostMods[i].getScore();
}
return scores;
}
public int getScorePostMod(int index) {
return mAbilitiesPostMods[index].getScore();
}
public PTAbilityScore getAbilityScorePostMod(int index) {
return mAbilitiesPostMods[index];
}
public PTAbilitySet getAbilitySetPostMods() {
PTAbilitySet abilitySet = new PTAbilitySet();
abilitySet.setScores(this.getScoresPostMods());
return abilitySet;
}
}