DDSpellList.java 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package org.leumasjaffe.charsheet.entity.magic;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.fasterxml.jackson.annotation.JsonCreator;
  5. import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
  6. import lombok.AccessLevel;
  7. import lombok.Data;
  8. import lombok.NonNull;
  9. import lombok.experimental.FieldDefaults;
  10. @Data
  11. @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
  12. @JsonIgnoreProperties(ignoreUnknown=true)
  13. public class DDSpellList {
  14. @NonNull Source group;
  15. @NonNull List<List<Integer>> known;
  16. @NonNull List<List<Integer>> perDay;
  17. @NonNull List<SpellList> spellList;
  18. @Data
  19. public static class SpellList {
  20. @NonNull List<DDSpell> spellList;
  21. @JsonCreator
  22. public SpellList(List<String> data) {
  23. this.spellList = new ArrayList<>(data.size());
  24. int idx = -1;
  25. for ( final String name : data ) {
  26. if ((idx = name.indexOf(':')) != -1) {
  27. spellList.add(DDSpellFactory.loadSpellWithResource(name.substring(0, idx), name.substring(idx)));
  28. } else {
  29. spellList.add(DDSpellFactory.loadSpell(name));
  30. }
  31. }
  32. }
  33. }
  34. }