Explorar el Código

Removing unneeded complexity in DDPropertyChooser/DDProperty split

Sam Jaffe hace 8 años
padre
commit
23d488dc50

+ 5 - 5
resources/classes/Bard.json

@@ -7,11 +7,11 @@
   "will":"GOOD",
   "features":[
     [
-      {"@c":".impl.Simple$Chooser", "name":"Bardic Music"},
-      {"@c":".impl.Simple$Chooser", "name":"Bardic Knowledge"},
-      {"@c":".impl.Simple$Chooser", "name":"Countersong"},
-      {"@c":".impl.Simple$Chooser", "name":"Fascinate"},
-      {"@c":".impl.Simple$Chooser", "name":"Inspire Courage +1"}
+      {"@c":".impl.Simple", "name":"Bardic Music"},
+      {"@c":".impl.Simple", "name":"Bardic Knowledge"},
+      {"@c":".impl.Simple", "name":"Countersong"},
+      {"@c":".impl.Simple", "name":"Fascinate"},
+      {"@c":".impl.Simple", "name":"Inspire Courage +1"}
     ],
     []
   ],

+ 1 - 1
resources/classes/Cleric.json

@@ -8,7 +8,7 @@
   "features":[
     [
       {
-        "@c":".impl.Simple$Chooser",
+        "@c":".impl.Simple",
         "name":"Turn or Rebuke Undead"
       },
       {

+ 7 - 1
src/main/lombok/org/leumasjaffe/charsheet/model/features/impl/Flat.java

@@ -2,6 +2,7 @@ package org.leumasjaffe.charsheet.model.features.impl;
 
 import org.leumasjaffe.charsheet.model.features.DDFeaturePredicate;
 import org.leumasjaffe.charsheet.model.features.DDProperty;
+import org.leumasjaffe.charsheet.model.features.DDPropertyChooser;
 import org.leumasjaffe.charsheet.model.features.GroupedBonus;
 import org.leumasjaffe.collections.Tree;
 
@@ -10,7 +11,7 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 
 @AllArgsConstructor @EqualsAndHashCode
-public class Flat implements DDProperty {
+public class Flat implements DDProperty, DDPropertyChooser {
 	@Getter String name, description;
 	DDFeaturePredicate applies;
 	Group group;
@@ -26,4 +27,9 @@ public class Flat implements DDProperty {
 		props.putIfAbsent(new GroupedBonus());
 		props.get().accumulate(group, value);
 	}
+	
+	@Override public String getHeader() { return getName(); }
+	@Override public DDProperty get(int selectedIndex) { 
+		return new Flat(name, description, applies, group, value);
+	}
 }

+ 7 - 1
src/main/lombok/org/leumasjaffe/charsheet/model/features/impl/PerSpellLevel.java

@@ -3,6 +3,7 @@ package org.leumasjaffe.charsheet.model.features.impl;
 import org.leumasjaffe.charsheet.model.DDCharacterClass;
 import org.leumasjaffe.charsheet.model.features.DDFeaturePredicate;
 import org.leumasjaffe.charsheet.model.features.DDProperty;
+import org.leumasjaffe.charsheet.model.features.DDPropertyChooser;
 import org.leumasjaffe.charsheet.model.features.GroupedBonus;
 import org.leumasjaffe.charsheet.model.magic.DDSpell;
 import org.leumasjaffe.collections.Tree;
@@ -12,7 +13,7 @@ import lombok.EqualsAndHashCode;
 import lombok.Getter;
 
 @AllArgsConstructor @EqualsAndHashCode
-public class PerSpellLevel implements DDProperty {
+public class PerSpellLevel implements DDProperty, DDPropertyChooser {
 	@Getter String name, description;
 	DDFeaturePredicate applies;
 	Group group;
@@ -38,4 +39,9 @@ public class PerSpellLevel implements DDProperty {
 		props.get("effect").putIfAbsent(new GroupedBonus());
 		props.get("effect").get().accumulate(group, value * level);
 	}
+	
+	@Override public String getHeader() { return getName(); }
+	@Override public DDProperty get(int selectedIndex) { 
+		return new PerSpellLevel(name, description, applies, group, type, value);
+	}
 }

+ 6 - 17
src/main/lombok/org/leumasjaffe/charsheet/model/features/impl/Simple.java

@@ -7,26 +7,15 @@ import org.leumasjaffe.collections.Tree;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.experimental.Delegate;
 
 @AllArgsConstructor @Data
-public class Simple implements DDProperty {
-	private static interface IFaceHelper {
-		void setName(String name);
-		void setDescription(String desc);
-	}
-	@Getter @Setter
-	public static class Chooser implements DDPropertyChooser {
-		@Delegate(types=IFaceHelper.class) Simple impl = new Simple("", "");
-		
-		@Override public String getHeader() { return impl.getName(); }
-		@Override public DDProperty get(int selectedIndex) { 
-			return new Simple(impl.getName(), impl.getDescription());
-		}
-	}
+public class Simple implements DDProperty, DDPropertyChooser {
 	String name, description;
 	@Override public boolean appliesTo(Object key) { return false; }
 	@Override public void accumulate(Tree<String, GroupedBonus> props, Object... data) {}
+	
+	@Override public String getHeader() { return getName(); }
+	@Override public DDProperty get(int selectedIndex) { 
+		return new Simple(name, description);
+	}
 }