Treasures!

This commit is contained in:
Shaun Bennett 2015-12-14 02:49:51 -05:00
parent c508b5ea96
commit 4afca01ad0
27 changed files with 357 additions and 357 deletions

View File

@ -12,7 +12,7 @@ public class HatGrinch extends HatGadget
public HatGrinch(GadgetManager manager)
{
super(manager, "The Grinch",
super(manager, "The Grinch Hat",
UtilText.splitLineToArray(C.cGray + "Great! Now wheres the Roast Beast?!", LineFormat.LORE),
-3,
SkinData.THE_GRINCH.getSkull());

View File

@ -12,7 +12,7 @@ public class HatPresent extends HatGadget
public HatPresent(GadgetManager manager)
{
super(manager, "Present",
super(manager, "Present Hat",
UtilText.splitLineToArray(C.cGray + "WHAT IN THE PRESENT? Oh, it's just you...", LineFormat.LORE),
-3,
SkinData.PRESENT.getSkull());

View File

@ -12,7 +12,7 @@ public class HatSanta extends HatGadget
public HatSanta(GadgetManager manager)
{
super(manager, "Santa",
super(manager, "Santa Hat",
UtilText.splitLineToArray(C.cGray + "Now you can work the Mall circuit!", LineFormat.LORE),
-3,
SkinData.SANTA.getSkull());

View File

@ -12,7 +12,7 @@ public class HatSnowman extends HatGadget
public HatSnowman(GadgetManager manager)
{
super(manager, "Snowmans Head",
super(manager, "Snowman Head",
UtilText.splitLineToArray(C.cGray + "Do you want to be a snowman?", LineFormat.LORE),
-3,
SkinData.SNOWMAN.getSkull());

View File

@ -127,7 +127,7 @@ public class ItemCoal extends ItemGadget
Manager.getPetManager(),
Manager.getInventoryManager(),
Manager.getDonationManager(),
"Coal Apparition", "Coal Apparition", EntityType.PIG_ZOMBIE, RewardRarity.OTHER, 0);
"Coal Apparition", "Coal Apparition", EntityType.PIG_ZOMBIE, RewardRarity.OTHER, 0, 0);
if (reward.canGiveReward(player))
reward.giveReward(null, player, new Callback<RewardData>()

View File

@ -31,7 +31,7 @@ public class MountBabyReindeer extends HorseMount
public MountBabyReindeer(MountManager manager)
{
super(manager, "Baby Rainder",
super(manager, "Baby Reindeer",
UtilText.splitLineToArray(C.cGray + "One of Santas baby reindeers. He's still learning how to fly...", LineFormat.LORE),
Material.GOLDEN_CARROT, (byte) 0, -3, Color.CREAMY, Style.WHITEFIELD, Variant.HORSE, 0, null);
}

View File

@ -15,17 +15,19 @@ public abstract class Reward
private RewardRarity _rarity;
private int _weight;
private int _shardValue;
private boolean _requiresCallback;
public Reward(RewardRarity rarity, int weight)
public Reward(RewardRarity rarity, int weight, int shardValue)
{
this(rarity, weight, false);
this(rarity, weight, shardValue, false);
}
public Reward(RewardRarity rarity, int weight, boolean requiresCallback)
public Reward(RewardRarity rarity, int weight, int shardValue, boolean requiresCallback)
{
_rarity = rarity;
_weight = weight;
_shardValue = shardValue;
_requiresCallback = requiresCallback;
}
@ -58,8 +60,19 @@ public abstract class Reward
return _weight;
}
public int getShardValue()
{
return _shardValue;
}
public boolean isRequiresCallback()
{
return _requiresCallback;
}
@Override
public boolean equals(Object obj)
{
return obj == null ? false : getClass().equals(obj.getClass());
}
}

View File

@ -10,12 +10,25 @@ public class RewardData
private final String _friendlyName;
private final ItemStack _displayItem;
private final RewardRarity _rarity;
private final boolean _rewardedShards;
private final int _shards;
public RewardData(String friendlyName, ItemStack displayItem, RewardRarity rarity, int shards)
{
_friendlyName = friendlyName;
_displayItem = displayItem;
_rarity = rarity;
_rewardedShards = true;
_shards = shards;
}
public RewardData(String friendlyName, ItemStack displayItem, RewardRarity rarity)
{
_friendlyName = friendlyName;
_displayItem = displayItem;
_rarity = rarity;
_rewardedShards = false;
_shards = 0;
}
public String getFriendlyName()
@ -33,4 +46,13 @@ public class RewardData
return _rarity;
}
public boolean isRewardedShards()
{
return _rewardedShards;
}
public int getShards()
{
return _shards;
}
}

View File

@ -1,11 +1,10 @@
package mineplex.core.reward;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.EnumMap;
import java.util.List;
import java.util.Random;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
@ -14,28 +13,26 @@ import org.bukkit.plugin.java.JavaPlugin;
import mineplex.core.account.CoreClientManager;
import mineplex.core.common.Rank;
import mineplex.core.common.skin.SkinData;
import mineplex.core.common.util.C;
import mineplex.core.donation.DonationManager;
import mineplex.core.giveaway.GiveawayManager;
import mineplex.core.inventory.InventoryManager;
import mineplex.core.pet.PetManager;
import mineplex.core.reward.rewards.CoinReward;
import mineplex.core.reward.rewards.ExperienceReward;
import mineplex.core.reward.rewards.GemReward;
import mineplex.core.reward.rewards.GiveawayReward;
import mineplex.core.reward.rewards.InventoryReward;
import mineplex.core.reward.rewards.PetReward;
import mineplex.core.reward.rewards.RankReward;
import mineplex.core.reward.rewards.TreasureShardReward;
import mineplex.core.reward.rewards.UnknownPackageReward;
import mineplex.core.stats.StatsManager;
import mineplex.core.status.ServerStatusManager;
import mineplex.core.timing.TimingManager;
import mineplex.serverdata.Region;
public class RewardManager
{
private JavaPlugin _plugin;
private HashMap<RewardRarity, List<Reward>> _treasureMap;
private EnumMap<RewardPool.Type, RewardPool> _rewardPools;
private Random _random;
private boolean _carlSpinner;
@ -54,12 +51,12 @@ public class RewardManager
boolean doubleGadgetValue, boolean carlSpinner)
{
_plugin = donationManager.getPlugin();
_treasureMap = new HashMap<RewardRarity, List<Reward>>();
_rewardPools = new EnumMap<RewardPool.Type, RewardPool>(RewardPool.Type.class);
_random = new Random();
for (RewardRarity rarity : RewardRarity.values())
for (RewardPool.Type type : RewardPool.Type.values())
{
_treasureMap.put(rarity, new ArrayList<Reward>());
_rewardPools.put(type, new RewardPool());
}
_clientManager = clientManager;
@ -83,13 +80,13 @@ public class RewardManager
// Coins
if (_carlSpinner)
{
addReward(new GemReward(donationManager, (int)minValue, (int)maxValue, 25, rarity));
addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 25, rarity));
addReward(new ExperienceReward(statsManager, (int)minValue*5, (int)maxValue*5, 25, rarity));
addReward(new GemReward(donationManager, (int)minValue, (int)maxValue, 25, 0, rarity));
// addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 25, rarity));
addReward(new ExperienceReward(statsManager, (int)minValue*5, (int)maxValue*5, 25, 0, rarity));
}
else
{
addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 5, rarity));
// addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 5, rarity));
}
//Increase Value
@ -99,34 +96,40 @@ public class RewardManager
maxValue *= 2;
}
addReward(RewardPool.Type.WINTER_HOLIDAY, new InventoryReward(inventoryManager, "Coal", "Coal", 10, 100,
new ItemStack(Material.COAL), rarity, 10, 0));
addReward(RewardPool.Type.WINTER_HOLIDAY, new InventoryReward(inventoryManager, "Snowballs", "Snowball", 5, 20,
new ItemStack(Material.SNOW_BALL), rarity, 10, 0));
// Gadgets
addReward(new InventoryReward(inventoryManager, "Paintballs", "Paintball Gun",
(int)(100*(minValue/500)), (int)(100*(maxValue/500)),
new ItemStack(Material.GOLD_BARDING), rarity, 10));
new ItemStack(Material.GOLD_BARDING), rarity, 10, 0));
addReward(new InventoryReward(inventoryManager, "Fireworks", "Fireworks",
(int)(50*(minValue/500)), (int)(50*(maxValue/500)),
new ItemStack(Material.FIREWORK), rarity, 10));
new ItemStack(Material.FIREWORK), rarity, 10, 0));
addReward(new InventoryReward(inventoryManager, "Melons", "Melon Launcher",
(int)(50*(minValue/500)), (int)(50*(maxValue/500)),
new ItemStack(Material.MELON_BLOCK), rarity, 10));
new ItemStack(Material.MELON_BLOCK), rarity, 10, 0));
addReward(new InventoryReward(inventoryManager, "Flesh Hooks", "Flesh Hook",
(int)(40*(minValue/500)), (int)(40*(maxValue/500)),
new ItemStack(Material.getMaterial(131)), rarity, 10));
new ItemStack(Material.getMaterial(131)), rarity, 10, 0));
addReward(new InventoryReward(inventoryManager, "Pearls", "Ethereal Pearl",
(int)(30*(minValue/500)), (int)(30*(maxValue/500)),
new ItemStack(Material.ENDER_PEARL), rarity, 10));
new ItemStack(Material.ENDER_PEARL), rarity, 10, 0));
addReward(new InventoryReward(inventoryManager, "Bat Swarms", "Bat Blaster",
(int)(20*(minValue/500)), (int)(20*(maxValue/500)),
new ItemStack(Material.IRON_BARDING), rarity, 10));
new ItemStack(Material.IRON_BARDING), rarity, 10, 0));
addReward(new InventoryReward(inventoryManager, "TNT", "TNT",
(int)(20*(minValue/500)), (int)(20*(maxValue/500)),
new ItemStack(Material.TNT), rarity, 10));
new ItemStack(Material.TNT), rarity, 10, 0));
}
@ -138,13 +141,13 @@ public class RewardManager
// Coins
if (_carlSpinner)
{
addReward(new GemReward(donationManager, (int)minValue, (int)maxValue, 1200, rarity));
addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 1200, rarity));
addReward(new ExperienceReward(statsManager, (int)minValue*5, (int)maxValue*5, 1200, rarity));
addReward(new GemReward(donationManager, (int)minValue, (int)maxValue, 1200, 0, rarity));
// addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 1200, rarity));
addReward(new ExperienceReward(statsManager, (int)minValue*5, (int)maxValue*5, 1200, 0, rarity));
}
else
{
addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 250, RewardRarity.UNCOMMON));
// addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 250, RewardRarity.UNCOMMON));
}
//Increase Value
@ -154,76 +157,85 @@ public class RewardManager
maxValue *= 2;
}
addReward(RewardPool.Type.WINTER_HOLIDAY, new InventoryReward(inventoryManager, "Freeze Cannon Ammo", "Freeze Cannon", 5, 10,
new ItemStack(Material.ICE), rarity, 10, 0));
addReward(RewardPool.Type.WINTER_HOLIDAY, new InventoryReward(inventoryManager, "Party Popper Ammo", "Party Popper", 5, 10,
new ItemStack(Material.GOLDEN_CARROT), rarity, 10, 0));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Present Hat", "Present Hat",
SkinData.PRESENT.getSkull(), rarity, 5, 100));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Snowman Head", "Snowman Head",
SkinData.SNOWMAN.getSkull(), rarity, 5, 100));
// Gadgets
addReward(new InventoryReward(inventoryManager, "Paintballs", "Paintball Gun",
(int)(100*(minValue/500)), (int)(100*(maxValue/500)),
new ItemStack(Material.GOLD_BARDING), rarity, 250));
new ItemStack(Material.GOLD_BARDING), rarity, 250, 0));
addReward(new InventoryReward(inventoryManager, "Fireworks", "Fireworks",
(int)(50*(minValue/500)), (int)(50*(maxValue/500)),
new ItemStack(Material.FIREWORK), rarity, 250));
new ItemStack(Material.FIREWORK), rarity, 250, 0));
addReward(new InventoryReward(inventoryManager, "Melons", "Melon Launcher",
(int)(50*(minValue/500)), (int)(50*(maxValue/500)),
new ItemStack(Material.MELON_BLOCK), rarity, 250));
new ItemStack(Material.MELON_BLOCK), rarity, 250, 0));
addReward(new InventoryReward(inventoryManager, "Flesh Hooks", "Flesh Hook",
(int)(40*(minValue/500)), (int)(40*(maxValue/500)),
new ItemStack(Material.getMaterial(131)), rarity, 250));
new ItemStack(Material.getMaterial(131)), rarity, 250, 0));
addReward(new InventoryReward(inventoryManager, "Pearls", "Ethereal Pearl",
(int)(30*(minValue/500)), (int)(30*(maxValue/500)),
new ItemStack(Material.ENDER_PEARL), rarity, 250));
new ItemStack(Material.ENDER_PEARL), rarity, 250, 0));
addReward(new InventoryReward(inventoryManager, "Bat Swarms", "Bat Blaster",
(int)(20*(minValue/500)), (int)(20*(maxValue/500)),
new ItemStack(Material.IRON_BARDING), rarity, 250));
new ItemStack(Material.IRON_BARDING), rarity, 250, 0));
addReward(new InventoryReward(inventoryManager, "TNT", "TNT",
(int)(20*(minValue/500)), (int)(20*(maxValue/500)),
new ItemStack(Material.TNT), rarity, 250));
new ItemStack(Material.TNT), rarity, 250, 0));
// Pets
addReward(new PetReward(petManager, inventoryManager, donationManager, "Cow Pet", "Cow",
EntityType.COW, rarity, 500));
EntityType.COW, rarity, 500, 100));
addReward(new PetReward(petManager, inventoryManager, donationManager, "Sheep Pet", "Sheep",
EntityType.SHEEP, rarity, 333));
EntityType.SHEEP, rarity, 333, 100));
addReward(new PetReward(petManager, inventoryManager, donationManager, "Mooshroom Pet", "Mooshroom",
EntityType.MUSHROOM_COW, rarity, 200));
EntityType.MUSHROOM_COW, rarity, 200, 100));
addReward(new PetReward(petManager, inventoryManager, donationManager, "Pig Pet", "Pig",
EntityType.PIG, rarity, 200));
EntityType.PIG, rarity, 200, 100));
addReward(new PetReward(petManager, inventoryManager, donationManager, "Ocelot Pet", "Cat",
EntityType.OCELOT, rarity, 167));
EntityType.OCELOT, rarity, 167, 100));
addReward(new PetReward(petManager, inventoryManager, donationManager, "Chicken Pet", "Chicken",
EntityType.CHICKEN, rarity, 143));
EntityType.CHICKEN, rarity, 143, 100));
addReward(new PetReward(petManager, inventoryManager, donationManager, "Wolf Pet", "Dog",
EntityType.WOLF, rarity, 125));
EntityType.WOLF, rarity, 125, 100));
// Music Discs
addReward(new UnknownPackageReward(donationManager, "13 Disc", "13 Disc",
new ItemStack(2256), rarity, 25));
new ItemStack(2256), rarity, 25, 100));
addReward(new UnknownPackageReward(donationManager, "Cat Disc", "Cat Disc",
new ItemStack(2257), rarity, 25));
new ItemStack(2257), rarity, 25, 100));
addReward(new UnknownPackageReward(donationManager, "Blocks Disc", "Blocks Disc",
new ItemStack(2258), rarity, 25));
new ItemStack(2258), rarity, 25, 100));
addReward(new UnknownPackageReward(donationManager, "Chirp Disc", "Chirp Disc",
new ItemStack(2259), rarity, 25));
new ItemStack(2259), rarity, 25, 100));
addReward(new UnknownPackageReward(donationManager, "Far Disc", "Far Disc",
new ItemStack(2260), rarity, 25));
new ItemStack(2260), rarity, 25, 100));
addReward(new UnknownPackageReward(donationManager, "Mall Disc", "Mall Disc",
new ItemStack(2261), rarity, 25));
new ItemStack(2261), rarity, 25, 100));
addReward(new UnknownPackageReward(donationManager, "Mellohi Disc", "Mellohi Disc",
new ItemStack(2262), rarity, 25));
new ItemStack(2262), rarity, 25, 100));
addReward(new UnknownPackageReward(donationManager, "Stal Disc", "Stal Disc",
new ItemStack(2263), rarity, 25));
new ItemStack(2263), rarity, 25, 100));
addReward(new UnknownPackageReward(donationManager, "Strad Disc", "Strad Disc",
new ItemStack(2264), rarity, 25));
new ItemStack(2264), rarity, 25, 100));
addReward(new UnknownPackageReward(donationManager, "Ward Disc", "Ward Disc",
new ItemStack(2265), rarity, 25));
new ItemStack(2265), rarity, 25, 100));
// addReward(new UnknownPackageReward(donationManager, "11 Disc", "11 Disc",
// new ItemStack(2266), rarity, 25));
addReward(new UnknownPackageReward(donationManager, "Wait Disc", "Wait Disc",
new ItemStack(2267), rarity, 25));
new ItemStack(2267), rarity, 25, 100));
}
public void addRare(DonationManager donationManager, InventoryManager inventoryManager, PetManager petManager, StatsManager statsManager, double minValue, double maxValue)
@ -233,58 +245,65 @@ public class RewardManager
// Coins
if (_carlSpinner)
{
addReward(new GemReward(donationManager, (int)minValue, (int)maxValue, 150, rarity));
addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 150, rarity));
addReward(new ExperienceReward(statsManager, (int)minValue*5, (int)maxValue*5, 150, rarity));
addReward(new GemReward(donationManager, (int)minValue, (int)maxValue, 150, 0, rarity));
// addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 150, rarity));
addReward(new ExperienceReward(statsManager, (int)minValue*5, (int)maxValue*5, 150, 0, rarity));
}
else
{
addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 100, RewardRarity.RARE));
// addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 100, RewardRarity.RARE));
}
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Santa Hat", "Santa Hat",
SkinData.SANTA.getSkull(), rarity, 5, 500));
addReward(RewardPool.Type.WINTER_HOLIDAY, new PetReward(petManager, inventoryManager, donationManager, "Elf Pet", "Christmas Elf", EntityType.VILLAGER, rarity, 5, 500));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Fall of the Frost Lord", "Fall of the Frost Lord",
new ItemStack(Material.SNOW_BALL), rarity, 5, 500));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Candy Cane Remains", "Candy Cane Remains",
new ItemStack(Material.SNOW_BALL), rarity, 5, 500));
// Mounts
addReward(new UnknownPackageReward(donationManager, "Mount Mule", "Mount Mule",
new ItemStack(Material.HAY_BLOCK), rarity, 200));
new ItemStack(Material.HAY_BLOCK), rarity, 200, 500));
addReward(new UnknownPackageReward(donationManager, "Minecart Mount", "Minecart",
new ItemStack(Material.MINECART), rarity, 100));
new ItemStack(Material.MINECART), rarity, 100, 500));
addReward(new UnknownPackageReward(donationManager, "Slime Mount", "Slime Mount",
new ItemStack(Material.SLIME_BALL), rarity, 67));
new ItemStack(Material.SLIME_BALL), rarity, 67, 500));
addReward(new UnknownPackageReward(donationManager, "Glacial Steed", "Glacial Steed",
new ItemStack(Material.SNOW_BALL), rarity, 50));
new ItemStack(Material.SNOW_BALL), rarity, 50, 500));
// Morphs
addReward(new UnknownPackageReward(donationManager, "Cow Morph", "Cow Morph",
new ItemStack(Material.LEATHER), rarity, 167));
new ItemStack(Material.LEATHER), rarity, 167, 500));
addReward(new UnknownPackageReward(donationManager, "Villager Morph", "Villager Morph",
new ItemStack(Material.EMERALD), rarity, 83));
new ItemStack(Material.EMERALD), rarity, 83, 500));
addReward(new UnknownPackageReward(donationManager, "Chicken Morph", "Chicken Morph",
new ItemStack(Material.FEATHER), rarity, 50));
new ItemStack(Material.FEATHER), rarity, 50, 500));
addReward(new UnknownPackageReward(donationManager, "Enderman Morph", "Enderman Morph",
new ItemStack(Material.ENDER_PEARL), rarity, 33));
new ItemStack(Material.ENDER_PEARL), rarity, 33, 500));
// Gadgets
addReward(new InventoryReward(inventoryManager, "Coin Party Bomb", "Coin Party Bomb", 1, 1,
new ItemStack(Material.getMaterial(175)), rarity, 100));
addReward(new InventoryReward(inventoryManager, "Treasure Party Bomb", "Coin Party Bomb", 1, 1,
new ItemStack(Material.getMaterial(175)), rarity, 100, 500));
// Costumes
addReward(new UnknownPackageReward(donationManager, "Rave Hat", "Rave Hat",
new ItemStack(Material.LEATHER_HELMET), rarity, 30));
new ItemStack(Material.LEATHER_HELMET), rarity, 30, 500));
addReward(new UnknownPackageReward(donationManager, "Rave Shirt", "Rave Shirt",
new ItemStack(Material.LEATHER_CHESTPLATE), rarity, 30));
new ItemStack(Material.LEATHER_CHESTPLATE), rarity, 30, 500));
addReward(new UnknownPackageReward(donationManager, "Rave Pants", "Rave Pants",
new ItemStack(Material.LEATHER_LEGGINGS), rarity, 30));
new ItemStack(Material.LEATHER_LEGGINGS), rarity, 30, 500));
addReward(new UnknownPackageReward(donationManager, "Rave Boots", "Rave Boots",
new ItemStack(Material.LEATHER_BOOTS), rarity, 30));
new ItemStack(Material.LEATHER_BOOTS), rarity, 30, 500));
addReward(new UnknownPackageReward(donationManager, "Space Helmet", "Space Helmet",
new ItemStack(Material.GLASS), rarity, 50));
new ItemStack(Material.GLASS), rarity, 50, 500));
addReward(new UnknownPackageReward(donationManager, "Space Jacket", "Space Jacket",
new ItemStack(Material.GOLD_CHESTPLATE), rarity, 50));
new ItemStack(Material.GOLD_CHESTPLATE), rarity, 50, 500));
addReward(new UnknownPackageReward(donationManager, "Space Pants", "Space Pants",
new ItemStack(Material.GOLD_LEGGINGS), rarity, 50));
new ItemStack(Material.GOLD_LEGGINGS), rarity, 50, 500));
addReward(new UnknownPackageReward(donationManager, "Space Boots", "Space Boots",
new ItemStack(Material.GOLD_BOOTS), rarity, 50));
new ItemStack(Material.GOLD_BOOTS), rarity, 50, 500));
}
public void addLegendary(DonationManager donationManager, InventoryManager inventoryManager, PetManager petManager, StatsManager statsManager, double minValue, double maxValue)
@ -294,57 +313,80 @@ public class RewardManager
// Coins
if (_carlSpinner)
{
addReward(new GemReward(donationManager, (int)minValue, (int)maxValue, 10, rarity));
addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 10, rarity));
addReward(new ExperienceReward(statsManager, (int)minValue*5, (int)maxValue*5, 10, rarity));
addReward(new GemReward(donationManager, (int)minValue, (int)maxValue, 10, 0, rarity));
// addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 10, rarity));
addReward(new ExperienceReward(statsManager, (int)minValue*5, (int)maxValue*5, 10, 0, rarity));
}
else
{
addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 25, rarity));
// addReward(new CoinReward(donationManager, (int)minValue, (int)maxValue, 25, rarity));
}
int legendaryShards = 2000;
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "The Grinch Hat", "The Grinch Hat",
SkinData.THE_GRINCH.getSkull(), rarity, 5, legendaryShards));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Olaf Morph", "Olaf Morph",
new ItemStack(Material.SNOW_BALL), rarity, 5, legendaryShards));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Glacial Steed", "Glacial Steed",
new ItemStack(Material.SADDLE), rarity, 5, legendaryShards));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Baby Reindeer", "Baby Reindeer",
new ItemStack(Material.GOLDEN_CARROT), rarity, 5, legendaryShards));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Wind of the Frost Lord", "Wind of the Frost Lord",
new ItemStack(Material.SNOW_BALL), rarity, 5, legendaryShards));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Arrows of the Frost Lord", "Arrows of the Frost Lord",
new ItemStack(Material.SNOW_BALL), rarity, 5, legendaryShards));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Gust of the Frost Lord", "Gust of the Frost Lord",
new ItemStack(Material.SNOW_BALL), rarity, 5, legendaryShards));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Crushed Candy Cane", "Crushed Candy Cane",
new ItemStack(Material.SNOW_BALL), rarity, 5, legendaryShards));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Candy Cane Arrows", "Candy Cane Arrows",
new ItemStack(Material.SNOW_BALL), rarity, 5, legendaryShards));
addReward(RewardPool.Type.WINTER_HOLIDAY, new UnknownPackageReward(donationManager, "Candy Cane Blast", "Candy Cane Blast",
new ItemStack(Material.SNOW_BALL), rarity, 5, legendaryShards));
// Mounts
addReward(new UnknownPackageReward(donationManager, "Infernal Horror", "Infernal Horror",
new ItemStack(Material.BONE), rarity, 33));
new ItemStack(Material.BONE), rarity, 33, legendaryShards));
// Morphs
addReward(new UnknownPackageReward(donationManager, "Bat Morph", "Bat Morph",
new ItemStack(Material.SKULL_ITEM, 1, (short) 0, (byte) 1), rarity, 25));
new ItemStack(Material.SKULL_ITEM, 1, (short) 0, (byte) 1), rarity, 25, legendaryShards));
addReward(new UnknownPackageReward(donationManager, "Block Morph", "Block Morph",
new ItemStack(Material.EMERALD_BLOCK), rarity, 20));
new ItemStack(Material.EMERALD_BLOCK), rarity, 20, legendaryShards));
addReward(new UnknownPackageReward(donationManager, "Big Larry Morph", "Big Larry Morph",
new ItemStack(Material.SLIME_BALL), rarity, 10));
new ItemStack(Material.SLIME_BALL), rarity, 10, legendaryShards));
// Particles
addReward(new UnknownPackageReward(donationManager, "Shadow Walk Particles", "Shadow Walk",
new ItemStack(Material.LEATHER_BOOTS), rarity, 33));
new ItemStack(Material.LEATHER_BOOTS), rarity, 33, legendaryShards));
addReward(new UnknownPackageReward(donationManager, "Enchanted Particles", "Enchanted",
new ItemStack(Material.BOOK), rarity, 25));
new ItemStack(Material.BOOK), rarity, 25, legendaryShards));
addReward(new UnknownPackageReward(donationManager, "Flame Rings Particles", "Flame Rings",
new ItemStack(Material.BLAZE_POWDER), rarity, 17));
new ItemStack(Material.BLAZE_POWDER), rarity, 17, legendaryShards));
addReward(new UnknownPackageReward(donationManager, "Rain Cloud Particles", "Rain Cloud",
new ItemStack(Material.INK_SACK, 1, (short) 0, (byte) 4), rarity, 13));
new ItemStack(Material.INK_SACK, 1, (short) 0, (byte) 4), rarity, 13, legendaryShards));
addReward(new UnknownPackageReward(donationManager, "Blood Helix Particles", "Blood Helix",
new ItemStack(Material.REDSTONE), rarity, 10));
new ItemStack(Material.REDSTONE), rarity, 10, legendaryShards));
addReward(new UnknownPackageReward(donationManager, "Green Rings Particles", "Green Ring",
new ItemStack(Material.EMERALD), rarity, 8));
new ItemStack(Material.EMERALD), rarity, 8, legendaryShards));
addReward(new UnknownPackageReward(donationManager, "Flame Fairy Particles", "Flame Fairy",
new ItemStack(Material.APPLE), rarity, 4));
new ItemStack(Material.APPLE), rarity, 4, legendaryShards));
addReward(new UnknownPackageReward(donationManager, "Heart Particles", "I Heart You",
new ItemStack(Material.BLAZE_POWDER), rarity, 2));
new ItemStack(Material.BLAZE_POWDER), rarity, 2, legendaryShards));
}
public void addReward(Reward reward)
{
RewardRarity rarity = reward.getRarity();
List<Reward> treasureList = _treasureMap.get(rarity);
treasureList.add(reward);
addReward(RewardPool.Type.NORMAL, reward);
}
public Reward[] getRewards(Player player, RewardType type)
public void addReward(RewardPool.Type pool, Reward reward)
{
_rewardPools.get(pool).add(reward);
}
public Reward[] getRewards(Player player, RewardPool.Type pool, RewardType type)
{
int currentReward = 0;
Reward[] rewards = new Reward[4];
@ -353,7 +395,7 @@ public class RewardManager
while (currentReward < 4)
{
Reward reward = nextReward(player, rewards, currentReward == 3 && !hasUncommon, type, canGiveMythical);
Reward reward = nextReward(player, pool, rewards, currentReward == 3 && !hasUncommon, type, canGiveMythical);
if (reward == null)
{
@ -395,19 +437,20 @@ public class RewardManager
// }
public Reward nextReward(Player player, Reward[] excludedRewards, boolean requiresUncommon, RewardType type, boolean canGiveMythical)
{
return nextReward(player, RewardPool.Type.NORMAL, excludedRewards, requiresUncommon, type, canGiveMythical);
}
public Reward nextReward(Player player, RewardPool.Type pool, Reward[] excludedRewards, boolean requiresUncommon, RewardType type, boolean canGiveMythical)
{
RewardRarity rarity = type.generateRarity(requiresUncommon);
//Dont give Rank Upgrade if already has Titan
if (rarity == RewardRarity.MYTHICAL)
{
if (_statusManager.getRegion() == Region.US && canGiveMythical && type == RewardType.MythicalChest && Math.random() <= 0.1)
{
return getLogitechPrize();
}
if (canGiveMythical && type == RewardType.MythicalChest && !_clientManager.Get(player).GetRank().has(Rank.TITAN))
{
return new RankReward(_clientManager, 0, rarity);
return new RankReward(_clientManager, 0, 0, rarity);
}
else if (!canGiveMythical || _clientManager.Get(player).GetRank().has(Rank.LEGEND))
{
@ -415,11 +458,11 @@ public class RewardManager
}
else
{
return new RankReward(_clientManager, 0, rarity);
return new RankReward(_clientManager, 0, 0, rarity);
}
}
List<Reward> treasureList = _treasureMap.get(rarity);
List<Reward> treasureList = _rewardPools.get(pool).getRewards(rarity);
int totalWeight = 0;
ArrayList<Reward> possibleRewards = new ArrayList<Reward>();
@ -438,25 +481,19 @@ public class RewardManager
}
}
if ((player == null || treasure.canGiveReward(player)) && !isExcluded)
{
possibleRewards.add(treasure);
totalWeight += treasure.getWeight();
}
}
if (possibleRewards.size() == 0)
{
// go again, ignore excluded
for (Reward treasure : treasureList)
{
if ((player == null || treasure.canGiveReward(player)))
{
possibleRewards.add(treasure);
totalWeight += treasure.getWeight();
}
}
}
if (totalWeight > 0)
{
@ -468,43 +505,15 @@ public class RewardManager
currentWeight += reward.getWeight();
if (weight <= currentWeight)
{
if (reward.canGiveReward(player))
return reward;
else
return new TreasureShardReward(_donationManager, reward, 1, reward.getRarity());
}
}
}
return null;
}
private Reward getLogitechPrize()
{
double rand = Math.random();
String name;
String cooldown = "logitech";
Material mat = Material.DIAMOND;
String displayName;
if (rand < 0.2)
{
name = "logitechKeyboard";
displayName = C.cRed + "Logitech G910 RGB Keyboard";
}
else if (rand < 0.4)
{
name = "logitechMouse";
displayName = C.cRed + "Logitech G303 Gaming Mouse";
}
else if (rand < 0.6)
{
name = "logitechHeadset";
displayName = C.cRed + "Logitech G430 Gaming Headset";
}
else
{
name = "logitechMousePad";
displayName = C.cRed + "Logitech G240 Gaming Mousepad";
}
return new GiveawayReward(_giveawayManager, _clientManager, _donationManager, _statusManager, name, cooldown, displayName , mat, (byte) 0, RewardRarity.MYTHICAL, 0);
}
}

View File

@ -0,0 +1,40 @@
package mineplex.core.reward;
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.List;
/**
* Used to separate different "Reward Pools". This allows us to have treasure chests with different loot.
*
*/
public class RewardPool
{
private EnumMap<RewardRarity, List<Reward>> _rewardMap;
public RewardPool()
{
_rewardMap = new EnumMap<RewardRarity, List<Reward>>(RewardRarity.class);
for (RewardRarity rarity : RewardRarity.values())
{
_rewardMap.put(rarity, new ArrayList<Reward>());
}
}
public void add(Reward reward)
{
_rewardMap.get(reward.getRarity()).add(reward);
}
public List<Reward> getRewards(RewardRarity rarity)
{
return _rewardMap.get(rarity);
}
public static enum Type
{
NORMAL,
WINTER_HOLIDAY;
}
}

View File

@ -10,6 +10,7 @@ public enum RewardType
OldChest( 0, 0.05, 0.4, 5),
AncientChest( 0, 1, 4, 25),
MythicalChest( 0.3, 3, 12, 75),
WinterChest( 0, 3, 10, 40),
SpinnerFiller( 0.1, 1, 4, 20),
SpinnerReal( 0.000001, 0.05, 0.4, 5);

View File

@ -1,74 +0,0 @@
package mineplex.core.reward.rewards;
import java.util.Random;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import mineplex.core.common.util.Callback;
import mineplex.core.donation.DonationManager;
import mineplex.core.reward.Reward;
import mineplex.core.reward.RewardData;
import mineplex.core.reward.RewardRarity;
import mineplex.core.reward.RewardType;
public class CoinReward extends Reward
{
private DonationManager _donationManager;
private Random _random;
private int _minCoinCount;
private int _maxCoinCount;
public CoinReward(DonationManager donationManager, int minCoinCount, int maxCoinCount, int weight, RewardRarity rarity)
{
this(donationManager, minCoinCount, maxCoinCount, weight, rarity, RANDOM);
}
public CoinReward(DonationManager donationManager, int minCoinCount, int maxCoinCount, int weight, RewardRarity rarity, Random random)
{
super(rarity, weight);
_donationManager = donationManager;
_minCoinCount = minCoinCount;
_maxCoinCount = maxCoinCount;
_random = random;
}
@Override
public RewardData giveRewardCustom(Player player, RewardType rewardType)
{
int coinsToReward = _random.nextInt(_maxCoinCount - _minCoinCount) + _minCoinCount;
_donationManager.RewardCoins(new Callback<Boolean>()
{
@Override
public void run(Boolean data)
{
}
}, "Treasure Chest", player.getName(), _donationManager.getClientManager().Get(player).getAccountId(), coinsToReward);
return new RewardData(getRarity().getColor() + coinsToReward + " Coins", new ItemStack(175), getRarity());
}
@Override
public RewardData getFakeRewardData(Player player)
{
return new RewardData(getRarity().getColor() + "Coins", new ItemStack(175), getRarity());
}
@Override
public boolean canGiveReward(Player player)
{
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof CoinReward)
return true;
return false;
}
}

View File

@ -19,9 +19,9 @@ public class ExperienceReward extends Reward
private int _minExperience;
private int _maxExperience;
public ExperienceReward(StatsManager statsManager, int minExperience, int maxExperience, int weight, RewardRarity rarity)
public ExperienceReward(StatsManager statsManager, int minExperience, int maxExperience, int weight, int shardValue, RewardRarity rarity)
{
super(rarity, weight);
super(rarity, weight, shardValue);
_statsManager = statsManager;
_random = new Random();

View File

@ -20,14 +20,14 @@ public class GemReward extends Reward
private int _minGemCount;
private int _maxGemCount;
public GemReward(DonationManager donationManager, int minGemCount, int maxGemCount, int weight, RewardRarity rarity)
public GemReward(DonationManager donationManager, int minGemCount, int maxGemCount, int weight, int shardValue, RewardRarity rarity)
{
this(donationManager, minGemCount, maxGemCount, weight, rarity, RANDOM);
this(donationManager, minGemCount, maxGemCount, weight, shardValue, rarity, RANDOM);
}
public GemReward(DonationManager donationManager, int minGemCount, int maxGemCount, int weight, RewardRarity rarity, Random random)
public GemReward(DonationManager donationManager, int minGemCount, int maxGemCount, int weight, int shardValue, RewardRarity rarity, Random random)
{
super(rarity, weight);
super(rarity, weight, shardValue);
_donationManager = donationManager;
_minGemCount = minGemCount;
_maxGemCount = maxGemCount;

View File

@ -1,97 +0,0 @@
package mineplex.core.reward.rewards;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import mineplex.core.account.CoreClientManager;
import mineplex.core.common.Rank;
import mineplex.core.common.util.Callback;
import mineplex.core.donation.DonationManager;
import mineplex.core.giveaway.GiveawayManager;
import mineplex.core.giveaway.GiveawayResponse;
import mineplex.core.reward.Reward;
import mineplex.core.reward.RewardData;
import mineplex.core.reward.RewardRarity;
import mineplex.core.reward.RewardType;
import mineplex.core.status.ServerStatusManager;
public class GiveawayReward extends Reward
{
private GiveawayManager _giveawayManager;
private CoreClientManager _clientManager;
private DonationManager _donationManager;
private ServerStatusManager _serverStatusManager;
private String _giveawayName;
private String _cooldownName;
private String _displayName;
private Material _icon;
private byte _data;
public GiveawayReward(GiveawayManager giveawayManager, CoreClientManager clientManager, DonationManager donationManager, ServerStatusManager serverStatusManager, String giveawayName, String cooldownName, String displayName, Material icon, byte data, RewardRarity rarity, int weight)
{
super(rarity, weight, true);
_giveawayManager = giveawayManager;
_clientManager = clientManager;
_donationManager = donationManager;
_serverStatusManager = serverStatusManager;
_giveawayName = giveawayName;
_cooldownName = cooldownName;
_displayName = displayName;
_icon = icon;
_data = data;
}
@Override
protected void giveRewardCallback(final RewardType rewardType, final Player player, final Callback<RewardData> rewardDataCallback)
{
_giveawayManager.attemptToGiveaway(_giveawayName, _cooldownName, player, new Callback<GiveawayResponse>()
{
@Override
public void run(GiveawayResponse data)
{
if (data.isSuccess())
{
RewardData rewardData = new RewardData(_displayName, new ItemStack(_icon, 1, (short) 0, _data), getRarity());
if (rewardDataCallback != null) rewardDataCallback.run(rewardData);
}
else
{
System.out.println("GIVEAWAY FAILED: " + data.getFailReason().name());
// Dang, I guess we failed!
if (!_clientManager.hasRank(player, Rank.TITAN))
{
Reward reward = new RankReward(_clientManager, 0, getRarity());
reward.giveReward(rewardType, player, rewardDataCallback);
}
else
{
Reward reward = new CoinReward(_donationManager, 20000, 30000, 0, getRarity());
reward.giveReward(rewardType, player, rewardDataCallback);
}
}
}
});
}
@Override
protected RewardData giveRewardCustom(Player player, RewardType rewardType)
{
// This is a little hacky, this should never be called!
return null;
}
@Override
public RewardData getFakeRewardData(Player player)
{
// Let's pretend we are coins!
return new RewardData(getRarity().getColor() + "Coins", new ItemStack(175), getRarity());
}
@Override
public boolean canGiveReward(Player player)
{
return true;
}
}

View File

@ -25,14 +25,14 @@ public class InventoryReward extends Reward
private int _minAmount;
private int _maxAmount;
public InventoryReward(InventoryManager inventoryManager, String name, String packageName, int minAmount, int maxAmount, ItemStack itemStack, RewardRarity rarity, int weight)
public InventoryReward(InventoryManager inventoryManager, String name, String packageName, int minAmount, int maxAmount, ItemStack itemStack, RewardRarity rarity, int weight, int shardValue)
{
this(RANDOM, inventoryManager, name, packageName, minAmount, maxAmount, itemStack, rarity, weight);
this(RANDOM, inventoryManager, name, packageName, minAmount, maxAmount, itemStack, rarity, weight, shardValue);
}
public InventoryReward(Random random, InventoryManager inventoryManager, String name, String packageName, int minAmount, int maxAmount, ItemStack itemStack, RewardRarity rarity, int weight)
public InventoryReward(Random random, InventoryManager inventoryManager, String name, String packageName, int minAmount, int maxAmount, ItemStack itemStack, RewardRarity rarity, int weight, int shardValue)
{
super(rarity, weight);
super(rarity, weight, shardValue);
_random = random;
_name = name;

View File

@ -24,9 +24,9 @@ public class PetReward extends UnknownPackageReward
private PetManager _petManager;
private EntityType _petEntity;
public PetReward(PetManager petManager, InventoryManager inventoryManager, DonationManager donationManager, String name, String packageName, EntityType petEntity, RewardRarity rarity, int weight)
public PetReward(PetManager petManager, InventoryManager inventoryManager, DonationManager donationManager, String name, String packageName, EntityType petEntity, RewardRarity rarity, int weight, int shardValue)
{
super(donationManager, name, packageName, new ItemStack(Material.MONSTER_EGG, 1, petEntity.getTypeId()), rarity, weight);
super(donationManager, name, packageName, new ItemStack(Material.MONSTER_EGG, 1, petEntity.getTypeId()), rarity, weight, shardValue);
_petManager = petManager;
_inventoryManager = inventoryManager;

View File

@ -19,9 +19,9 @@ public class RankReward extends Reward
private Random _random;
private CoreClientManager _clientManager;
public RankReward(CoreClientManager clientManager, int weight, RewardRarity rarity)
public RankReward(CoreClientManager clientManager, int weight, int shardValue, RewardRarity rarity)
{
super(rarity, weight);
super(rarity, weight, shardValue);
_clientManager = clientManager;
_random = new Random();

View File

@ -0,0 +1,68 @@
package mineplex.core.reward.rewards;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import mineplex.core.common.util.Callback;
import mineplex.core.donation.DonationManager;
import mineplex.core.reward.Reward;
import mineplex.core.reward.RewardData;
import mineplex.core.reward.RewardRarity;
import mineplex.core.reward.RewardType;
public class TreasureShardReward extends Reward
{
private DonationManager _donationManager;
private Reward _otherReward;
private int _shards;
public TreasureShardReward(DonationManager donationManager, Reward otherReward, int weight, RewardRarity rarity)
{
super(rarity, weight, 0);
_donationManager = donationManager;
_otherReward = otherReward;
_shards = (int) (otherReward.getShardValue() + (Math.random() * otherReward.getShardValue() / 2.0));
}
@Override
public RewardData giveRewardCustom(Player player, RewardType rewardType)
{
RewardData fakeData = _otherReward.getFakeRewardData(player);
RewardData rewardData = new RewardData(fakeData.getFriendlyName(), fakeData.getDisplayItem(), fakeData.getRarity(), _shards);
_donationManager.RewardCoins(new Callback<Boolean>()
{
@Override
public void run(Boolean data)
{
}
}, "Treasure Chest", player.getName(), _donationManager.getClientManager().Get(player).getAccountId(), _shards);
return rewardData;
}
@Override
public RewardData getFakeRewardData(Player player)
{
return new RewardData(getRarity().getColor() + "Treasure Shards", new ItemStack(Material.PRISMARINE_SHARD), getRarity());
}
@Override
public boolean canGiveReward(Player player)
{
return true;
}
@Override
public boolean equals(Object obj)
{
if (obj instanceof TreasureShardReward)
return true;
return false;
}
}

View File

@ -21,9 +21,9 @@ public class UnknownPackageReward extends Reward
private String _name;
private String _packageName;
public UnknownPackageReward(DonationManager donationManager, String name, String packageName, ItemStack itemStack, RewardRarity rarity, int weight)
public UnknownPackageReward(DonationManager donationManager, String name, String packageName, ItemStack itemStack, RewardRarity rarity, int weight, int shardValue)
{
super(rarity, weight);
super(rarity, weight, shardValue);
_donationManager = donationManager;
_name = name;
_packageName = packageName;

View File

@ -124,7 +124,7 @@ public class TreasureLocation implements Listener
if (treasureType == TreasureType.MYTHICAL)
Bukkit.broadcastMessage(F.main("Treasure", F.name(player.getName()) + " is opening a " + treasureType.getName()));
Reward[] rewards = _treasureManager.getRewards(player, treasureType.getRewardType());
Reward[] rewards = _treasureManager.getRewards(player, treasureType.getRewardPool(), treasureType.getRewardType());
Treasure treasure = new Treasure(player, rewards, treasureType.getRewardType(), _chestBlock, _chestSpawns, treasureType, _treasureManager.getBlockRestore(), _hologramManager, _statusManager);
_currentTreasure = treasure;

View File

@ -20,6 +20,7 @@ import mineplex.core.inventory.InventoryManager;
import mineplex.core.pet.PetManager;
import mineplex.core.reward.Reward;
import mineplex.core.reward.RewardManager;
import mineplex.core.reward.RewardPool;
import mineplex.core.reward.RewardType;
import mineplex.core.stats.StatsManager;
import mineplex.core.status.ServerStatusManager;
@ -132,9 +133,9 @@ public class TreasureManager extends MiniPlugin
_statsManager.incrementStat(player, "Global.Treasure." + treasureType.getStatName(), 1);
}
public Reward[] getRewards(Player player, RewardType rewardType)
public Reward[] getRewards(Player player, RewardPool.Type pool, RewardType rewardType)
{
return _rewardManager.getRewards(player, rewardType);
return _rewardManager.getRewards(player, pool, rewardType);
}
public boolean isOpening(Player player)

View File

@ -3,17 +3,18 @@ package mineplex.core.treasure;
import org.bukkit.Material;
import mineplex.core.common.util.C;
import mineplex.core.reward.RewardPool;
import mineplex.core.reward.RewardType;
public enum TreasureType
{
OLD(C.cYellow + "Old Treasure", "Old Chest", "Old", RewardType.OldChest, Material.CHEST, TreasureStyle.OLD),
OLD(C.cYellow + "Old Treasure", "Old Chest", "Old", RewardType.OldChest, Material.CHEST, TreasureStyle.OLD, RewardPool.Type.NORMAL),
ANCIENT(C.cGold + "Ancient Treasure", "Ancient Chest", "Ancient", RewardType.AncientChest, Material.TRAPPED_CHEST, TreasureStyle.ANCIENT),
ANCIENT(C.cGold + "Ancient Treasure", "Ancient Chest", "Ancient", RewardType.AncientChest, Material.TRAPPED_CHEST, TreasureStyle.ANCIENT, RewardPool.Type.NORMAL),
MYTHICAL(C.cRed + "Mythical Treasure", "Mythical Chest", "Mythical", RewardType.MythicalChest, Material.ENDER_CHEST, TreasureStyle.MYTHICAL),
MYTHICAL(C.cRed + "Mythical Treasure", "Mythical Chest", "Mythical", RewardType.MythicalChest, Material.ENDER_CHEST, TreasureStyle.MYTHICAL, RewardPool.Type.NORMAL),
CHRISTMAS(C.cDGreen + "Winter Holiday Treasure", "Winter Chest", "Christmas", RewardType.MythicalChest, Material.CHEST, TreasureStyle.CHRISTMAS);
CHRISTMAS(C.cDGreen + "Winter Holiday Treasure", "Winter Chest", "Christmas", RewardType.WinterChest, Material.CHEST, TreasureStyle.CHRISTMAS, RewardPool.Type.WINTER_HOLIDAY);
private final String _name;
private final RewardType _rewardType;
@ -21,8 +22,9 @@ public enum TreasureType
private final TreasureStyle _treasureStyle;
private final String _itemName;
private final String _statName;
private final RewardPool.Type _rewardPool;
TreasureType(String name, String itemName, String statName, RewardType rewardType, Material material, TreasureStyle treasureStyle)
TreasureType(String name, String itemName, String statName, RewardType rewardType, Material material, TreasureStyle treasureStyle, RewardPool.Type rewardPool)
{
_name = name;
_itemName = itemName;
@ -30,6 +32,7 @@ public enum TreasureType
_rewardType = rewardType;
_material = material;
_treasureStyle = treasureStyle;
_rewardPool = rewardPool;
}
public RewardType getRewardType()
@ -61,4 +64,9 @@ public enum TreasureType
{
return _statName;
}
public RewardPool.Type getRewardPool()
{
return _rewardPool;
}
}

View File

@ -15,6 +15,8 @@ import net.minecraft.server.v1_8_R3.BlockPosition;
import net.minecraft.server.v1_8_R3.PacketPlayOutBlockAction;
import net.minecraft.server.v1_8_R3.TileEntity;
import net.minecraft.server.v1_8_R3.TileEntityEnderChest;
import mineplex.core.common.util.C;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilServer;
import mineplex.core.hologram.Hologram;
@ -78,6 +80,13 @@ public class ChestOpenAnimation extends Animation
_rewardData.getFriendlyName());
_hologram.start();
}
else if (getTicks() == 25)
{
if (_rewardData.isRewardedShards())
{
_hologram.setText(C.cWhite + "You already own this", C.cAqua + "+" + _rewardData.getShards() + " Treasure Shards", " ", _rewardData.getFriendlyName());
}
}
}
public void onFinish()

View File

@ -145,6 +145,6 @@ public class TreasurePage extends ShopPageBase<TreasureManager, TreasureShop>
else addButton(24, legendary, new BuyChestButton(getPlayer(), _inventoryManager, this, "Mythical Chest", Material.ENDER_CHEST, 10000));
if (christmasCount > 0) addButton(4, christmas, new OpenTreasureButton(getPlayer(), _treasureLocation, TreasureType.CHRISTMAS));
else addButton(4, christmas, new BuyChestButton(getPlayer(), _inventoryManager, this, "Winter Holiday Chest", Material.SNOW_BALL, 10000));
else addButton(4, christmas, new BuyChestButton(getPlayer(), _inventoryManager, this, TreasureType.CHRISTMAS.getItemName(), Material.SNOW_BALL, 10000));
}
}

View File

@ -1346,7 +1346,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation
if (!player.isOnline())
return;
PetReward reward = new PetReward(_petManager, _inventoryManager, _donationManager, pet, pet, type, RewardRarity.OTHER, 0);
PetReward reward = new PetReward(_petManager, _inventoryManager, _donationManager, pet, pet, type, RewardRarity.OTHER, 0, 0);
if (reward.canGiveReward(player))
reward.giveReward(null, player, new Callback<RewardData>()

View File

@ -61,13 +61,13 @@ public class GameLootManager implements Listener
//Chest
_rewardManager.addReward(new InventoryReward(Manager.getInventoryManager(), "Old Chest", "Old Chest", 1, 1,
new ItemStack(Material.CHEST), RewardRarity.COMMON, 2));
new ItemStack(Material.CHEST), RewardRarity.COMMON, 2, 0));
_rewardManager.addReward(new InventoryReward(Manager.getInventoryManager(), "Ancient Chest", "Ancient Chest", 1, 1,
new ItemStack(Material.CHEST), RewardRarity.UNCOMMON, 40));
new ItemStack(Material.CHEST), RewardRarity.UNCOMMON, 40, 0));
_rewardManager.addReward(new InventoryReward(Manager.getInventoryManager(), "Mythical Chest", "Mythical Chest", 1, 1,
new ItemStack(Material.CHEST), RewardRarity.UNCOMMON, 1));
new ItemStack(Material.CHEST), RewardRarity.UNCOMMON, 1, 0));
}
@EventHandler