JScratch
Loading...
Searching...
No Matches
DNDClassFactory.java
Go to the documentation of this file.
1package com.burrbox.dndiablo;
2
3import java.util.Arrays;
4import java.util.ArrayList;
5
10public class DNDClassFactory {
11
12 public static DNDClass createClass(String name) {
13 DNDClass dndClass = new DNDClass();
14 dndClass.className = name;
15 dndClass.features = new ArrayList<>(); // Initialize empty list for features
16
17 switch (name.toLowerCase()) {
18 case "artificer":
19 setStats(dndClass, 8, true, "Intelligence", "Intelligence", "Constitution", "Intelligence");
20 break;
21 case "barbarian":
22 setStats(dndClass, 12, false, null, "Strength", "Strength", "Constitution");
23 break;
24 case "bard":
25 setStats(dndClass, 8, true, "Charisma", "Charisma", "Dexterity", "Charisma");
26 break;
27 case "cleric":
28 setStats(dndClass, 8, true, "Wisdom", "Wisdom", "Wisdom", "Charisma");
29 break;
30 case "druid":
31 setStats(dndClass, 8, true, "Wisdom", "Wisdom", "Intelligence", "Wisdom");
32 break;
33 case "fighter":
34 setStats(dndClass, 10, false, null, "Strength", "Strength", "Constitution"); // Can also be Dex
35 break;
36 case "monk":
37 setStats(dndClass, 8, false, null, "Dexterity", "Strength", "Dexterity");
38 break;
39 case "paladin":
40 setStats(dndClass, 10, true, "Charisma", "Strength", "Wisdom", "Charisma");
41 break;
42 case "ranger":
43 setStats(dndClass, 10, true, "Wisdom", "Dexterity", "Strength", "Dexterity");
44 break;
45 case "rogue":
46 setStats(dndClass, 8, false, null, "Dexterity", "Dexterity", "Intelligence");
47 break;
48 case "sorcerer":
49 setStats(dndClass, 6, true, "Charisma", "Charisma", "Constitution", "Charisma");
50 break;
51 case "warlock":
52 setStats(dndClass, 8, true, "Charisma", "Charisma", "Wisdom", "Charisma");
53 break;
54 case "wizard":
55 setStats(dndClass, 6, true, "Intelligence", "Intelligence", "Intelligence", "Wisdom");
56 break;
57 default:
58 throw new IllegalArgumentException("Unknown D&D Class: " + name);
59 }
60 return dndClass;
61 }
62
66 private static void setStats(DNDClass cl, int hitDie, boolean isCaster, String spellAttr, String primary, String save1, String save2) {
67 cl.hitDie = hitDie;
68 cl.isSpellcaster = isCaster;
69 cl.spellcastingAbility = spellAttr;
70 cl.primaryAbilities = Arrays.asList(primary);
71 cl.savingThrowProficiencies = Arrays.asList(save1, save2);
72 }
73}
static void setStats(DNDClass cl, int hitDie, boolean isCaster, String spellAttr, String primary, String save1, String save2)
static DNDClass createClass(String name)