summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java')
-rw-r--r--src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java140
1 files changed, 120 insertions, 20 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java b/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java
index d124251..2ac5319 100644
--- a/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java
+++ b/src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java
@@ -11,35 +11,91 @@ public class AffixMods {
private static Map<String, ModifierEffect> prefixes;
private static Map<String, ModifierEffect> suffixes;
- private static List<WeightedRandomAffix> prefixGen;
- private static List<WeightedRandomAffix> suffixGen;
+ private static List<WeightedRandomAffix> generalPrefixGen;
+ private static List<WeightedRandomAffix> generalSuffixGen;
+
+ private static List<WeightedRandomAffix> ringPrefixGen;
+ private static List<WeightedRandomAffix> ringSuffixGen;
+
+ private static List<WeightedRandomAffix> braceletPrefixGen;
+ private static List<WeightedRandomAffix> braceletSuffixGen;
+
+ private static List<WeightedRandomAffix> necklacePrefixGen;
+ private static List<WeightedRandomAffix> necklaceSuffixGen;
+
+ private static List<WeightedRandomAffix> earringsPrefixGen;
+ private static List<WeightedRandomAffix> earringsSuffixGen;
public static void initializeAffixes(FMLPreInitializationEvent fpie) {
prefixes = new HashMap<String, ModifierEffect>();
suffixes = new HashMap<String, ModifierEffect>();
-
- prefixGen = new LinkedList<WeightedRandomAffix>();
- suffixGen = new LinkedList<WeightedRandomAffix>();
-
+
+ generalPrefixGen = new LinkedList<WeightedRandomAffix>();
+ generalSuffixGen = new LinkedList<WeightedRandomAffix>();
+
+ ringPrefixGen = new LinkedList<WeightedRandomAffix>();
+ ringSuffixGen = new LinkedList<WeightedRandomAffix>();
+
+ braceletPrefixGen = new LinkedList<WeightedRandomAffix>();
+ braceletSuffixGen = new LinkedList<WeightedRandomAffix>();
+
+ necklacePrefixGen = new LinkedList<WeightedRandomAffix>();
+ necklaceSuffixGen = new LinkedList<WeightedRandomAffix>();
+
+ earringsPrefixGen = new LinkedList<WeightedRandomAffix>();
+ earringsSuffixGen = new LinkedList<WeightedRandomAffix>();
+
ModifierEffect health1 = new HealthAffix(1);
ModifierEffect health2 = new HealthAffix(2);
ModifierEffect health3 = new HealthAffix(3);
-
+ ModifierEffect health4 = new HealthAffix(4);
+ ModifierEffect health5 = new HealthAffix(5);
+ ModifierEffect health6 = new HealthAffix(6);
+
prefixes.put("health1", health1);
prefixes.put("health2", health2);
prefixes.put("health3", health3);
-
- prefixGen.add(new WeightedRandomAffix("health1", 10));
- prefixGen.add(new WeightedRandomAffix("health2", 7));
- prefixGen.add(new WeightedRandomAffix("health3", 5));
-
+ prefixes.put("health4", health4);
+ prefixes.put("health5", health5);
+ prefixes.put("health6", health6);
+
suffixes.put("health1", health1);
suffixes.put("health2", health2);
suffixes.put("health3", health3);
-
- suffixGen.add(new WeightedRandomAffix("health1", 10));
- suffixGen.add(new WeightedRandomAffix("health2", 7));
- suffixGen.add(new WeightedRandomAffix("health3", 5));
+ suffixes.put("health4", health4);
+ suffixes.put("health5", health5);
+ suffixes.put("health6", health6);
+
+ WeightedRandomAffix wraHealth1 = new WeightedRandomAffix("health1", 10);
+ WeightedRandomAffix wraHealth2 = new WeightedRandomAffix("health2", 8);
+ WeightedRandomAffix wraHealth3 = new WeightedRandomAffix("health3", 6);
+ WeightedRandomAffix wraHealth4 = new WeightedRandomAffix("health4", 4);
+ WeightedRandomAffix wraHealth5 = new WeightedRandomAffix("health5", 2);
+ WeightedRandomAffix wraHealth6 = new WeightedRandomAffix("health6", 1);
+
+ generalPrefixGen.add(wraHealth1);
+ generalPrefixGen.add(wraHealth2);
+ generalPrefixGen.add(wraHealth3);
+ ringPrefixGen.add(wraHealth1);
+ ringPrefixGen.add(wraHealth2);
+ braceletPrefixGen.add(wraHealth2);
+ braceletPrefixGen.add(wraHealth3);
+ necklacePrefixGen.add(wraHealth4);
+ necklacePrefixGen.add(wraHealth5);
+ earringsPrefixGen.add(wraHealth5);
+ earringsPrefixGen.add(wraHealth6);
+
+ generalSuffixGen.add(wraHealth1);
+ generalSuffixGen.add(wraHealth2);
+ generalSuffixGen.add(wraHealth3);
+ ringSuffixGen.add(wraHealth1);
+ ringSuffixGen.add(wraHealth2);
+ braceletSuffixGen.add(wraHealth2);
+ braceletSuffixGen.add(wraHealth3);
+ necklaceSuffixGen.add(wraHealth4);
+ necklaceSuffixGen.add(wraHealth5);
+ earringsSuffixGen.add(wraHealth5);
+ earringsSuffixGen.add(wraHealth6);
}
public static ModifierEffect getPrefix(String prefix) {
@@ -50,14 +106,58 @@ public class AffixMods {
return suffixes.get(suffix);
}
- public static String pickPrefix(Random random) {
- WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, prefixGen));
+ public static String pickPrefix(Random random, int jewelType) {
+ List<WeightedRandomAffix> pickList = generalPrefixGen;
+
+ if (random.nextInt(3) != 0) {
+ switch (jewelType) {
+ case 0:
+ pickList = ringPrefixGen;
+ break;
+ case 1:
+ pickList = braceletPrefixGen;
+ break;
+ case 2:
+ pickList = necklacePrefixGen;
+ break;
+ case 3:
+ pickList = earringsPrefixGen;
+ break;
+ case -1:
+ default:
+ pickList = generalPrefixGen;
+ }
+ }
+
+ WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, pickList));
return wra.getAffix(random);
}
- public static String pickSuffix(Random random) {
- WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, suffixGen));
+ public static String pickSuffix(Random random, int jewelType) {
+ List<WeightedRandomAffix> pickList = generalSuffixGen;
+
+ if (random.nextInt(3) != 0) {
+ switch (jewelType) {
+ case 0:
+ pickList = ringSuffixGen;
+ break;
+ case 1:
+ pickList = braceletSuffixGen;
+ break;
+ case 2:
+ pickList = necklaceSuffixGen;
+ break;
+ case 3:
+ pickList = earringsSuffixGen;
+ break;
+ case -1:
+ default:
+ pickList = generalSuffixGen;
+ }
+ }
+
+ WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, pickList));
return wra.getAffix(random);
}