package javastory.game.data; import java.util.Collections; import java.util.List; import com.google.common.collect.Lists; import javastory.game.GameConstants; import javastory.tools.Randomizer; public class RandomRewards { private final static RandomRewards instance = new RandomRewards(); private List<Integer> compiledGold = null; private List<Integer> compiledSilver = null; private List<Integer> compiledFishing = null; public static RandomRewards getInstance() { return instance; } protected RandomRewards() { System.out.println(":: Loading RandomRewards ::"); // Gold Box List<Integer> returnArray = Lists.newArrayList(); this.processRewards(returnArray, GameConstants.goldrewards); this.compiledGold = returnArray; // Silver Box returnArray = Lists.newArrayList(); this.processRewards(returnArray, GameConstants.silverrewards); this.compiledSilver = returnArray; // Fishing Rewards returnArray = Lists.newArrayList(); this.processRewards(returnArray, GameConstants.fishingReward); this.compiledFishing = returnArray; } private void processRewards(final List<Integer> returnArray, final int[] list) { int lastitem = 0; for (int i = 0; i < list.length; i++) { if (i % 2 == 0) { // Even lastitem = list[i]; } else { // Odd for (int j = 0; j < list[i]; j++) { returnArray.add(lastitem); } } } Collections.shuffle(returnArray); } public final int getGoldBoxReward() { return this.compiledGold.get(Randomizer.nextInt(this.compiledGold.size())); } public final int getSilverBoxReward() { return this.compiledSilver.get(Randomizer.nextInt(this.compiledSilver.size())); } public final int getFishingReward() { return this.compiledFishing.get(Randomizer.nextInt(this.compiledFishing.size())); } }