|
|
@ -8,9 +8,7 @@ import java.util.Iterator;
|
|
|
|
import java.util.Map.Entry;
|
|
|
|
import java.util.Map.Entry;
|
|
|
|
|
|
|
|
|
|
|
|
import org.bukkit.ChatColor;
|
|
|
|
import org.bukkit.ChatColor;
|
|
|
|
import org.bukkit.Chunk;
|
|
|
|
|
|
|
|
import org.bukkit.Color;
|
|
|
|
import org.bukkit.Color;
|
|
|
|
import org.bukkit.Effect;
|
|
|
|
|
|
|
|
import org.bukkit.FireworkEffect;
|
|
|
|
import org.bukkit.FireworkEffect;
|
|
|
|
import org.bukkit.Location;
|
|
|
|
import org.bukkit.Location;
|
|
|
|
import org.bukkit.Material;
|
|
|
|
import org.bukkit.Material;
|
|
|
@ -34,7 +32,6 @@ import org.bukkit.event.entity.ExplosionPrimeEvent;
|
|
|
|
import org.bukkit.event.entity.ItemSpawnEvent;
|
|
|
|
import org.bukkit.event.entity.ItemSpawnEvent;
|
|
|
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
|
|
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
|
|
|
import org.bukkit.event.player.PlayerInteractEvent;
|
|
|
|
import org.bukkit.event.player.PlayerInteractEvent;
|
|
|
|
import org.bukkit.event.player.PlayerMoveEvent;
|
|
|
|
|
|
|
|
import org.bukkit.inventory.ItemStack;
|
|
|
|
import org.bukkit.inventory.ItemStack;
|
|
|
|
import org.bukkit.util.Vector;
|
|
|
|
import org.bukkit.util.Vector;
|
|
|
|
|
|
|
|
|
|
|
@ -45,6 +42,8 @@ import mineplex.core.common.util.UtilAction;
|
|
|
|
import mineplex.core.common.util.UtilAlg;
|
|
|
|
import mineplex.core.common.util.UtilAlg;
|
|
|
|
import mineplex.core.common.util.UtilBlock;
|
|
|
|
import mineplex.core.common.util.UtilBlock;
|
|
|
|
import mineplex.core.common.util.UtilEnt;
|
|
|
|
import mineplex.core.common.util.UtilEnt;
|
|
|
|
|
|
|
|
import mineplex.core.common.util.UtilEvent;
|
|
|
|
|
|
|
|
import mineplex.core.common.util.UtilEvent.ActionType;
|
|
|
|
import mineplex.core.common.util.UtilFirework;
|
|
|
|
import mineplex.core.common.util.UtilFirework;
|
|
|
|
import mineplex.core.common.util.UtilInv;
|
|
|
|
import mineplex.core.common.util.UtilInv;
|
|
|
|
import mineplex.core.common.util.UtilMath;
|
|
|
|
import mineplex.core.common.util.UtilMath;
|
|
|
@ -59,10 +58,12 @@ import mineplex.core.itemstack.ItemStackFactory;
|
|
|
|
import mineplex.core.recharge.Recharge;
|
|
|
|
import mineplex.core.recharge.Recharge;
|
|
|
|
import mineplex.core.updater.UpdateType;
|
|
|
|
import mineplex.core.updater.UpdateType;
|
|
|
|
import mineplex.core.updater.event.UpdateEvent;
|
|
|
|
import mineplex.core.updater.event.UpdateEvent;
|
|
|
|
|
|
|
|
import mineplex.minecraft.game.core.combat.event.CombatDeathEvent;
|
|
|
|
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
|
|
|
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
|
|
|
import nautilus.game.arcade.ArcadeManager;
|
|
|
|
import nautilus.game.arcade.ArcadeManager;
|
|
|
|
import nautilus.game.arcade.GameType;
|
|
|
|
import nautilus.game.arcade.GameType;
|
|
|
|
import nautilus.game.arcade.events.GameStateChangeEvent;
|
|
|
|
import nautilus.game.arcade.events.GameStateChangeEvent;
|
|
|
|
|
|
|
|
import nautilus.game.arcade.game.Game;
|
|
|
|
import nautilus.game.arcade.game.SoloGame;
|
|
|
|
import nautilus.game.arcade.game.SoloGame;
|
|
|
|
import nautilus.game.arcade.game.games.hungergames.kit.*;
|
|
|
|
import nautilus.game.arcade.game.games.hungergames.kit.*;
|
|
|
|
import nautilus.game.arcade.kit.Kit;
|
|
|
|
import nautilus.game.arcade.kit.Kit;
|
|
|
@ -127,7 +128,7 @@ public class HungerGames extends SoloGame
|
|
|
|
|
|
|
|
|
|
|
|
Manager.GetAntiStack().SetEnabled(false);
|
|
|
|
Manager.GetAntiStack().SetEnabled(false);
|
|
|
|
|
|
|
|
|
|
|
|
this.WorldTimeSet = 13000;
|
|
|
|
this.WorldTimeSet = 0;
|
|
|
|
|
|
|
|
|
|
|
|
this.SpawnDistanceRequirement = 48;
|
|
|
|
this.SpawnDistanceRequirement = 48;
|
|
|
|
|
|
|
|
|
|
|
@ -145,6 +146,9 @@ public class HungerGames extends SoloGame
|
|
|
|
this.GemMultiplier = 2;
|
|
|
|
this.GemMultiplier = 2;
|
|
|
|
|
|
|
|
|
|
|
|
//Blocks
|
|
|
|
//Blocks
|
|
|
|
|
|
|
|
this.BlockBreakAllow.add(46); //TNT
|
|
|
|
|
|
|
|
this.BlockPlaceAllow.add(46);
|
|
|
|
|
|
|
|
|
|
|
|
this.BlockBreakAllow.add(30); //Web
|
|
|
|
this.BlockBreakAllow.add(30); //Web
|
|
|
|
this.BlockPlaceAllow.add(30);
|
|
|
|
this.BlockPlaceAllow.add(30);
|
|
|
|
|
|
|
|
|
|
|
@ -163,6 +167,8 @@ public class HungerGames extends SoloGame
|
|
|
|
this.BlockBreakAllow.add(69); //Lever
|
|
|
|
this.BlockBreakAllow.add(69); //Lever
|
|
|
|
this.BlockPlaceAllow.add(69);
|
|
|
|
this.BlockPlaceAllow.add(69);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.BlockBreakAllow.add(18); //Leaves
|
|
|
|
|
|
|
|
|
|
|
|
//SPREAD
|
|
|
|
//SPREAD
|
|
|
|
_spreadType = 1;//UtilMath.r(3);
|
|
|
|
_spreadType = 1;//UtilMath.r(3);
|
|
|
|
|
|
|
|
|
|
|
@ -222,30 +228,41 @@ public class HungerGames extends SoloGame
|
|
|
|
System.out.println("Map Chest Locations: " + chests.size());
|
|
|
|
System.out.println("Map Chest Locations: " + chests.size());
|
|
|
|
|
|
|
|
|
|
|
|
//Enchants
|
|
|
|
//Enchants
|
|
|
|
System.out.println("Enchanting Tables: " + Math.min(10, chests.size()));
|
|
|
|
System.out.println("Enchanting Tables: " + Math.min(5, chests.size()));
|
|
|
|
for (int i=0 ; i<10 && !chests.isEmpty() ; i++)
|
|
|
|
for (int i=0 ; i<5 && !chests.isEmpty() ; i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Location loc = chests.remove(UtilMath.r(chests.size()));
|
|
|
|
Location loc = chests.remove(UtilMath.r(chests.size()));
|
|
|
|
loc.getBlock().setType(Material.ENCHANTMENT_TABLE);
|
|
|
|
loc.getBlock().setType(Material.ENCHANTMENT_TABLE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//Crafting
|
|
|
|
//Crafting
|
|
|
|
System.out.println("Crafting Benches: " + Math.min(20, chests.size()));
|
|
|
|
System.out.println("Crafting Benches: " + Math.min(10, chests.size()));
|
|
|
|
for (int i=0 ; i<20 && !chests.isEmpty() ; i++)
|
|
|
|
for (int i=0 ; i<10 && !chests.isEmpty() ; i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Location loc = chests.remove(UtilMath.r(chests.size()));
|
|
|
|
Location loc = chests.remove(UtilMath.r(chests.size()));
|
|
|
|
loc.getBlock().setType(Material.WORKBENCH);
|
|
|
|
loc.getBlock().setType(Material.WORKBENCH);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int spawn = 0;
|
|
|
|
|
|
|
|
|
|
|
|
//Chests
|
|
|
|
//Chests
|
|
|
|
System.out.println("Chests: " + Math.min(180, chests.size()));
|
|
|
|
System.out.println("Chests: " + Math.min(180, chests.size()));
|
|
|
|
for (int i=0 ; i<180 && !chests.isEmpty() ; i++)
|
|
|
|
for (int i=0 ; i<180 && !chests.isEmpty() ; i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
chests.remove(UtilMath.r(chests.size()));
|
|
|
|
Location loc = chests.remove(UtilMath.r(chests.size()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (UtilMath.offset2d(loc, GetSpectatorLocation()) < 10)
|
|
|
|
|
|
|
|
spawn++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for (Location loc : chests)
|
|
|
|
for (Location loc : chests)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
if (spawn < 10 && UtilMath.offset2d(loc, GetSpectatorLocation()) < 10)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
spawn++;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
loc.getBlock().setType(Material.AIR);
|
|
|
|
loc.getBlock().setType(Material.AIR);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -299,17 +316,26 @@ public class HungerGames extends SoloGame
|
|
|
|
|
|
|
|
|
|
|
|
chest.getBlockInventory().clear();
|
|
|
|
chest.getBlockInventory().clear();
|
|
|
|
|
|
|
|
|
|
|
|
int count = 1 + UtilMath.r(3);
|
|
|
|
int count = 2;
|
|
|
|
|
|
|
|
if (Math.random() > 0.50) count++;
|
|
|
|
|
|
|
|
if (Math.random() > 0.65) count++;
|
|
|
|
|
|
|
|
if (Math.random() > 0.80) count++;
|
|
|
|
|
|
|
|
if (Math.random() > 0.95) count++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Announce("Offset from Spec: " + UtilMath.offset2d(chest.getLocation(), GetSpectatorLocation()));
|
|
|
|
|
|
|
|
if (UtilMath.offset2d(chest.getLocation(), GetSpectatorLocation()) < 10)
|
|
|
|
|
|
|
|
count += 2;
|
|
|
|
|
|
|
|
|
|
|
|
if (GetKit(event.getPlayer()) instanceof KitLooter)
|
|
|
|
if (GetKit(event.getPlayer()) instanceof KitLooter)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
count += UtilMath.r(2);
|
|
|
|
count += UtilMath.r(3);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < count; i++)
|
|
|
|
for (int i = 0; i < count; i++)
|
|
|
|
chest.getBlockInventory().setItem(UtilMath.r(27), GetChestItem(_supplyChests.contains(event.getClickedBlock())));
|
|
|
|
chest.getBlockInventory().setItem(UtilMath.r(27), GetChestItem(_supplyChests.contains(event.getClickedBlock())));
|
|
|
|
|
|
|
|
|
|
|
|
_supplyChests.remove(event.getClickedBlock());
|
|
|
|
if (_supplyChests.remove(event.getClickedBlock()))
|
|
|
|
|
|
|
|
_openedChest.remove(event.getClickedBlock().getLocation());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private ItemStack GetChestItem(boolean superChest)
|
|
|
|
private ItemStack GetChestItem(boolean superChest)
|
|
|
@ -317,61 +343,70 @@ public class HungerGames extends SoloGame
|
|
|
|
if (_baseChestLoot.isEmpty())
|
|
|
|
if (_baseChestLoot.isEmpty())
|
|
|
|
{
|
|
|
|
{
|
|
|
|
//Armor
|
|
|
|
//Armor
|
|
|
|
|
|
|
|
for (int i = 0; i < 2; i++) _baseChestLoot.add(new ItemStack(Material.IRON_HELMET));
|
|
|
|
|
|
|
|
for (int i = 0; i < 2; i++) _baseChestLoot.add(new ItemStack(Material.IRON_CHESTPLATE));
|
|
|
|
|
|
|
|
for (int i = 0; i < 2; i++) _baseChestLoot.add(new ItemStack(Material.IRON_LEGGINGS));
|
|
|
|
|
|
|
|
for (int i = 0; i < 2; i++) _baseChestLoot.add(new ItemStack(Material.IRON_BOOTS));
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 12; i++) _baseChestLoot.add(new ItemStack(Material.CHAINMAIL_HELMET));
|
|
|
|
for (int i = 0; i < 12; i++) _baseChestLoot.add(new ItemStack(Material.CHAINMAIL_HELMET));
|
|
|
|
for (int i = 0; i < 12; i++) _baseChestLoot.add(new ItemStack(Material.CHAINMAIL_CHESTPLATE));
|
|
|
|
for (int i = 0; i < 12; i++) _baseChestLoot.add(new ItemStack(Material.CHAINMAIL_CHESTPLATE));
|
|
|
|
for (int i = 0; i < 12; i++) _baseChestLoot.add(new ItemStack(Material.CHAINMAIL_LEGGINGS));
|
|
|
|
for (int i = 0; i < 12; i++) _baseChestLoot.add(new ItemStack(Material.CHAINMAIL_LEGGINGS));
|
|
|
|
for (int i = 0; i < 12; i++) _baseChestLoot.add(new ItemStack(Material.CHAINMAIL_BOOTS));
|
|
|
|
for (int i = 0; i < 12; i++) _baseChestLoot.add(new ItemStack(Material.CHAINMAIL_BOOTS));
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 15; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_HELMET));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_HELMET));
|
|
|
|
for (int i = 0; i < 15; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_CHESTPLATE));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_CHESTPLATE));
|
|
|
|
for (int i = 0; i < 15; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_LEGGINGS));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_LEGGINGS));
|
|
|
|
for (int i = 0; i < 15; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_BOOTS));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_BOOTS));
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_HELMET));
|
|
|
|
for (int i = 0; i < 96; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_HELMET));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_CHESTPLATE));
|
|
|
|
for (int i = 0; i < 96; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_CHESTPLATE));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_LEGGINGS));
|
|
|
|
for (int i = 0; i < 96; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_LEGGINGS));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_BOOTS));
|
|
|
|
for (int i = 0; i < 96; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_BOOTS));
|
|
|
|
|
|
|
|
|
|
|
|
//Weapons
|
|
|
|
//Weapons
|
|
|
|
for (int i = 0; i < 48; i++) _baseChestLoot.add(new ItemStack(Material.WOOD_AXE));
|
|
|
|
for (int i = 0; i < 128; i++) _baseChestLoot.add(new ItemStack(Material.WOOD_AXE));
|
|
|
|
for (int i = 0; i < 48; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_AXE));
|
|
|
|
for (int i = 0; i < 48; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_AXE));
|
|
|
|
for (int i = 0; i < 12; i++) _baseChestLoot.add(new ItemStack(Material.STONE_AXE));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.STONE_AXE));
|
|
|
|
for (int i = 0; i < 6; i++) _baseChestLoot.add(new ItemStack(Material.IRON_AXE));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.IRON_AXE));
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.WOOD_SWORD));
|
|
|
|
for (int i = 0; i < 128; i++) _baseChestLoot.add(new ItemStack(Material.WOOD_SWORD));
|
|
|
|
for (int i = 0; i < 48; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_SWORD));
|
|
|
|
for (int i = 0; i < 48; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_SWORD));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.STONE_SWORD));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.STONE_SWORD));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.IRON_SWORD));
|
|
|
|
for (int i = 0; i < 12; i++) _baseChestLoot.add(new ItemStack(Material.IRON_SWORD));
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.BOW));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.BOW));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.ARROW, 8));
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.ARROW, 4));
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.TNT, 1));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.TNT, 1));
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.WEB, 2));
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.WEB, 2));
|
|
|
|
|
|
|
|
|
|
|
|
//Food
|
|
|
|
//Food
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.MUSHROOM_SOUP));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.MUSHROOM_SOUP));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.COOKED_CHICKEN));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.COOKED_CHICKEN));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.RAW_BEEF, 1));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.RAW_BEEF));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.GRILLED_PORK, 2));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.GRILLED_PORK));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.BREAD, 3));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.BREAD));
|
|
|
|
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.PUMPKIN_PIE));
|
|
|
|
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.COOKIE));
|
|
|
|
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.ROTTEN_FLESH));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 128; i++) _baseChestLoot.add(new ItemStack(Material.WHEAT, 2));
|
|
|
|
|
|
|
|
|
|
|
|
//Misc
|
|
|
|
//Misc
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.EXP_BOTTLE, 1));
|
|
|
|
for (int i = 0; i < 48; i++) _baseChestLoot.add(new ItemStack(Material.EXP_BOTTLE, 1));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_INGOT, 2));
|
|
|
|
for (int i = 0; i < 36; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_INGOT, 2));
|
|
|
|
for (int i = 0; i < 12; i++) _baseChestLoot.add(new ItemStack(Material.IRON_INGOT, 2));
|
|
|
|
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.IRON_INGOT));
|
|
|
|
for (int i = 0; i < 3; i++) _baseChestLoot.add(new ItemStack(Material.DIAMOND));
|
|
|
|
for (int i = 0; i < 3; i++) _baseChestLoot.add(new ItemStack(Material.DIAMOND));
|
|
|
|
for (int i = 0; i < 128; i++) _baseChestLoot.add(new ItemStack(Material.STICK, 4));
|
|
|
|
for (int i = 0; i < 128; i++) _baseChestLoot.add(new ItemStack(Material.STICK, 4));
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.FLINT, 4));
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.FLINT, 3));
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.FEATHER, 4));
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.FEATHER, 3));
|
|
|
|
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.BOAT));
|
|
|
|
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.FISHING_ROD));
|
|
|
|
|
|
|
|
|
|
|
|
//Building Supplies
|
|
|
|
//Building Supplies
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.PISTON_BASE, 4));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.PISTON_BASE, 4));
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.REDSTONE, 4));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.STRING, 4));
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.STRING, 4));
|
|
|
|
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.TRIPWIRE_HOOK, 4));
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.TRIPWIRE_HOOK, 4));
|
|
|
|
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.WOOD_PLATE));
|
|
|
|
|
|
|
|
for (int i = 0; i < 64; i++) _baseChestLoot.add(new ItemStack(Material.LEVER));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (_superChestLoot.isEmpty())
|
|
|
|
if (_superChestLoot.isEmpty())
|
|
|
@ -398,7 +433,7 @@ public class HungerGames extends SoloGame
|
|
|
|
int amount = 1;
|
|
|
|
int amount = 1;
|
|
|
|
|
|
|
|
|
|
|
|
if (stack.getType().getMaxStackSize() > 1)
|
|
|
|
if (stack.getType().getMaxStackSize() > 1)
|
|
|
|
amount = stack.getAmount() + UtilMath.r(stack.getAmount());
|
|
|
|
amount = Math.max(1, UtilMath.r(stack.getAmount()));
|
|
|
|
|
|
|
|
|
|
|
|
return ItemStackFactory.Instance.CreateStack(stack.getTypeId(), amount);
|
|
|
|
return ItemStackFactory.Instance.CreateStack(stack.getTypeId(), amount);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -486,12 +521,7 @@ public class HungerGames extends SoloGame
|
|
|
|
long time = System.currentTimeMillis();
|
|
|
|
long time = System.currentTimeMillis();
|
|
|
|
|
|
|
|
|
|
|
|
if (_redLocations.isEmpty())
|
|
|
|
if (_redLocations.isEmpty())
|
|
|
|
{
|
|
|
|
|
|
|
|
if (UtilTime.elapsed(GetStateTime(), 6000))
|
|
|
|
|
|
|
|
SetState(GameState.End);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int max = Math.max(5, Math.min(_maxSpreadRate, _redLocations.size()/100));
|
|
|
|
int max = Math.max(5, Math.min(_maxSpreadRate, _redLocations.size()/100));
|
|
|
|
|
|
|
|
|
|
|
@ -979,8 +1009,7 @@ public class HungerGames extends SoloGame
|
|
|
|
@EventHandler
|
|
|
|
@EventHandler
|
|
|
|
public void TNTThrow(PlayerInteractEvent event)
|
|
|
|
public void TNTThrow(PlayerInteractEvent event)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK &&
|
|
|
|
if (!UtilEvent.isAction(event, ActionType.L))
|
|
|
|
event.getAction() != Action.LEFT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_AIR)
|
|
|
|
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
Player player = event.getPlayer();
|
|
|
|
Player player = event.getPlayer();
|
|
|
@ -1073,10 +1102,25 @@ public class HungerGames extends SoloGame
|
|
|
|
event.setCancelled(true);
|
|
|
|
event.setCancelled(true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//XXX REMOVE ME
|
|
|
|
@EventHandler
|
|
|
|
@Override
|
|
|
|
public void PlayerKillAward(CombatDeathEvent event)
|
|
|
|
public void EndCheck()
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
Game game = Manager.GetGame();
|
|
|
|
|
|
|
|
if (game == null) return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!(event.GetEvent().getEntity() instanceof Player))
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (event.GetLog().GetKiller() == null)
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Player killer = UtilPlayer.searchExact(event.GetLog().GetKiller().GetName());
|
|
|
|
|
|
|
|
if (killer == null)
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (killer.equals(event.GetEvent().getEntity()))
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
killer.giveExpLevels(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|