Merge branch 'master' of ssh://dev1.mineplex.com:7999/min/Mineplex

This commit is contained in:
Jonathan Williams 2014-03-14 02:20:01 -07:00
commit 0094c0ebeb
5 changed files with 75 additions and 33 deletions

View File

@ -0,0 +1,40 @@
package nautilus.game.arcade.events;
import nautilus.game.arcade.game.Game;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
public class PlayerPrepareTeleportEvent extends Event
{
private static final HandlerList handlers = new HandlerList();
private Game _game;
private Player _player;
public PlayerPrepareTeleportEvent(Game game, Player player)
{
_game = game;
_player = player;
}
public HandlerList getHandlers()
{
return handlers;
}
public static HandlerList getHandlerList()
{
return handlers;
}
public Game GetGame()
{
return _game;
}
public Player GetPlayer()
{
return _player;
}
}

View File

@ -47,6 +47,7 @@ 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.events.PlayerPrepareTeleportEvent;
import nautilus.game.arcade.game.SoloGame; import nautilus.game.arcade.game.SoloGame;
import nautilus.game.arcade.game.games.gravity.kits.*; import nautilus.game.arcade.game.games.gravity.kits.*;
import nautilus.game.arcade.game.games.gravity.objects.GravityBomb; import nautilus.game.arcade.game.games.gravity.objects.GravityBomb;
@ -64,7 +65,7 @@ public class Gravity extends SoloGame
private HashMap<Player, GravityHook> _hooks = new HashMap<Player, GravityHook>(); private HashMap<Player, GravityHook> _hooks = new HashMap<Player, GravityHook>();
private HashMap<Arrow, Vector> _arrows = new HashMap<Arrow, Vector>(); private HashMap<Arrow, Vector> _arrows = new HashMap<Arrow, Vector>();
private ArrayList<Location> _powerups = new ArrayList<Location>(); private ArrayList<Location> _powerups = new ArrayList<Location>();
private Location _powerup = null; private Location _powerup = null;
private long _lastPowerup = 0; private long _lastPowerup = 0;
@ -106,7 +107,7 @@ public class Gravity extends SoloGame
this.CompassEnabled = true; this.CompassEnabled = true;
} }
@Override @Override
public void ParseData() public void ParseData()
{ {
@ -114,26 +115,22 @@ public class Gravity extends SoloGame
} }
@EventHandler @EventHandler
public void CreatePlayerObjects(GameStateChangeEvent event) public void CreatePlayerObjects(PlayerPrepareTeleportEvent event)
{ {
if (event.GetState() != GameState.Prepare) Player player = event.GetPlayer();
return;
for (Player player : GetPlayers(true)) GravityPlayer obj = new GravityPlayer(this, player, 60, null);
{ _objects.add(obj);
GravityPlayer obj = new GravityPlayer(this, player, 60, null);
_objects.add(obj);
player.setExp(0.9999f); player.setExp(0.9999f);
}
} }
@EventHandler @EventHandler
public void AnnounceBoost(GameStateChangeEvent event) public void AnnounceBoost(GameStateChangeEvent event)
{ {
if (event.GetState() != GameState.Live) if (event.GetState() != GameState.Live)
return; return;
Announce(C.Bold + C.cPurple + "Press " + C.Bold + C.cWhite + "DROP WEAPON" + C.Bold + C.cPurple + " to boost yourself off platforms!"); Announce(C.Bold + C.cPurple + "Press " + C.Bold + C.cWhite + "DROP WEAPON" + C.Bold + C.cPurple + " to boost yourself off platforms!");
} }
@ -522,17 +519,17 @@ public class Gravity extends SoloGame
{ {
if (UtilMath.offset(obj.Base.getLocation().add(0, 0.5, 0), arrow.getLocation()) > obj.Size) if (UtilMath.offset(obj.Base.getLocation().add(0, 0.5, 0), arrow.getLocation()) > obj.Size)
continue; continue;
if (obj instanceof GravityPlayer) if (obj instanceof GravityPlayer)
{ {
if (obj.Ent.equals(arrow.getShooter())) if (obj.Ent.equals(arrow.getShooter()))
continue; continue;
} }
BowExplode(arrow); BowExplode(arrow);
break; break;
} }
if (!arrow.isValid() || arrow.getTicksLived() > 200) if (!arrow.isValid() || arrow.getTicksLived() > 200)
{ {
arrow.remove(); arrow.remove();
@ -565,7 +562,7 @@ public class Gravity extends SoloGame
obj.AddVelocity(UtilAlg.getTrajectory(proj, obj.Base).multiply(0.4), 10); obj.AddVelocity(UtilAlg.getTrajectory(proj, obj.Base).multiply(0.4), 10);
//obj.CustomCollide(null); //obj.CustomCollide(null);
if (obj.Ent instanceof Player) if (obj.Ent instanceof Player)
{ {
//Damage Event //Damage Event
@ -574,7 +571,7 @@ public class Gravity extends SoloGame
UtilEnt.getName(proj.getShooter()), "Sonic Blast"); UtilEnt.getName(proj.getShooter()), "Sonic Blast");
} }
obj.GrabDelay = System.currentTimeMillis(); obj.GrabDelay = System.currentTimeMillis();
obj.SetMovingBat(true); obj.SetMovingBat(true);
} }
@ -614,50 +611,50 @@ public class Gravity extends SoloGame
//Remove //Remove
proj.remove(); proj.remove();
} }
@EventHandler @EventHandler
public void PowerupUpdate(UpdateEvent event) public void PowerupUpdate(UpdateEvent event)
{ {
if (!IsLive()) if (!IsLive())
return; return;
if (event.getType() != UpdateType.SEC) if (event.getType() != UpdateType.SEC)
return; return;
if (!UtilTime.elapsed(_lastPowerup, 15000)) if (!UtilTime.elapsed(_lastPowerup, 15000))
return; return;
if (_powerup == null) if (_powerup == null)
_powerup = UtilAlg.Random(_powerups); _powerup = UtilAlg.Random(_powerups);
else else
{ {
FireworkEffect effect = FireworkEffect.builder().flicker(false).withColor(Color.GREEN).with(Type.BALL).trail(false).build(); FireworkEffect effect = FireworkEffect.builder().flicker(false).withColor(Color.GREEN).with(Type.BALL).trail(false).build();
UtilFirework.playFirework(_powerup, effect); UtilFirework.playFirework(_powerup, effect);
} }
} }
@EventHandler @EventHandler
public void PowerupCollect(UpdateEvent event) public void PowerupCollect(UpdateEvent event)
{ {
if (event.getType() != UpdateType.TICK) if (event.getType() != UpdateType.TICK)
return; return;
if (_powerup == null) if (_powerup == null)
return; return;
for (Player player : GetPlayers(true)) for (Player player : GetPlayers(true))
{ {
if (UtilMath.offset(player.getLocation(), _powerup) < 3) if (UtilMath.offset(player.getLocation(), _powerup) < 3)
{ {
UtilPlayer.message(player, F.main("Game", "You collected " + F.skill("Jetpack Fuel") + "!")); UtilPlayer.message(player, F.main("Game", "You collected " + F.skill("Jetpack Fuel") + "!"));
player.setExp(Math.min(0.9999f, player.getExp() + 0.25f)); player.setExp(Math.min(0.9999f, player.getExp() + 0.25f));
player.getWorld().playSound(player.getLocation(), Sound.DRINK, 1f, 0.5f); player.getWorld().playSound(player.getLocation(), Sound.DRINK, 1f, 0.5f);
_powerup = null; _powerup = null;
_lastPowerup = System.currentTimeMillis(); _lastPowerup = System.currentTimeMillis();
break; break;
} }
} }

View File

@ -24,7 +24,7 @@ public class KitArcher extends Kit
{ {
public KitArcher(ArcadeManager manager) public KitArcher(ArcadeManager manager)
{ {
super(manager, "Archer", KitAvailability.Free, super(manager, "Archer", KitAvailability.Green,
new String[] new String[]
{ {

View File

@ -19,7 +19,7 @@ public class KitBrute extends Kit
{ {
public KitBrute(ArcadeManager manager) public KitBrute(ArcadeManager manager)
{ {
super(manager, "Brute", KitAvailability.Free, super(manager, "Brute", KitAvailability.Blue,
new String[] new String[]
{ {

View File

@ -17,10 +17,12 @@ import mineplex.minecraft.game.core.condition.Condition.ConditionType;
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.events.PlayerPrepareTeleportEvent;
import nautilus.game.arcade.events.PlayerStateChangeEvent; import nautilus.game.arcade.events.PlayerStateChangeEvent;
import nautilus.game.arcade.game.Game; import nautilus.game.arcade.game.Game;
import nautilus.game.arcade.game.GameTeam; import nautilus.game.arcade.game.GameTeam;
import nautilus.game.arcade.game.Game.GameState; import nautilus.game.arcade.game.Game.GameState;
import nautilus.game.arcade.game.GameTeam.PlayerState;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Color; import org.bukkit.Color;
@ -498,9 +500,8 @@ public class GameManager implements Listener
public void run() public void run()
{ {
//Teleport //Teleport
if (team != null) team.SpawnTeleport(player);
team.SpawnTeleport(player);
Manager.Clear(player); Manager.Clear(player);
UtilInv.Clear(player); UtilInv.Clear(player);
@ -508,6 +509,10 @@ public class GameManager implements Listener
if (game.GetKit(player) != null) if (game.GetKit(player) != null)
game.GetKit(player).ApplyKit(player); game.GetKit(player).ApplyKit(player);
//Event
PlayerPrepareTeleportEvent playerStateEvent = new PlayerPrepareTeleportEvent(game, player);
UtilServer.getServer().getPluginManager().callEvent(playerStateEvent);
} }
}, i); }, i);
} }