|
@@ -6,7 +6,6 @@ import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
import org.leumasjaffe.charsheet.model.magic.DDSpell;
|
|
import org.leumasjaffe.charsheet.model.magic.DDSpell;
|
|
|
-import org.leumasjaffe.charsheet.model.magic.DDSpellbook;
|
|
|
|
|
|
|
|
|
|
import lombok.AccessLevel;
|
|
import lombok.AccessLevel;
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
@@ -16,7 +15,7 @@ import lombok.experimental.NonFinal;
|
|
|
|
|
|
|
|
@AllArgsConstructor
|
|
@AllArgsConstructor
|
|
|
@FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
|
|
@FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
|
|
|
-public class Researched implements DDSpellbook {
|
|
|
|
|
|
|
+public class Researched implements Prepared {
|
|
|
@AllArgsConstructor
|
|
@AllArgsConstructor
|
|
|
@FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
|
|
@FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
|
|
|
private static class Level {
|
|
private static class Level {
|
|
@@ -49,9 +48,26 @@ public class Researched implements DDSpellbook {
|
|
|
}
|
|
}
|
|
|
--get(level).spellsPerDay;
|
|
--get(level).spellsPerDay;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
|
|
|
private Level get(int level) {
|
|
private Level get(int level) {
|
|
|
return spellInfo.getOrDefault(level, new Level(Collections.emptySet(), Collections.emptyList(), Collections.emptyList(), 0));
|
|
return spellInfo.getOrDefault(level, new Level(Collections.emptySet(), Collections.emptyList(), Collections.emptyList(), 0));
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<DDSpell> getSpellsPreparedPreviouslyForLevel(int level) {
|
|
|
|
|
+ return Collections.unmodifiableList(get(level).spellsPreparedPreviously);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void prepareSpells(int level, List<DDSpell> spells) {
|
|
|
|
|
+ final Level lInfo = get(level);
|
|
|
|
|
+ if (!lInfo.spellsKnown.containsAll(spells)) {
|
|
|
|
|
+ throw new IllegalArgumentException("Attempted to prepare spells that you don't know");
|
|
|
|
|
+ }
|
|
|
|
|
+ lInfo.spellsPrepared.clear();
|
|
|
|
|
+ lInfo.spellsPreparedPreviously.clear();
|
|
|
|
|
+ lInfo.spellsPrepared.addAll(spells);
|
|
|
|
|
+ lInfo.spellsPreparedPreviously.addAll(spells);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|