Parcourir la source

Creating prototype factory to quick-build skills.

Sam Jaffe il y a 9 ans
Parent
commit
91bbed2b9a

+ 11 - 0
resources/Potato.json

@@ -50,6 +50,17 @@
     }
   },
   
+  "skills":[
+    {"name":"Concentration","ability":"CON","isClassSkill":true,"requiresTraining":false,"ranks":3.0,"pointsSpent":3},
+    {"name":"Climb","ability":"INT","isClassSkill":true,"requiresTraining":false,"ranks":4.0,"pointsSpent":4},
+    {"name":"Diplomacy","ability":"CHA","isClassSkill":true,"requiresTraining":false,"ranks":1.0,"pointsSpent":1},
+    {"name":"Heal","ability":"WIS","isClassSkill":true,"requiresTraining":false,"ranks":4.0,"pointsSpent":4},
+    {"name":"Knowledege (Arcana)","ability":"INT","isClassSkill":true,"requiresTraining":true,"ranks":6.0,"pointsSpent":6},
+    {"name":"Knowledege (Religion)","ability":"INT","isClassSkill":true,"requiresTraining":true,"ranks":5.0,"pointsSpent":5},
+    {"name":"Knowledege (Nature)","ability":"INT","isClassSkill":true,"requiresTraining":true,"ranks":6.0,"pointsSpent":6},
+    {"name":"Perform (Sing)","ability":"CHA","isClassSkill":true,"requiresTraining":true,"ranks":3.0,"pointsSpent":3}
+  ]
+  
   "inventory":{
     "items":[
       {

+ 37 - 0
resources/skills/skills.json

@@ -0,0 +1,37 @@
+[
+  {"name":"Appraise","ability":"INT","requiresTraining":false},
+  {"name":"Balance","ability":"DEX","requiresTraining":false},
+  {"name":"Bluff","ability":"CHA","requiresTraining":false},
+  {"name":"Climb","ability":"STR","requiresTraining":false},
+  {"name":"Concentration","ability":"CON","requiresTraining":false},
+  {"name":"Decipher Script","ability":"INT","requiresTraining":true},
+  {"name":"Diplomacy","ability":"CHA","requiresTraining":false},
+  {"name":"Disable Device","ability":"INT","requiresTraining":true},
+  {"name":"Disguise","ability":"CHA","requiresTraining":false},
+  {"name":"Escape Artist","ability":"DEX","requiresTraining":false},
+  {"name":"Forgery","ability":"INT","requiresTraining":false},
+  {"name":"Gather Information","ability":"CHA","requiresTraining":false},
+  {"name":"Handle Animal","ability":"CHA","requiresTraining":true},
+  {"name":"Heal","ability":"WIS","requiresTraining":false},
+  {"name":"Hide","ability":"DEX","requiresTraining":false},
+  {"name":"Intimidate","ability":"CHA","requiresTraining":false},
+  {"name":"Jump","ability":"STR","requiresTraining":false},
+  {"name":"Listen","ability":"WIS","requiresTraining":false},
+  {"name":"Move Silently","ability":"DEX","requiresTraining":false},
+  {"name":"Open Lock","ability":"DEX","requiresTraining":true},
+  {"name":"Ride","ability":"DEX","requiresTraining":false},
+  {"name":"Search","ability":"INT","requiresTraining":false},
+  {"name":"Sense Motive","ability":"WIS","requiresTraining":false},
+  {"name":"Sleight of Hand","ability":"DEX","requiresTraining":true},
+  {"name":"Spellcraft","ability":"INT","requiresTraining":true},
+  {"name":"Spot","ability":"WIS","requiresTraining":false},
+  {"name":"Survival","ability":"WIS","requiresTraining":false},
+  {"name":"Swim","ability":"STR","requiresTraining":false},
+  {"name":"Tumble","ability":"DEX","requiresTraining":true},
+  {"name":"Use Magic Device","ability":"CHA","requiresTraining":true},
+  {"name":"Use Rope","ability":"DEX","requiresTraining":false},
+  {"name":"Craft (*)","ability":"INT","requiresTraining":false},
+  {"name":"Knowledge (*)","ability":"INT","requiresTraining":true},
+  {"name":"Perform (*)","ability":"CHA","requiresTraining":true},
+  {"name":"Profession (*)","ability":"WIS","requiresTraining":true}
+]

+ 25 - 0
src/org/leumasjaffe/charsheet/model/skill/DDSkillPrototype.java

@@ -1,5 +1,10 @@
 package org.leumasjaffe.charsheet.model.skill;
 
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+
 import lombok.AccessLevel;
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -12,4 +17,24 @@ public class DDSkillPrototype {
 	final String name;
 	final boolean requiresTraining;
 	String ability;
+	
+	private static final Map<String, DDSkillPrototype> prototypes;
+	
+	static {
+		Map<String, DDSkillPrototype> tmp = new HashMap<>();
+		// TODO
+		prototypes = Collections.unmodifiableMap(tmp);
+	}
+	
+	public static Optional<DDSkillPrototype> getPrototype(String name) {
+		if (name.contains("(")) {
+			return Optional.ofNullable(getProtoTypeInternal(name.replaceFirst("(.*)", "(*)")));
+		} else {
+			return Optional.ofNullable(getProtoTypeInternal(name));
+		}
+	}
+
+	private static DDSkillPrototype getProtoTypeInternal(String name) {
+		return prototypes.get(name);
+	}
 }