Add support for any size team mdoe
This commit is contained in:
parent
f4de8bf351
commit
3e1b96affe
|
@ -31,17 +31,19 @@ public class CakeTeam
|
||||||
private final GameTeam _team;
|
private final GameTeam _team;
|
||||||
private final Location _edgeHologram;
|
private final Location _edgeHologram;
|
||||||
private final Location _shopHologram;
|
private final Location _shopHologram;
|
||||||
|
private final Location _chest;
|
||||||
private final Location _cake;
|
private final Location _cake;
|
||||||
private final Map<CakeTeamItem, Integer> _upgrades;
|
private final Map<CakeTeamItem, Integer> _upgrades;
|
||||||
|
|
||||||
private Hologram _cakeHologram;
|
private Hologram _cakeHologram;
|
||||||
|
|
||||||
public CakeTeam(CakeWars game, GameTeam team, Location edgeHologram, Location shopHologram)
|
public CakeTeam(CakeWars game, GameTeam team, Location edgeHologram, Location shopHologram, Location chest)
|
||||||
{
|
{
|
||||||
_game = game;
|
_game = game;
|
||||||
_team = team;
|
_team = team;
|
||||||
_edgeHologram = edgeHologram.add(0, 2, 0);
|
_edgeHologram = edgeHologram.add(0, 2, 0);
|
||||||
_shopHologram = shopHologram.add(0, 2, 0);
|
_shopHologram = shopHologram.add(0, 2, 0);
|
||||||
|
_chest = chest.getBlock().getLocation();
|
||||||
|
|
||||||
_cake = game.WorldData.GetDataLocs(team.GetName().toUpperCase()).get(0).getBlock().getLocation();
|
_cake = game.WorldData.GetDataLocs(team.GetName().toUpperCase()).get(0).getBlock().getLocation();
|
||||||
_cake.getBlock().setType(Material.CAKE_BLOCK);
|
_cake.getBlock().setType(Material.CAKE_BLOCK);
|
||||||
|
@ -81,6 +83,11 @@ public class CakeTeam
|
||||||
return _cake.getBlock().getType() == Material.CAKE_BLOCK;
|
return _cake.getBlock().getType() == Material.CAKE_BLOCK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Location getChest()
|
||||||
|
{
|
||||||
|
return _chest;
|
||||||
|
}
|
||||||
|
|
||||||
public Location getCake()
|
public Location getCake()
|
||||||
{
|
{
|
||||||
return _cake;
|
return _cake;
|
||||||
|
|
|
@ -34,7 +34,6 @@ import nautilus.game.arcade.game.games.cakewars.CakeWars;
|
||||||
import nautilus.game.arcade.game.games.cakewars.data.CakeItem;
|
import nautilus.game.arcade.game.games.cakewars.data.CakeItem;
|
||||||
import nautilus.game.arcade.game.games.cakewars.data.CakeResource;
|
import nautilus.game.arcade.game.games.cakewars.data.CakeResource;
|
||||||
import nautilus.game.arcade.game.games.cakewars.data.CakeShopItem;
|
import nautilus.game.arcade.game.games.cakewars.data.CakeShopItem;
|
||||||
import nautilus.game.arcade.game.games.cakewars.data.CakeTeam;
|
|
||||||
import nautilus.game.arcade.game.games.cakewars.ui.CakeResourcePage;
|
import nautilus.game.arcade.game.games.cakewars.ui.CakeResourcePage;
|
||||||
import nautilus.game.arcade.game.games.cakewars.ui.CakeResourceShop;
|
import nautilus.game.arcade.game.games.cakewars.ui.CakeResourceShop;
|
||||||
import nautilus.game.arcade.game.games.cakewars.ui.CakeResourceStarPage;
|
import nautilus.game.arcade.game.games.cakewars.ui.CakeResourceStarPage;
|
||||||
|
|
|
@ -26,13 +26,6 @@ import nautilus.game.arcade.game.games.cakewars.data.CakeTeamItem;
|
||||||
public class CakeSpawnerModule extends CakeModule
|
public class CakeSpawnerModule extends CakeModule
|
||||||
{
|
{
|
||||||
|
|
||||||
private static final Map<String, String> SPAWNER_CONVERTERS = ImmutableMap.<String, String>builder()
|
|
||||||
.put("RED", "PINK")
|
|
||||||
.put("BLUE", "LIGHT_BLUE")
|
|
||||||
.put("GREEN", "LIME")
|
|
||||||
.put("YELLOW", "ORANGE")
|
|
||||||
.build();
|
|
||||||
|
|
||||||
public CakeSpawnerModule(CakeWars game)
|
public CakeSpawnerModule(CakeWars game)
|
||||||
{
|
{
|
||||||
super(game);
|
super(game);
|
||||||
|
@ -76,7 +69,7 @@ public class CakeSpawnerModule extends CakeModule
|
||||||
|
|
||||||
ItemStack itemStack = resource.getItemStack().clone();
|
ItemStack itemStack = resource.getItemStack().clone();
|
||||||
itemStack.setAmount(amount);
|
itemStack.setAmount(amount);
|
||||||
Location location = _game.WorldData.GetDataLocs(SPAWNER_CONVERTERS.get(team.GetName().toUpperCase())).get(0);
|
Location location = _game.WorldData.GetCustomLocs("GEN " + (team.GetName().toUpperCase())).get(0);
|
||||||
boolean drop = true;
|
boolean drop = true;
|
||||||
List<Player> players = new ArrayList<>();
|
List<Player> players = new ArrayList<>();
|
||||||
Item item = null;
|
Item item = null;
|
||||||
|
|
|
@ -18,6 +18,8 @@ import org.bukkit.inventory.ItemStack;
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.F;
|
||||||
import mineplex.core.common.util.MapUtil;
|
import mineplex.core.common.util.MapUtil;
|
||||||
import mineplex.core.common.util.UtilAlg;
|
import mineplex.core.common.util.UtilAlg;
|
||||||
|
import mineplex.core.common.util.UtilEvent;
|
||||||
|
import mineplex.core.common.util.UtilEvent.ActionType;
|
||||||
import mineplex.core.common.util.UtilMath;
|
import mineplex.core.common.util.UtilMath;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.common.util.UtilTextMiddle;
|
import mineplex.core.common.util.UtilTextMiddle;
|
||||||
|
@ -76,6 +78,7 @@ public class CakeTeamModule extends CakeModule
|
||||||
WorldData worldData = _game.WorldData;
|
WorldData worldData = _game.WorldData;
|
||||||
List<Location> edgeHolograms = worldData.GetDataLocs("BLACK");
|
List<Location> edgeHolograms = worldData.GetDataLocs("BLACK");
|
||||||
List<Location> shopHolograms = worldData.GetDataLocs("GRAY");
|
List<Location> shopHolograms = worldData.GetDataLocs("GRAY");
|
||||||
|
List<Location> chestLocations = worldData.GetCustomLocs(String.valueOf(Material.CHEST.getId()));
|
||||||
|
|
||||||
_game.GetTeamList().forEach(team ->
|
_game.GetTeamList().forEach(team ->
|
||||||
{
|
{
|
||||||
|
@ -97,6 +100,10 @@ public class CakeTeamModule extends CakeModule
|
||||||
UtilAlg.findClosest(
|
UtilAlg.findClosest(
|
||||||
average,
|
average,
|
||||||
shopHolograms
|
shopHolograms
|
||||||
|
),
|
||||||
|
UtilAlg.findClosest(
|
||||||
|
average,
|
||||||
|
chestLocations
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -201,6 +208,37 @@ public class CakeTeamModule extends CakeModule
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void chestInteract(PlayerInteractEvent event)
|
||||||
|
{
|
||||||
|
if (!UtilEvent.isAction(event, ActionType.R_BLOCK))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
Location block = event.getClickedBlock().getLocation();
|
||||||
|
|
||||||
|
if (UtilPlayer.isSpectator(player))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GameTeam team = _game.GetTeam(player);
|
||||||
|
|
||||||
|
for (CakeTeam cakeTeam : _teams.values())
|
||||||
|
{
|
||||||
|
if (!cakeTeam.canRespawn() || !cakeTeam.getChest().equals(block) || team.equals(cakeTeam.getGameTeam()))
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
event.setCancelled(true);
|
||||||
|
player.sendMessage(F.main("Game", "You cannot open another team's chest while their Cake hasn't been eaten."));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void kitGiveItems(PlayerKitGiveEvent event)
|
public void kitGiveItems(PlayerKitGiveEvent event)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue