ADDED MORE KITS I'M DONE HOORAY LOVE ME @CHISS
This commit is contained in:
parent
c9ff420a79
commit
a7ab0cd723
@ -16,12 +16,12 @@ import mineplex.core.common.util.UtilBlock;
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
import mineplex.core.common.util.UtilMath;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilTextMiddle;
|
||||
import mineplex.core.common.util.UtilTime;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.disguise.DisguiseFactory;
|
||||
import mineplex.core.disguise.disguises.DisguiseBase;
|
||||
import mineplex.core.disguise.disguises.DisguiseMagmaCube;
|
||||
@ -38,6 +38,7 @@ import nautilus.game.arcade.game.games.monstermaze.events.EntityLaunchEvent;
|
||||
import nautilus.game.arcade.game.games.monstermaze.events.FirstToSafepadEvent;
|
||||
import nautilus.game.arcade.game.games.monstermaze.events.MonsterBumpPlayerEvent;
|
||||
import nautilus.game.arcade.game.games.monstermaze.events.SafepadBuildEvent;
|
||||
import nautilus.game.arcade.game.games.monstermaze.kits.KitBodyBuilder;
|
||||
import net.minecraft.server.v1_7_R4.Packet;
|
||||
import net.minecraft.server.v1_7_R4.PacketPlayOutAnimation;
|
||||
import net.minecraft.server.v1_7_R4.PacketPlayOutBlockBreakAnimation;
|
||||
@ -188,27 +189,6 @@ public class Maze implements Listener
|
||||
}
|
||||
}
|
||||
|
||||
private boolean _announced = false;
|
||||
@EventHandler
|
||||
public void sendF5Message(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.FAST)
|
||||
return;
|
||||
|
||||
if (_host.GetState() != GameState.Prepare)
|
||||
return;
|
||||
|
||||
if (_announced)
|
||||
return;
|
||||
|
||||
if (!UtilTime.elapsed(_host.GetStateTime(), 4000))
|
||||
return;
|
||||
|
||||
_announced = true;
|
||||
UtilTextMiddle.display(C.cYellow + C.Bold + "Press F5", C.cAqua + C.Bold + "Monster Maze is best in 3rd person!");
|
||||
_host.Announce(C.cYellow + C.Scramble + "@@" + C.cAqua + C.Bold + " Monster Maze is best played in 3rd Person! (Push F5) " + C.cYellow + C.Scramble + "@@");
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void updateTick(UpdateEvent event)
|
||||
{
|
||||
@ -676,7 +656,6 @@ public class Maze implements Listener
|
||||
|
||||
for (Block cur : UtilBlock.getInBoundingBox(next.clone().add(-2, 0, -2), next.clone().add(2, 0, 2), false))
|
||||
{
|
||||
//TODO Maze stuff
|
||||
if (!_movementWaypointsDisabled.contains(cur))
|
||||
_movementWaypointsDisabled.add(cur);
|
||||
}
|
||||
@ -772,13 +751,6 @@ public class Maze implements Listener
|
||||
}
|
||||
|
||||
getPreset().getMaze().add(cur);
|
||||
|
||||
//TODO This is one part
|
||||
}
|
||||
|
||||
if (_centerSafeZoneDecay != 1)
|
||||
{
|
||||
UtilParticle.PlayParticle(ParticleType.BLOCK_DUST.getParticle(Material.STAINED_CLAY, loc.getBlock().getData()), loc.clone().add(0, .2, 0), 0.5f, 0.5f, 0.5f, 0.05f, 8, ViewDist.NORMAL, _host.GetPlayers(false).toArray(new Player[_host.GetPlayers(false).size()]));
|
||||
}
|
||||
|
||||
ind++;
|
||||
@ -899,8 +871,6 @@ public class Maze implements Listener
|
||||
{
|
||||
if (_movementWaypointsDisabled.contains(block))
|
||||
_movementWaypointsDisabled.remove(block);
|
||||
|
||||
//TODO Swag
|
||||
}
|
||||
|
||||
iterator.remove();
|
||||
@ -1039,6 +1009,12 @@ public class Maze implements Listener
|
||||
//2 hearts
|
||||
UtilPlayer.health(p, 4.0);
|
||||
|
||||
if (_host.GetKit(p) instanceof KitBodyBuilder)
|
||||
{
|
||||
p.setMaxHealth(Math.min(p.getMaxHealth() + 2, 30));
|
||||
UtilParticle.PlayParticle(ParticleType.HEART, p.getEyeLocation().clone().add(0, .5, 0), 0F, 0F, 0F, 0, 3, ViewDist.NORMAL, UtilServer.getPlayers());
|
||||
}
|
||||
|
||||
int decreased = Math.max(6, 16 - (_curSafe - 1));
|
||||
_phaseTimer = Math.min(decreased, _phaseTimer);
|
||||
|
||||
|
@ -25,6 +25,8 @@ import nautilus.game.arcade.game.games.monstermaze.events.AbilityUseEvent;
|
||||
import nautilus.game.arcade.game.games.monstermaze.events.MonsterBumpPlayerEvent;
|
||||
import nautilus.game.arcade.game.games.monstermaze.kits.KitJumper;
|
||||
import nautilus.game.arcade.game.games.monstermaze.kits.KitRepulsor;
|
||||
import nautilus.game.arcade.game.games.monstermaze.kits.KitBodyBuilder;
|
||||
import nautilus.game.arcade.game.games.monstermaze.kits.KitSlowball;
|
||||
import nautilus.game.arcade.game.games.monstermaze.trackers.AbilityUseTracker;
|
||||
import nautilus.game.arcade.game.games.monstermaze.trackers.FirstToSafepadTracker;
|
||||
import nautilus.game.arcade.game.games.monstermaze.trackers.PilotTracker;
|
||||
@ -64,6 +66,8 @@ public class MonsterMaze extends SoloGame
|
||||
new Kit[]
|
||||
{
|
||||
new KitJumper(manager),
|
||||
new KitSlowball(manager),
|
||||
new KitBodyBuilder(manager),
|
||||
new KitRepulsor(manager)
|
||||
},
|
||||
|
||||
@ -87,6 +91,8 @@ public class MonsterMaze extends SoloGame
|
||||
|
||||
CompassEnabled = false;
|
||||
|
||||
VersionRequire1_8 = true;
|
||||
|
||||
registerStatTrackers(
|
||||
new SnowmanHitTracker(this),
|
||||
new AbilityUseTracker(this),
|
||||
@ -342,6 +348,27 @@ public class MonsterMaze extends SoloGame
|
||||
}
|
||||
}
|
||||
|
||||
private boolean _announced = false;
|
||||
@EventHandler
|
||||
public void sendF5Message(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.FAST)
|
||||
return;
|
||||
|
||||
if (GetState() != GameState.Prepare)
|
||||
return;
|
||||
|
||||
if (_announced)
|
||||
return;
|
||||
|
||||
if (!UtilTime.elapsed(GetStateTime(), 4000))
|
||||
return;
|
||||
|
||||
_announced = true;
|
||||
UtilTextMiddle.display(C.cYellow + C.Bold + "Press F5", C.cAqua + C.Bold + "Monster Maze is best in 3rd person!");
|
||||
Announce(C.cYellow + C.Scramble + "@@" + C.cAqua + C.Bold + " Monster Maze is best played in 3rd Person! (Push F5) " + C.cYellow + C.Scramble + "@@");
|
||||
}
|
||||
|
||||
@Override
|
||||
@EventHandler
|
||||
public void ScoreboardUpdate(UpdateEvent event)
|
||||
|
@ -5,9 +5,6 @@ import java.util.Iterator;
|
||||
|
||||
import mineplex.core.common.util.MapUtil;
|
||||
import mineplex.core.common.util.UtilAlg;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import net.minecraft.server.v1_7_R4.Packet;
|
||||
import net.minecraft.server.v1_7_R4.PacketPlayOutBlockBreakAnimation;
|
||||
@ -254,8 +251,6 @@ public class SafePad
|
||||
if (!spb.getLocation().getBlock().getType().equals(Material.STAINED_CLAY))
|
||||
continue;
|
||||
|
||||
UtilParticle.PlayParticle(ParticleType.BLOCK_DUST.getParticle(Material.STAINED_CLAY, spb.getBlockData()), spb.getLocation(), 0.5f, 0.5f, 0.5f, 0.05f, 8, ViewDist.NORMAL, Host.GetPlayers(false).toArray(new Player[Host.GetPlayers(false).size()]));
|
||||
|
||||
i++;
|
||||
|
||||
Packet packet = new PacketPlayOutBlockBreakAnimation(i, spb.getLocation().getBlockX(), spb.getLocation().getBlockY(), spb.getLocation().getBlockZ(), progress);
|
||||
|
@ -0,0 +1,38 @@
|
||||
package nautilus.game.arcade.game.games.monstermaze.kits;
|
||||
|
||||
import mineplex.core.common.util.F;
|
||||
import mineplex.core.itemstack.ItemStackFactory;
|
||||
import nautilus.game.arcade.ArcadeManager;
|
||||
import nautilus.game.arcade.kit.Kit;
|
||||
import nautilus.game.arcade.kit.KitAvailability;
|
||||
import nautilus.game.arcade.kit.Perk;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
public class KitBodyBuilder extends Kit
|
||||
{
|
||||
public KitBodyBuilder(ArcadeManager manager)
|
||||
{
|
||||
super(manager, "Body Builder", KitAvailability.Gem, 2000,
|
||||
|
||||
new String[]
|
||||
{
|
||||
"Your health just keeps getting better!"
|
||||
},
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new Perk("Body Builder", new String[]{"Your " + F.elem("Max Health") + " increases by " + F.skill("One Heart"), "when you are first to a Safe Pad.", "Maximum of 15 hearts."}){}
|
||||
},
|
||||
EntityType.SKELETON,
|
||||
ItemStackFactory.Instance.CreateStack(373, 8229));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void GiveItems(Player player)
|
||||
{
|
||||
player.getInventory().setItem(4, ItemStackFactory.Instance.CreateStack(Material.COMPASS, (byte) 0, 1, F.item("Safe Pad Locator")));
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package nautilus.game.arcade.game.games.monstermaze.kits;
|
||||
|
||||
import mineplex.core.achievement.Achievement;
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.F;
|
||||
import mineplex.core.itemstack.ItemStackFactory;
|
||||
@ -18,7 +19,7 @@ public class KitRepulsor extends Kit
|
||||
{
|
||||
public KitRepulsor(ArcadeManager manager)
|
||||
{
|
||||
super(manager, "Repulsor", KitAvailability.Gem, 4000,
|
||||
super(manager, "Repulsor", KitAvailability.Achievement, 0,
|
||||
|
||||
new String[]
|
||||
{
|
||||
@ -32,6 +33,16 @@ public class KitRepulsor extends Kit
|
||||
},
|
||||
EntityType.SKELETON,
|
||||
new ItemStack(Material.COAL));
|
||||
|
||||
setAchievementRequirements(new Achievement[]
|
||||
{
|
||||
Achievement.MONSTER_MAZE_HARD_MODE,
|
||||
Achievement.MONSTER_MAZE_NINJA,
|
||||
Achievement.MONSTER_MAZE_PILOT,
|
||||
Achievement.MONSTER_MAZE_SPEEDSTER,
|
||||
Achievement.MONSTER_MAZE_SURVIVAL,
|
||||
Achievement.MONSTER_MAZE_WINS
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -0,0 +1,61 @@
|
||||
package nautilus.game.arcade.game.games.monstermaze.kits;
|
||||
|
||||
import mineplex.core.common.util.F;
|
||||
import mineplex.core.itemstack.ItemStackFactory;
|
||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
||||
import nautilus.game.arcade.ArcadeManager;
|
||||
import nautilus.game.arcade.kit.Kit;
|
||||
import nautilus.game.arcade.kit.KitAvailability;
|
||||
import nautilus.game.arcade.kit.Perk;
|
||||
import nautilus.game.arcade.kit.perks.PerkConstructor;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Snowball;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class KitSlowball extends Kit
|
||||
{
|
||||
public KitSlowball(ArcadeManager manager)
|
||||
{
|
||||
super(manager, "Slowballer", KitAvailability.Gem, 4000,
|
||||
|
||||
new String[]
|
||||
{
|
||||
"Slow enemies so they can't get to",
|
||||
"their Safe Pad in time!"
|
||||
},
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkConstructor("Slowballer", 2, 16, Material.SNOW_BALL, "Slowball", true)
|
||||
},
|
||||
EntityType.SKELETON,
|
||||
new ItemStack(Material.SNOW_BALL));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void GiveItems(Player player)
|
||||
{
|
||||
player.getInventory().setItem(4, ItemStackFactory.Instance.CreateStack(Material.COMPASS, (byte) 0, 1, F.item("Safe Pad Locator")));
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void SnowballHit(CustomDamageEvent event)
|
||||
{
|
||||
if (event.GetProjectile() == null)
|
||||
return;
|
||||
|
||||
if (!(event.GetProjectile() instanceof Snowball))
|
||||
return;
|
||||
|
||||
event.GetProjectile().remove();
|
||||
|
||||
// event.GetDamageeEntity().playEffect(EntityEffect.HURT);
|
||||
|
||||
Manager.GetCondition().Factory().Slow("Snowball Slow", event.GetDamageeEntity(), (LivingEntity)event.GetProjectile().getShooter(), 2, 1, false, false, true, false);
|
||||
}
|
||||
}
|
@ -1,5 +1,7 @@
|
||||
package nautilus.game.arcade.managers;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import mineplex.core.antihack.AntiHack;
|
||||
import mineplex.core.common.Rank;
|
||||
import mineplex.core.common.util.C;
|
||||
@ -12,6 +14,7 @@ import mineplex.core.common.util.UtilMath;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilTextMiddle;
|
||||
import mineplex.core.common.util.UtilTime;
|
||||
import mineplex.core.itemstack.ItemStackFactory;
|
||||
import mineplex.core.recharge.Recharge;
|
||||
import mineplex.core.teleport.event.MineplexTeleportEvent;
|
||||
@ -1188,6 +1191,8 @@ public class GameFlagManager implements Listener
|
||||
}
|
||||
}
|
||||
|
||||
private HashMap<Player, Long> _versionKickCleanup = new HashMap<Player, Long>();
|
||||
|
||||
@EventHandler
|
||||
public void versionJoinCheck(PlayerJoinEvent event)
|
||||
{
|
||||
@ -1215,6 +1220,51 @@ public class GameFlagManager implements Listener
|
||||
|
||||
player.playSound(player.getLocation(), Sound.ENDERDRAGON_GROWL, 10f, 1f);
|
||||
Manager.GetPortal().sendPlayerToServer(player, "Lobby");
|
||||
|
||||
if (!_versionKickCleanup.containsKey(player))
|
||||
_versionKickCleanup.put(player, System.currentTimeMillis());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onVersionCleanup(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.FASTER)
|
||||
return;
|
||||
|
||||
if (Manager.GetGame() == null || !Manager.GetGame().VersionRequire1_8)
|
||||
{
|
||||
if (!_versionKickCleanup.isEmpty())
|
||||
_versionKickCleanup.clear();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
HashMap<Player, Long> copy = new HashMap<Player, Long>();
|
||||
copy.putAll(_versionKickCleanup);
|
||||
|
||||
for (Player player : copy.keySet())
|
||||
{
|
||||
if (UtilPlayer.is1_8(player))
|
||||
{
|
||||
_versionKickCleanup.remove(player);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!player.isOnline())
|
||||
{
|
||||
_versionKickCleanup.remove(player);
|
||||
continue;
|
||||
}
|
||||
|
||||
//Force kick the player after 10 seconds of not being sent to lobby.
|
||||
if (UtilTime.elapsed(copy.get(player), 10000))
|
||||
{
|
||||
_versionKickCleanup.remove(player);
|
||||
|
||||
player.kickPlayer(C.cGold + C.Bold + Manager.GetGame().GetType().GetName() + " requires you to be using Minecraft 1.8!");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
Loading…
Reference in New Issue
Block a user