HG Fixes
This commit is contained in:
parent
9c9e5f1ae0
commit
3d13fb0dc9
@ -8,9 +8,7 @@ import java.util.Iterator;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.FireworkEffect;
|
||||
import org.bukkit.Location;
|
||||
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.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
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.UtilBlock;
|
||||
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.UtilInv;
|
||||
import mineplex.core.common.util.UtilMath;
|
||||
@ -59,10 +58,12 @@ import mineplex.core.itemstack.ItemStackFactory;
|
||||
import mineplex.core.recharge.Recharge;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
import mineplex.minecraft.game.core.combat.event.CombatDeathEvent;
|
||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
||||
import nautilus.game.arcade.ArcadeManager;
|
||||
import nautilus.game.arcade.GameType;
|
||||
import nautilus.game.arcade.events.GameStateChangeEvent;
|
||||
import nautilus.game.arcade.game.Game;
|
||||
import nautilus.game.arcade.game.SoloGame;
|
||||
import nautilus.game.arcade.game.games.hungergames.kit.*;
|
||||
import nautilus.game.arcade.kit.Kit;
|
||||
@ -127,7 +128,7 @@ public class HungerGames extends SoloGame
|
||||
|
||||
Manager.GetAntiStack().SetEnabled(false);
|
||||
|
||||
this.WorldTimeSet = 13000;
|
||||
this.WorldTimeSet = 0;
|
||||
|
||||
this.SpawnDistanceRequirement = 48;
|
||||
|
||||
@ -145,6 +146,9 @@ public class HungerGames extends SoloGame
|
||||
this.GemMultiplier = 2;
|
||||
|
||||
//Blocks
|
||||
this.BlockBreakAllow.add(46); //TNT
|
||||
this.BlockPlaceAllow.add(46);
|
||||
|
||||
this.BlockBreakAllow.add(30); //Web
|
||||
this.BlockPlaceAllow.add(30);
|
||||
|
||||
@ -163,6 +167,8 @@ public class HungerGames extends SoloGame
|
||||
this.BlockBreakAllow.add(69); //Lever
|
||||
this.BlockPlaceAllow.add(69);
|
||||
|
||||
this.BlockBreakAllow.add(18); //Leaves
|
||||
|
||||
//SPREAD
|
||||
_spreadType = 1;//UtilMath.r(3);
|
||||
|
||||
@ -222,30 +228,41 @@ public class HungerGames extends SoloGame
|
||||
System.out.println("Map Chest Locations: " + chests.size());
|
||||
|
||||
//Enchants
|
||||
System.out.println("Enchanting Tables: " + Math.min(10, chests.size()));
|
||||
for (int i=0 ; i<10 && !chests.isEmpty() ; i++)
|
||||
System.out.println("Enchanting Tables: " + Math.min(5, chests.size()));
|
||||
for (int i=0 ; i<5 && !chests.isEmpty() ; i++)
|
||||
{
|
||||
Location loc = chests.remove(UtilMath.r(chests.size()));
|
||||
loc.getBlock().setType(Material.ENCHANTMENT_TABLE);
|
||||
}
|
||||
|
||||
//Crafting
|
||||
System.out.println("Crafting Benches: " + Math.min(20, chests.size()));
|
||||
for (int i=0 ; i<20 && !chests.isEmpty() ; i++)
|
||||
System.out.println("Crafting Benches: " + Math.min(10, chests.size()));
|
||||
for (int i=0 ; i<10 && !chests.isEmpty() ; i++)
|
||||
{
|
||||
Location loc = chests.remove(UtilMath.r(chests.size()));
|
||||
loc.getBlock().setType(Material.WORKBENCH);
|
||||
}
|
||||
|
||||
int spawn = 0;
|
||||
|
||||
//Chests
|
||||
System.out.println("Chests: " + Math.min(180, chests.size()));
|
||||
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)
|
||||
{
|
||||
if (spawn < 10 && UtilMath.offset2d(loc, GetSpectatorLocation()) < 10)
|
||||
{
|
||||
spawn++;
|
||||
continue;
|
||||
}
|
||||
|
||||
loc.getBlock().setType(Material.AIR);
|
||||
}
|
||||
}
|
||||
@ -299,17 +316,26 @@ public class HungerGames extends SoloGame
|
||||
|
||||
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)
|
||||
{
|
||||
count += UtilMath.r(2);
|
||||
count += UtilMath.r(3);
|
||||
}
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
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)
|
||||
@ -317,61 +343,70 @@ public class HungerGames extends SoloGame
|
||||
if (_baseChestLoot.isEmpty())
|
||||
{
|
||||
//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_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_BOOTS));
|
||||
|
||||
for (int i = 0; i < 15; 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 < 15; 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_HELMET));
|
||||
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_CHESTPLATE));
|
||||
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_LEGGINGS));
|
||||
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 < 32; 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 < 32; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_BOOTS));
|
||||
for (int i = 0; i < 96; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_HELMET));
|
||||
for (int i = 0; i < 96; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_CHESTPLATE));
|
||||
for (int i = 0; i < 96; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_LEGGINGS));
|
||||
for (int i = 0; i < 96; i++) _baseChestLoot.add(new ItemStack(Material.LEATHER_BOOTS));
|
||||
|
||||
//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 < 12; 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 < 32; i++) _baseChestLoot.add(new ItemStack(Material.STONE_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 < 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 < 24; i++) _baseChestLoot.add(new ItemStack(Material.ARROW, 8));
|
||||
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.BOW));
|
||||
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));
|
||||
|
||||
//Food
|
||||
for (int i = 0; i < 24; 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 < 24; i++) _baseChestLoot.add(new ItemStack(Material.RAW_BEEF, 1));
|
||||
for (int i = 0; i < 24; i++) _baseChestLoot.add(new ItemStack(Material.GRILLED_PORK, 2));
|
||||
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.MUSHROOM_SOUP));
|
||||
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.COOKED_CHICKEN));
|
||||
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.RAW_BEEF));
|
||||
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.GRILLED_PORK));
|
||||
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
|
||||
for (int i = 0; i < 24; 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 < 12; i++) _baseChestLoot.add(new ItemStack(Material.IRON_INGOT, 2));
|
||||
for (int i = 0; i < 48; i++) _baseChestLoot.add(new ItemStack(Material.EXP_BOTTLE, 1));
|
||||
for (int i = 0; i < 36; i++) _baseChestLoot.add(new ItemStack(Material.GOLD_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 < 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.FEATHER, 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, 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
|
||||
for (int i = 0; i < 64; 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 < 64; i++) _baseChestLoot.add(new ItemStack(Material.STRING, 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));
|
||||
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.PISTON_BASE, 4));
|
||||
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.STRING, 4));
|
||||
for (int i = 0; i < 32; i++) _baseChestLoot.add(new ItemStack(Material.TRIPWIRE_HOOK, 4));
|
||||
}
|
||||
|
||||
if (_superChestLoot.isEmpty())
|
||||
@ -398,7 +433,7 @@ public class HungerGames extends SoloGame
|
||||
int amount = 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);
|
||||
}
|
||||
@ -486,12 +521,7 @@ public class HungerGames extends SoloGame
|
||||
long time = System.currentTimeMillis();
|
||||
|
||||
if (_redLocations.isEmpty())
|
||||
{
|
||||
if (UtilTime.elapsed(GetStateTime(), 6000))
|
||||
SetState(GameState.End);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
int max = Math.max(5, Math.min(_maxSpreadRate, _redLocations.size()/100));
|
||||
|
||||
@ -979,8 +1009,7 @@ public class HungerGames extends SoloGame
|
||||
@EventHandler
|
||||
public void TNTThrow(PlayerInteractEvent event)
|
||||
{
|
||||
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK &&
|
||||
event.getAction() != Action.LEFT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_AIR)
|
||||
if (!UtilEvent.isAction(event, ActionType.L))
|
||||
return;
|
||||
|
||||
Player player = event.getPlayer();
|
||||
@ -1073,10 +1102,25 @@ public class HungerGames extends SoloGame
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
//XXX REMOVE ME
|
||||
@Override
|
||||
public void EndCheck()
|
||||
@EventHandler
|
||||
public void PlayerKillAward(CombatDeathEvent event)
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -97,10 +97,4 @@ public class PerkBomberHG extends Perk
|
||||
for (org.bukkit.inventory.ItemStack item : remove)
|
||||
event.getDrops().remove(item);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void TNTInvClick(InventoryClickEvent event)
|
||||
{
|
||||
UtilInv.DisallowMovementOf(event, "Throwing TNT", Material.TNT, (byte)0, true);
|
||||
}
|
||||
}
|
||||
|
@ -67,6 +67,8 @@ public class PerkSkeletons extends Perk
|
||||
Skeleton skel = killer.getWorld().spawn(killed.getLocation(), Skeleton.class);
|
||||
Manager.GetGame().CreatureAllowOverride = false;
|
||||
|
||||
UtilEnt.removeGoalSelectors(skel);
|
||||
|
||||
skel.setMaxHealth(30);
|
||||
skel.setHealth(skel.getMaxHealth());
|
||||
|
||||
|
@ -96,7 +96,7 @@ public class PerkTNTArrow extends Perk
|
||||
|
||||
//TNT
|
||||
TNTPrimed tnt = player.getWorld().spawn(player.getEyeLocation().add(0, 2, 0), TNTPrimed.class);
|
||||
//XXX ((CraftTNTPrimed)tnt).getHandle().spectating = true;
|
||||
((CraftTNTPrimed)tnt).getHandle().spectating = true;
|
||||
|
||||
event.getProjectile().setPassenger(tnt);
|
||||
|
||||
|
@ -99,7 +99,7 @@ public class GameManager implements Listener
|
||||
//Stop Countdown!
|
||||
if (game.GetCountdown() != -1 &&
|
||||
UtilServer.getPlayers().length < Manager.GetPlayerMin() &&
|
||||
!game.GetCountdownForce() && game.GetType() != GameType.HungerGames) //XXX REMOVE ME
|
||||
!game.GetCountdownForce())
|
||||
{
|
||||
game.SetCountdown(-1);
|
||||
Manager.GetLobby().DisplayWaiting();
|
||||
@ -107,11 +107,7 @@ public class GameManager implements Listener
|
||||
|
||||
if (game.GetCountdown() != -1)
|
||||
StateCountdown(game, -1, false);
|
||||
else if (game.GetType() == GameType.HungerGames) //XXX REMOVE ME
|
||||
{
|
||||
StateCountdown(game, 1, false);
|
||||
return;
|
||||
}
|
||||
|
||||
else if (game.AutoStart)
|
||||
{
|
||||
if (UtilServer.getPlayers().length >= Manager.GetPlayerFull())
|
||||
@ -128,7 +124,7 @@ public class GameManager implements Listener
|
||||
for (Player player : UtilServer.getPlayers())
|
||||
player.playSound(player.getLocation(), Sound.NOTE_PLING, 2f, 2f);
|
||||
|
||||
if (game.GetPlayers(true).size() < 2 && game.GetType() != GameType.HungerGames) // XXX REMOVE HG
|
||||
if (game.GetPlayers(true).size() < 2)
|
||||
{
|
||||
game.Announce(C.cWhite + C.Bold + game.GetName() + " ended, not enough players!");
|
||||
game.SetState(GameState.Dead);
|
||||
|
@ -43,8 +43,8 @@ public class WorldParser
|
||||
int processed = 0;
|
||||
|
||||
caller.sendMessage("Scanning for Blocks...");
|
||||
for (int x=-500 ; x < 500 ; x++)
|
||||
for (int z=-500 ; z < 500 ; z++)
|
||||
for (int x=-600 ; x < 600 ; x++)
|
||||
for (int z=-600 ; z < 600 ; z++)
|
||||
for (int y=0 ; y < 256 ; y++)
|
||||
{
|
||||
processed++;
|
||||
|
Loading…
Reference in New Issue
Block a user