Ver Fonte

Cleaning up Range a bit

Sam Jaffe há 8 anos atrás
pai
commit
a9e600a5f0

+ 4 - 2
src/org/leumasjaffe/charsheet/config/Constants.java

@@ -9,6 +9,8 @@ import lombok.experimental.UtilityClass;
 public final class Constants {
 	static String NO_FLAT_FOOTED = "Keeps Dexterity When Flat-footed";
 	
-	String DISTANCE = "Distance Measurement Unit";
-	static int DISTANCE_MEASUREMENT_FEET = 0x0, DISTANCE_MEASUREMENT_SQUARES = 0x1;
+	String K_DISTANCE = "Distance Measurement Unit";
+	public enum DistanceMeasurement {
+		FEET, SQUARES
+	}
 }

+ 6 - 5
src/org/leumasjaffe/charsheet/model/magic/dimension/Range.java

@@ -13,10 +13,11 @@ import lombok.NonNull;
 import lombok.RequiredArgsConstructor;
 import lombok.experimental.FieldDefaults;
 
-import static org.leumasjaffe.charsheet.config.Constants.*;
+import static org.leumasjaffe.charsheet.config.Constants.K_DISTANCE;
+import static org.leumasjaffe.charsheet.config.Constants.DistanceMeasurement.*;
 
 public interface Range {	
-	@FieldDefaults(level=AccessLevel.PUBLIC, makeFinal=true)
+	@FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
 	public static final class __Pair {
 		int[] value;
 		String measure;
@@ -24,7 +25,7 @@ public interface Range {
 		private __Pair(int... feet) {
 			value = new int[feet.length];
 			final int div;
-			if (Config.<Integer>get(DISTANCE, DISTANCE_MEASUREMENT_FEET).equals(DISTANCE_MEASUREMENT_SQUARES)) {
+			if (Config.get(K_DISTANCE, FEET) == SQUARES) {
 				div = 5;
 				measure = "squares";
 			} else {
@@ -108,8 +109,8 @@ public interface Range {
 		
 		public String toString() {
 			final __Pair p = new __Pair(range, per);
-			final StringBuilder str = new StringBuilder(StringHelper.format("{} ({} {3} + {} {}/{?level:{} levels})",
-					name, p.value[0], p.value[1], p.measure, step == 1, step));
+			final StringBuilder str = new StringBuilder(StringHelper.format("{} ({} {3} + {} {}/{=1?level:{4} levels})",
+					name, p.value[0], p.value[1], p.measure, step));
 			return str.toString();
 		}
 	}

+ 2 - 1
src/org/leumasjaffe/format/StringFormatter.java

@@ -99,10 +99,11 @@ public class StringFormatter {
 
 		private boolean getConditionToken(final String token, final int end) {
 			final String cond = token.substring(0, end);
-			Matcher matcher = Pattern.compile("^(\\d*|[a-zA-Z_]+)(>=?|<=?|!=|==)(\\d+)$").matcher(cond);
+			Matcher matcher = Pattern.compile("^(\\d*|[a-zA-Z_]+)(>=?|<=?|!=|==?)(\\d+)$").matcher(cond);
 			if (matcher.matches()) {
 				final int cmp = ((Integer) getToken(matcher.group(1))).compareTo(Integer.valueOf(matcher.group(3)));
 				switch (matcher.group(2)) {
+				case "=" : return cmp == 0;
 				case "==": return cmp == 0;
 				case "!=": return cmp != 0;
 				case "<" : return cmp <  0;