Explorar o código

Order classes, so they don't go in randomly

Sam Jaffe %!s(int64=8) %!d(string=hai) anos
pai
achega
6f0fa8d3b7

+ 3 - 2
src/org/leumasjaffe/charsheet/model/DDCharacter.java

@@ -1,9 +1,10 @@
 package org.leumasjaffe.charsheet.model;
 
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
 
 import org.leumasjaffe.charsheet.model.inventory.DDInventory;
 import org.leumasjaffe.charsheet.model.observable.IntValue;
@@ -28,7 +29,7 @@ public class DDCharacter {
 	
 	@NonNull String player = "";
 	
-	@NonNull @Getter(AccessLevel.NONE) Set<DDCharacterClass> classes = new HashSet<>();
+	@NonNull @Getter(AccessLevel.NONE) SortedSet<DDCharacterClass> classes = new TreeSet<>();
 	
 	@NonNull String race = "";
 	@NonNull Alignment alignment;

+ 7 - 1
src/org/leumasjaffe/charsheet/model/DDCharacterClass.java

@@ -14,7 +14,7 @@ import lombok.experimental.NonFinal;
 
 @Data
 @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
-public class DDCharacterClass {
+public class DDCharacterClass implements Comparable<DDCharacterClass> {
 	private static final class Reference {
 		DDClass base;
 		
@@ -80,8 +80,14 @@ public class DDCharacterClass {
 	
 	public int getHighestSpellLevel() {
 		// TODO: Bonus levels to spellsKnown/spellsPerDay?
+		// TODO: Bonus spellsPerDay for high ability scores
 		final List<Integer> list = getProto().getSpells().get().getPerDay().get(getLevel()-1);
 		final int level = list.size() - 1;
 		return list.get(level) == 0 ? level : level + 1;
 	}
+
+	@Override
+	public int compareTo(DDCharacterClass o) {
+		return getName().compareTo(o.getName());
+	}
 }