package server; import constants.BattleConstants; import constants.GameConstants; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class RandomRewards { private static List<Integer> compiledGold = null; private static List<Integer> compiledSilver = null; private static List<Integer> compiledPeanut = null; private static List<Integer> compiledEvent = null; private static List<Integer> compiledEventC = null; private static List<Integer> compiledEventB = null; private static List<Integer> compiledEventA = null; private static List<Integer> compiledPokemon = null; private static List<Integer> compiledDrops = null; private static List<Integer> compiledDropsB = null; private static List<Integer> compiledDropsA = null; private static List<Integer> tenPercent = null; private static void processRewards(List<Integer> returnArray, int[] list) { int lastitem = 0; for (int i = 0; i < list.length; i++) { if (i % 2 == 0) { lastitem = list[i]; } else { for (int j = 0; j < list[i]; j++) { returnArray.add(lastitem); } } } Collections.shuffle(returnArray); } private static void processRewardsSimple(List<Integer> returnArray, int[] list) { for (int i = 0; i < list.length; i++) { returnArray.add(list[i]); } Collections.shuffle(returnArray); } private static void processPokemon(List<Integer> returnArray, BattleConstants.PItem[] list) { for (BattleConstants.PItem lastitem : list) { for (int j = 0; j < lastitem.getItemChance(); j++) { returnArray.add(lastitem.getId()); } } Collections.shuffle(returnArray); } public static int getGoldBoxReward() { return (compiledGold.get(Randomizer.nextInt(compiledGold.size()))); } public static int getSilverBoxReward() { return (compiledSilver.get(Randomizer.nextInt(compiledSilver.size()))); } public static int getPeanutReward() { return (compiledPeanut.get(Randomizer.nextInt(compiledPeanut.size()))); } public static int getPokemonReward() { return (compiledPokemon.get(Randomizer.nextInt(compiledPokemon.size()))); } public static int getEventReward() { int chance = Randomizer.nextInt(101); if (chance < 66) { return (compiledEventC.get(Randomizer.nextInt(compiledEventC.size()))); } if (chance < 86) { return (compiledEventB.get(Randomizer.nextInt(compiledEventB.size()))); } if (chance < 96) { return (compiledEventA.get(Randomizer.nextInt(compiledEventA.size()))); } return (compiledEvent.get(Randomizer.nextInt(compiledEvent.size()))); } public static int getDropReward() { int chance = Randomizer.nextInt(101); if (chance < 76) { return (compiledDrops.get(Randomizer.nextInt(compiledDrops.size()))); } if (chance < 96) { return (compiledDropsB.get(Randomizer.nextInt(compiledDropsB.size()))); } return (compiledDropsA.get(Randomizer.nextInt(compiledDropsA.size()))); } public static List<Integer> getTenPercent() { return tenPercent; } static void load() { } static { List returnArray = new ArrayList(); processRewards(returnArray, GameConstants.goldrewards); compiledGold = returnArray; returnArray = new ArrayList(); processRewards(returnArray, GameConstants.silverrewards); compiledSilver = returnArray; returnArray = new ArrayList(); processRewards(returnArray, GameConstants.fishingReward); returnArray = new ArrayList(); processRewards(returnArray, GameConstants.eventCommonReward); compiledEventC = returnArray; returnArray = new ArrayList(); processRewards(returnArray, GameConstants.eventUncommonReward); compiledEventB = returnArray; returnArray = new ArrayList(); processRewards(returnArray, GameConstants.eventRareReward); processRewardsSimple(returnArray, GameConstants.tenPercent); processRewardsSimple(returnArray, GameConstants.tenPercent); compiledEventA = returnArray; returnArray = new ArrayList(); processRewards(returnArray, GameConstants.eventSuperReward); compiledEvent = returnArray; returnArray = new ArrayList(); processRewards(returnArray, GameConstants.peanuts); compiledPeanut = returnArray; returnArray = new ArrayList(); processPokemon(returnArray, BattleConstants.PokemonItem.values()); processPokemon(returnArray, BattleConstants.HoldItem.values()); compiledPokemon = returnArray; returnArray = new ArrayList(); processRewardsSimple(returnArray, GameConstants.normalDrops); compiledDrops = returnArray; returnArray = new ArrayList(); processRewardsSimple(returnArray, GameConstants.rareDrops); compiledDropsB = returnArray; returnArray = new ArrayList(); processRewardsSimple(returnArray, GameConstants.superDrops); compiledDropsA = returnArray; returnArray = new ArrayList(); processRewardsSimple(returnArray, GameConstants.tenPercent); tenPercent = returnArray; } }