package darkknight.jewelrycraft.affixes; import java.util.*; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import darkknight.jewelrycraft.api.ModifierEffect; import darkknight.jewelrycraft.random.WeightedRandomAffix; import net.minecraft.util.WeightedRandom; public class AffixMods { private static Map prefixes; private static Map suffixes; private static List generalPrefixGen; private static List generalSuffixGen; private static List ringPrefixGen; private static List ringSuffixGen; private static List braceletPrefixGen; private static List braceletSuffixGen; private static List necklacePrefixGen; private static List necklaceSuffixGen; private static List earringsPrefixGen; private static List earringsSuffixGen; public static void initializeAffixes(FMLPreInitializationEvent fpie) { prefixes = new HashMap(); suffixes = new HashMap(); generalPrefixGen = new LinkedList(); generalSuffixGen = new LinkedList(); ringPrefixGen = new LinkedList(); ringSuffixGen = new LinkedList(); braceletPrefixGen = new LinkedList(); braceletSuffixGen = new LinkedList(); necklacePrefixGen = new LinkedList(); necklaceSuffixGen = new LinkedList(); earringsPrefixGen = new LinkedList(); earringsSuffixGen = new LinkedList(); 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); ModifierEffect hitheal1 = new FlatLifeHitAffix(1); ModifierEffect hitheal2 = new FlatLifeHitAffix(2); ModifierEffect hitheal3 = new FlatLifeHitAffix(3); prefixes.put("health1", health1); prefixes.put("health2", health2); prefixes.put("health3", health3); prefixes.put("health4", health4); prefixes.put("health5", health5); prefixes.put("health6", health6); suffixes.put("health1", health1); suffixes.put("health2", health2); suffixes.put("health3", health3); suffixes.put("hitheal1", hitheal1); suffixes.put("hitheal2", hitheal2); suffixes.put("hitheal3", hitheal3); 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); WeightedRandomAffix wraHitheal1 = new WeightedRandomAffix("hitheal1", 9); WeightedRandomAffix wraHitheal2 = new WeightedRandomAffix("hitheal2", 8); WeightedRandomAffix wraHitheal3 = new WeightedRandomAffix("hitheal3", 7); 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); generalSuffixGen.add(wraHitheal1); braceletSuffixGen.add(wraHitheal1); braceletSuffixGen.add(wraHitheal2); necklaceSuffixGen.add(wraHitheal2); necklaceSuffixGen.add(wraHitheal3); } public static ModifierEffect getPrefix(String prefix) { return prefixes.get(prefix); } public static ModifierEffect getSuffix(String suffix) { return suffixes.get(suffix); } public static String pickPrefix(Random random, int jewelType) { List 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, int jewelType) { List 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); } }