Added spawn barrier
This commit is contained in:
parent
7eb148cc59
commit
e0424c78b2
@ -0,0 +1,82 @@
|
||||
package nautilus.game.arcade.game.games.quiver.data;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
|
||||
import mineplex.core.common.util.UtilAction;
|
||||
import mineplex.core.common.util.UtilAlg;
|
||||
import mineplex.core.common.util.UtilMath;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import nautilus.game.arcade.game.Game;
|
||||
import nautilus.game.arcade.game.GameTeam;
|
||||
|
||||
public class SpawnBarrier
|
||||
{
|
||||
|
||||
private Game _game;
|
||||
private GameTeam _gameTeam;
|
||||
private Set<Location> _barriers;
|
||||
|
||||
public SpawnBarrier(Game game, GameTeam gameTeam, Set<Location> barriers)
|
||||
{
|
||||
_game = game;
|
||||
_gameTeam = gameTeam;
|
||||
_barriers = barriers;
|
||||
|
||||
for (Location location : _barriers)
|
||||
{
|
||||
location.getBlock().setType(Material.AIR);
|
||||
}
|
||||
}
|
||||
|
||||
public void update()
|
||||
{
|
||||
for (Player player : _game.GetPlayers(true))
|
||||
{
|
||||
if (UtilPlayer.isSpectator(player))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if(_game.GetTeam(player).equals(_gameTeam))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
for (Location location : _gameTeam.GetSpawns())
|
||||
{
|
||||
if (UtilMath.offset(player.getLocation(), location) < 5)
|
||||
{
|
||||
_game.Manager.GetDamage().NewDamageEvent(player, null, null, DamageCause.VOID, 9001, false, true, true, _game.GetName(), "Spawn Shield");
|
||||
}
|
||||
}
|
||||
|
||||
for (Location location : _barriers)
|
||||
{
|
||||
if (UtilMath.offset(player.getLocation(), location) < 3)
|
||||
{
|
||||
UtilAction.velocity(player, UtilAlg.getTrajectory(location, player.getLocation()).normalize().setY(0.4));
|
||||
}
|
||||
|
||||
UtilParticle.PlayParticle(ParticleType.BARRIER, location.clone().add(0, 0.5, 0), 0, 0, 0, 0.1F, 1, ViewDist.SHORT, player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public GameTeam getGameTeam()
|
||||
{
|
||||
return _gameTeam;
|
||||
}
|
||||
|
||||
public Set<Location> getBlocks()
|
||||
{
|
||||
return _barriers;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user