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); ModifierEffect flatDMG1 = new DamageAffix(1, 0, 1); ModifierEffect flatDMG2 = new DamageAffix(2, 0, 1); ModifierEffect flatDMG3 = new DamageAffix(3, 0, 1); ModifierEffect flatDMG4 = new DamageAffix(4, 0, 1); ModifierEffect flatDMG5 = new DamageAffix(5, 0, 1); ModifierEffect flatDMG6 = new DamageAffix(6, 0, 1); ModifierEffect flatarm1 = new ArmorAffix(1, 0, 1); ModifierEffect flatarm2 = new ArmorAffix(2, 0, 1); ModifierEffect flatarm3 = new ArmorAffix(3, 0, 1); ModifierEffect flatarm4 = new ArmorAffix(4, 0, 1); ModifierEffect flatarm5 = new ArmorAffix(5, 0, 1); ModifierEffect flatarm6 = new ArmorAffix(6, 0, 1); prefixes.put("health1", health1); prefixes.put("health2", health2); prefixes.put("health3", health3); prefixes.put("health4", health4); prefixes.put("health5", health5); prefixes.put("health6", health6); prefixes.put("flatdmg1", flatDMG1); prefixes.put("flatdmg2", flatDMG2); prefixes.put("flatdmg3", flatDMG3); prefixes.put("flatdmg4", flatDMG4); prefixes.put("flatdmg5", flatDMG5); prefixes.put("flatdmg6", flatDMG6); suffixes.put("health1", health1); suffixes.put("health2", health2); suffixes.put("health3", health3); suffixes.put("hitheal1", hitheal1); suffixes.put("hitheal2", hitheal2); suffixes.put("hitheal3", hitheal3); suffixes.put("flatarm1", flatarm1); suffixes.put("flatarm2", flatarm2); suffixes.put("flatarm3", flatarm3); suffixes.put("flatarm4", flatarm4); suffixes.put("flatarm5", flatarm5); suffixes.put("flatarm6", flatarm6); /* * Affix generation */ WeightedRandomAffix wraHealth1 = new WeightedRandomAffix("health1", 9); 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); WeightedRandomAffix wraflatDMG1 = new WeightedRandomAffix("flatdmg1", 9); WeightedRandomAffix wraflatDMG2 = new WeightedRandomAffix("flatdmg2", 8); WeightedRandomAffix wraflatDMG3 = new WeightedRandomAffix("flatdmg3", 6); WeightedRandomAffix wraflatDMG4 = new WeightedRandomAffix("flatdmg4", 4); WeightedRandomAffix wraflatDMG5 = new WeightedRandomAffix("flatdmg5", 2); WeightedRandomAffix wraflatDMG6 = new WeightedRandomAffix("flatdmg6", 1); WeightedRandomAffix wraflatarm1 = new WeightedRandomAffix("flatarm1", 9); WeightedRandomAffix wraflatarm2 = new WeightedRandomAffix("flatarm2", 8); WeightedRandomAffix wraflatarm3 = new WeightedRandomAffix("flatarm3", 6); WeightedRandomAffix wraflatarm4 = new WeightedRandomAffix("flatarm4", 4); WeightedRandomAffix wraflatarm5 = new WeightedRandomAffix("flatarm5", 2); WeightedRandomAffix wraflatarm6 = new WeightedRandomAffix("flatarm6", 1); /* * Prefixes */ 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); generalPrefixGen.add(wraflatDMG1); generalPrefixGen.add(wraflatDMG2); ringPrefixGen.add(wraflatDMG1); braceletPrefixGen.add(wraflatDMG2); braceletPrefixGen.add(wraflatDMG3); necklacePrefixGen.add(wraflatDMG3); necklacePrefixGen.add(wraflatDMG4); necklacePrefixGen.add(wraflatDMG5); earringsPrefixGen.add(wraflatDMG5); earringsPrefixGen.add(wraflatDMG6); /* * Suffixes */ 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); generalSuffixGen.add(wraflatarm1); generalSuffixGen.add(wraflatarm2); generalSuffixGen.add(wraflatarm3); ringSuffixGen.add(wraflatarm1); ringSuffixGen.add(wraflatarm2); braceletSuffixGen.add(wraflatarm2); braceletSuffixGen.add(wraflatarm3); braceletSuffixGen.add(wraflatarm4); necklaceSuffixGen.add(wraflatarm4); necklaceSuffixGen.add(wraflatarm5); earringsSuffixGen.add(wraflatarm5); earringsSuffixGen.add(wraflatarm6); } 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; } } if (pickList.size() <= 0) 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; } } if (pickList.size() <= 0) pickList = generalSuffixGen; WeightedRandomAffix wra = ((WeightedRandomAffix) WeightedRandom.getRandomItem(random, pickList)); return wra.getAffix(random); } }