diff options
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java')
| -rw-r--r-- | src/main/java/darkknight/jewelrycraft/affixes/AffixMods.java | 140 |
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); } |
