public static void addSpellsToClassForLevels( PlayerCharacter pc, Domain d, PCClass aClass, int minLevel, int maxLevel) { if (aClass == null) { return; } for (int aLevel = minLevel; aLevel <= maxLevel; aLevel++) { Collection<Spell> domainSpells = pc.getSpellsIn(d.get(ObjectKey.DOMAIN_SPELLLIST), aLevel); for (Spell spell : domainSpells) { List<CharacterSpell> slist = pc.getCharacterSpells(aClass, spell, Globals.getDefaultSpellBook(), aLevel); boolean flag = true; for (CharacterSpell cs1 : slist) { flag = !(cs1.getOwner().equals(d)); if (!flag) { break; } } if (flag) { CharacterSpell cs = new CharacterSpell(d, spell); cs.addInfo(aLevel, 1, Globals.getDefaultSpellBook()); pc.addCharacterSpell(aClass, cs); } } } }
/** * Remove any spells granted by the domain to the class. * * @param pc The character. * @param domain The domain. * @param aClass The class which would have the spells allocated. */ public static void removeSpellsFromClassForLevels( PlayerCharacter pc, Domain domain, PCClass aClass) { if (aClass == null) { return; } Collection<? extends CharacterSpell> characterSpells = pc.getCharacterSpells(aClass); for (CharacterSpell characterSpell : characterSpells) { if (characterSpell.getOwner() == domain) { pc.removeCharacterSpell(aClass, characterSpell); } } }