| 123456789101112131415161718192021222324252627282930313233 |
- package org.leumasjaffe.charsheet.model.magic;
- import java.util.Collection;
- import java.util.List;
- import com.fasterxml.jackson.annotation.JsonTypeInfo;
- import lombok.NonNull;
- @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY)
- public interface DDSpellbook {
- @NonNull Collection<DDSpell> spellsKnownAtLevel( int level );
- @NonNull List<DDSpell> spellsPreparedAtLevel( int level );
-
- @NonNull default List<DDSpell> getSpellsPreparedPreviouslyForLevel(int level) { return spellsPreparedAtLevel(level); }
- default boolean preparesSpells() { return false; }
-
- default int numSpellsKnownAtLevel( int level ) {
- return spellsKnownAtLevel( level ).size();
- }
-
- int numSpellsPerDayAtLevel( int level );
-
- default int numSpellsPerDayRemainingAtLevel(int level) {
- return spellsPreparedAtLevel( level ).size();
- }
-
- void castSpell( int level, final DDSpell spell );
-
- void prepareSpells(int level, List<DDSpell> spells);
- }
|