package com.lateensoft.pathfinder.toolkit.deprecated.v1.model.character;
import java.util.ArrayList;
public class PTSpellBook {
static final int NUM_SPELL_LEVELS = 10;
ArrayList<PTSpell> mSpells;
int mSpellCount[];
//LargestLevelSet mLargestLevelSet;
public PTSpellBook() {
mSpells = new ArrayList<PTSpell>();
/*
for(int i = 0; i < mSpells.size(); i++) {
mSpells.set(i, new ArrayList<PTSpell>());
// Dummy spell
//mSpells.get(i).add(new PTSpell());
}*/
//mSpells.add(new PTSpell());
}
/*
public PTSpellBook(PTSpell[][] spells) {
setSpells(spells);
}*/
/*
public PTSpell[] getSpells(int level) {
if(level < 0 || mSpells.isEmpty() || mSpells == null || mSpells.get(level) == null
|| mSpells.get(level).isEmpty()) {
PTSpell[] newSpellArray = new PTSpell[1];
newSpellArray[0] = new PTSpell();
return newSpellArray;
}
PTSpell[] levelSpells = new PTSpell[mSpells.get(level).size()];
return (PTSpell[]) ((ArrayList<PTSpell>)mSpells.get(level)).toArray(levelSpells);
}*/
public PTSpell[] getSpells() {
PTSpell[] spells = new PTSpell[mSpells.size()];
return (PTSpell[]) mSpells.toArray(spells);
}
/*
public void setSpells(PTSpell[][] spells) {
mSpells = new PTSpell[NUM_SPELL_LEVELS][mLargestLevelSet.value];
for(int j = 0; j < NUM_SPELL_LEVELS; j++) {
for(int i = 0; i < spells[j].length; i++) {
mSpells[j][i] = spells[j][i];
}
mSpellCount[j] = spells[j].length;
}
}*/
public void deleteSpell(PTSpell spell) {
//mSpells.get(spell.getLevel()).remove(mSpells.get(spell.getLevel()).indexOf(spell));
mSpells.remove(mSpells.indexOf(spell));
}
public void deleteSpell(int index) {
mSpells.remove(index);
}
/**
*
* @param level
* @param index
* @return The specified spell
*/
public PTSpell getSpell(int index) {
return (PTSpell) mSpells.get(index);
}
public void addSpell(PTSpell spell) {
if(spell == null)
return;
if(mSpells.size() == 0) {
mSpells.add(spell);
return;
}
for(int i = 0; i < this.getSpellCount(); i++) {
if(mSpells.get(i).getLevel() > spell.getLevel()) {
mSpells.add(i, spell);
return;
}
}
mSpells.add(spell);
}
public int getSpellCount() {
return mSpells.size();
}
public int getNumSpellLevels() {
return NUM_SPELL_LEVELS;
}
public boolean contains(PTSpell spell) {
if(mSpells.contains(spell))
return true;
return false;
}
public void setSpell(int mSpellSelectedForEdit, PTSpell spell) {
if(spell.getLevel() == mSpells.get(mSpellSelectedForEdit).getLevel()) {
mSpells.set(mSpellSelectedForEdit, spell);
} else {
// Make sure the spells stay ordered by level
mSpells.remove(mSpellSelectedForEdit);
this.addSpell(spell);
}
}
}