|
|
@@ -5,7 +5,9 @@ import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import org.leumasjaffe.charsheet.model.DDClass;
|
|
|
import org.leumasjaffe.charsheet.model.magic.DDSpell;
|
|
|
+import org.leumasjaffe.charsheet.model.observable.IntValue;
|
|
|
|
|
|
import lombok.AccessLevel;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
@@ -23,8 +25,22 @@ public class Researched extends Prepared {
|
|
|
@NonNull List<DDSpell> spellsPrepared, spellsPreparedPreviously;
|
|
|
@NonFinal int spellsPerDay;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ private static class ClassReference {
|
|
|
+ DDClass ref;
|
|
|
+ @SuppressWarnings("unused")
|
|
|
+ public ClassReference(String name) {
|
|
|
+ this.ref = DDClass.getFromResource(name);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ int freeSpellsPerLevel;
|
|
|
@NonNull Map<Integer, Researched.Level> spellInfo;
|
|
|
+ @NonNull ClassReference classRef;
|
|
|
+
|
|
|
+ public IntValue getSharedAllowedSlots() {
|
|
|
+ return new IntValue(freeSpellsPerLevel);
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public boolean learnsSpells() {
|
|
|
@@ -38,7 +54,7 @@ public class Researched extends Prepared {
|
|
|
|
|
|
@Override
|
|
|
public Collection<DDSpell> spellsKnownAtLevel(int level) {
|
|
|
- return Collections.unmodifiableCollection(get(level).spellsKnown);
|
|
|
+ return level == 0 ? classRef.ref.getSpellList(0) : Collections.unmodifiableCollection(get(level).spellsKnown);
|
|
|
}
|
|
|
|
|
|
@Override
|