Xmas + UHC changes
This commit is contained in:
parent
36a98d5e41
commit
28c928b4c3
@ -371,7 +371,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation
|
||||
{
|
||||
if (_game != null && _game.GetType() == GameType.UHC)
|
||||
{
|
||||
event.setMotd(ChatColor.RED + "UHC - Season 3");
|
||||
event.setMotd(ChatColor.RED + "UHC - Season 4");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,7 @@ import nautilus.game.arcade.game.games.barbarians.Barbarians;
|
||||
import nautilus.game.arcade.game.games.bridge.Bridge;
|
||||
import nautilus.game.arcade.game.games.castlesiege.CastleSiege;
|
||||
import nautilus.game.arcade.game.games.champions.Champions;
|
||||
import nautilus.game.arcade.game.games.christmas.Christmas;
|
||||
import nautilus.game.arcade.game.games.deathtag.DeathTag;
|
||||
import nautilus.game.arcade.game.games.dragonescape.DragonEscape;
|
||||
import nautilus.game.arcade.game.games.dragonriders.DragonRiders;
|
||||
@ -50,6 +51,7 @@ public class GameFactory
|
||||
else if (gameType == GameType.Bridge) return new Bridge(_manager);
|
||||
else if (gameType == GameType.CastleSiege) return new CastleSiege(_manager, pastTeams);
|
||||
else if (gameType == GameType.Champions) return new Champions(_manager);
|
||||
else if (gameType == GameType.Christmas) return new Christmas(_manager);
|
||||
else if (gameType == GameType.DeathTag) return new DeathTag(_manager);
|
||||
else if (gameType == GameType.Dragons) return new Dragons(_manager);
|
||||
else if (gameType == GameType.DragonEscape) return new DragonEscape(_manager);
|
||||
|
@ -8,6 +8,7 @@ public enum GameType
|
||||
Bridge("The Bridges"),
|
||||
CastleSiege("Castle Siege"),
|
||||
Champions("Champions"),
|
||||
Christmas("Christmas Caper"),
|
||||
DeathTag("Death Tag"),
|
||||
DragonEscape("Dragon Escape"),
|
||||
DragonRiders("Dragon Riders"),
|
||||
|
@ -1,5 +1,63 @@
|
||||
package nautilus.game.arcade.game.games.christmas;
|
||||
|
||||
public class Christmas {
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
import nautilus.game.arcade.ArcadeManager;
|
||||
import nautilus.game.arcade.GameType;
|
||||
import nautilus.game.arcade.game.SoloGame;
|
||||
import nautilus.game.arcade.game.games.stacker.kits.*;
|
||||
import nautilus.game.arcade.kit.Kit;
|
||||
|
||||
public class Christmas extends SoloGame
|
||||
{
|
||||
private Sleigh _sleigh;
|
||||
|
||||
public Christmas(ArcadeManager manager)
|
||||
{
|
||||
super(manager, GameType.Christmas,
|
||||
|
||||
new Kit[]
|
||||
{
|
||||
new KitDefault(manager)
|
||||
},
|
||||
|
||||
new String[]
|
||||
{
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void Update(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.TICK)
|
||||
return;
|
||||
|
||||
if (!IsLive())
|
||||
return;
|
||||
|
||||
if (_sleigh == null)
|
||||
return;
|
||||
|
||||
_sleigh.Update();
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void Test(PlayerCommandPreprocessEvent event)
|
||||
{
|
||||
if (event.getMessage().equalsIgnoreCase("/sleigh spawn"))
|
||||
{
|
||||
_sleigh = new Sleigh(this, event.getPlayer().getLocation().add(5, 0, 5));
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
if (event.getMessage().equalsIgnoreCase("/sleigh here"))
|
||||
{
|
||||
_sleigh.SetTarget(event.getPlayer().getLocation());
|
||||
event.setCancelled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,139 @@
|
||||
package nautilus.game.arcade.game.games.christmas;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
import mineplex.core.common.util.UtilMath;
|
||||
import net.minecraft.server.v1_6_R3.EntityCreature;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftCreature;
|
||||
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftFallingSand;
|
||||
import org.bukkit.entity.Chicken;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.FallingBlock;
|
||||
|
||||
public class Sleigh
|
||||
{
|
||||
public Christmas Host;
|
||||
|
||||
//This is the central entity, all other sleigh entities have location relative to this.
|
||||
private Entity CentralEntity;
|
||||
private ArrayList<SleighPart> SleighEnts;
|
||||
private ArrayList<SleighHorse> SleighHorses;
|
||||
|
||||
private Location Target;
|
||||
|
||||
public Sleigh(Christmas host, Location loc)
|
||||
{
|
||||
Host = host;
|
||||
|
||||
Host.CreatureAllowOverride = true;
|
||||
|
||||
Target = loc.clone();
|
||||
|
||||
CentralEntity = loc.getWorld().spawn(loc, Chicken.class);
|
||||
UtilEnt.Vegetate(CentralEntity);
|
||||
|
||||
SleighEnts = new ArrayList<SleighPart>();
|
||||
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), 0, -3));
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), -1, -3));
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), -2, -3));
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), 1, -3));
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), 2, -3));
|
||||
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), -2, -2));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), -1, -2));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), 0, -2));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), 1, -2));
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), 2, -2));
|
||||
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), -2, -1));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), -1, -1));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), 0, -1));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), 1, -1));
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), 2, -1));
|
||||
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), -2, 0));
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), -1, 0));
|
||||
//SleighEnts.add(new SleighEntity(loc.clone(), 0, 0));
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), 1, 0));
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), 2, 0));
|
||||
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), -2, 1));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), -1, 1));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), 0, 1));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), 1, 1));
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), 2, 1));
|
||||
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), -2, 2));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), -1, 2));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), 0, 2));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), 1, 2));
|
||||
SleighEnts.add(new SleighPart(5, 0, loc.clone(), 2, 2));
|
||||
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), -2, 3));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), -1, 3));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), 0, 3));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), 1, 3));
|
||||
SleighEnts.add(new SleighPart(126, 0, loc.clone(), 2, 3));
|
||||
|
||||
SleighHorses = new ArrayList<SleighHorse>();
|
||||
|
||||
SleighHorses.add(new SleighHorse(CentralEntity, loc.clone(), -1.5, 8));
|
||||
SleighHorses.add(new SleighHorse(CentralEntity, loc.clone(), 1.5, 8));
|
||||
|
||||
SleighHorses.add(new SleighHorse(CentralEntity, loc.clone(), -1.5, 11));
|
||||
SleighHorses.add(new SleighHorse(CentralEntity, loc.clone(), 1.5, 11));
|
||||
}
|
||||
|
||||
public void AddPresent(FallingBlock block)
|
||||
{
|
||||
block.leaveVehicle();
|
||||
|
||||
//Add to Sleigh
|
||||
}
|
||||
|
||||
public Location GetLocation()
|
||||
{
|
||||
return CentralEntity.getLocation();
|
||||
}
|
||||
|
||||
public void SetTarget(Location loc)
|
||||
{
|
||||
Target = loc;
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
if (Target == null)
|
||||
return;
|
||||
|
||||
Move(CentralEntity, Target, 1);
|
||||
|
||||
//Move Sleigh
|
||||
for (SleighPart ent : SleighEnts)
|
||||
{
|
||||
if (ent.Block != null)
|
||||
((CraftFallingSand)ent.Block).getHandle().c = 1;
|
||||
|
||||
Move(ent.Ent, CentralEntity.getLocation().add(ent.OffsetX, 0, ent.OffsetZ), 1);
|
||||
}
|
||||
|
||||
//Move Horses
|
||||
for (SleighHorse ent : SleighHorses)
|
||||
{
|
||||
Move(ent.Ent, CentralEntity.getLocation().add(ent.OffsetX, 0, ent.OffsetZ), 1.4);
|
||||
}
|
||||
}
|
||||
|
||||
public void Move(Entity ent, Location target, double speed)
|
||||
{
|
||||
if (UtilMath.offset(ent.getLocation(), target) > 0.1)
|
||||
{
|
||||
EntityCreature ec = ((CraftCreature)ent).getHandle();
|
||||
ec.getControllerMove().a(target.getX(), target.getY(), target.getZ(), speed);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package nautilus.game.arcade.game.games.christmas;
|
||||
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Horse;
|
||||
|
||||
public class SleighHorse
|
||||
{
|
||||
public Horse Ent;
|
||||
public double OffsetX;
|
||||
public double OffsetZ;
|
||||
|
||||
public SleighHorse(Entity owner, Location loc, double x, double z)
|
||||
{
|
||||
Ent = loc.getWorld().spawn(loc.add(x, 0, z), Horse.class);
|
||||
//Ent.setLeashHolder(owner);
|
||||
UtilEnt.Vegetate(Ent);
|
||||
|
||||
OffsetX = x;
|
||||
OffsetZ = z;
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package nautilus.game.arcade.game.games.christmas;
|
||||
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Chicken;
|
||||
import org.bukkit.entity.FallingBlock;
|
||||
|
||||
public class SleighPart
|
||||
{
|
||||
public Chicken Ent;
|
||||
public FallingBlock Block;
|
||||
public double OffsetX;
|
||||
public double OffsetZ;
|
||||
|
||||
public SleighPart(int id, int data, Location loc, double x, double z)
|
||||
{
|
||||
Ent = loc.getWorld().spawn(loc.add(x, 0, z), Chicken.class);
|
||||
Ent.setBaby();
|
||||
Ent.setAgeLock(true);
|
||||
|
||||
Block = loc.getWorld().spawnFallingBlock(loc.add(0, 1, 0), id, (byte)data);
|
||||
Ent.setPassenger(Block);
|
||||
|
||||
UtilEnt.Vegetate(Ent);
|
||||
|
||||
OffsetX = x;
|
||||
OffsetZ = z;
|
||||
}
|
||||
}
|
@ -100,7 +100,7 @@ public class Draw extends SoloGame
|
||||
{
|
||||
"Bird", "Volcano", "Love", "Dance", "Hair", "Glasses", "Domino", "Dice", "Computer", "Top Hat", "Beard", "Wind", "Rain", "Minecraft",
|
||||
"Push", "Fighting", "Juggle", "Clown", "Miner", "Creeper", "Ghast", "Spider", "Punch", "Roll", "River", "Desert", "Cold", "Pregnant",
|
||||
"Photo", "Quick", "Mario", "Luigi", "Bridge", "Turtle", "Door Knob", "Mineplex", "Binoculars", "Telescope", "Planet",
|
||||
"Photo", "Quick", "Mario", "Luigi", "Bridge", "Turtle", "Door Knob", "Mineplex", "Binoculars", "Telescope", "Planet", "Mountain Bike",
|
||||
"Moon", "Comet", "Flower", "Squirrel", "Horse Riding", "Chef", "Elephant", "Yoshi", "Shotgun", "Pistol", "James Bond",
|
||||
"Truck", "Helicopter", "Hot Air Balloon", "Sprout", "Yelling", "Muscles", "Skinny", "Zombie", "Lava", "Snake", "Motorbike", "Whale",
|
||||
"Boat", "Letterbox", "Window", "Lollipop", "Handcuffs", "Police", "Uppercut", "Windmill", "Eyepatch", "Campfire", "Rainbow", "Storm", "Pikachu",
|
||||
@ -285,7 +285,7 @@ public class Draw extends SoloGame
|
||||
//Points for Drawer
|
||||
AddScore(_round.Drawer, 2);
|
||||
|
||||
this.AddGems(_round.Drawer, 2, "Drawing Word", true);
|
||||
this.AddGems(_round.Drawer, 2, "Drawings Guessed", true);
|
||||
}
|
||||
|
||||
if (_round.Guessed(player))
|
||||
@ -294,9 +294,9 @@ public class Draw extends SoloGame
|
||||
Announce(C.cYellow + C.Bold + "+" + score + " " + C.cGreen + C.Bold + player.getName() + " has guessed the word!");
|
||||
|
||||
if (score == 1)
|
||||
this.AddGems(player, 1, "Guessing Word", true);
|
||||
this.AddGems(player, 1, "Words Guessed", true);
|
||||
else
|
||||
this.AddGems(player, 4, "Guessing Word First", true);
|
||||
this.AddGems(player, 4, "Words Guessed First", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -9,6 +9,7 @@ import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.Difficulty;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
@ -1109,6 +1110,29 @@ public class UHC extends TeamGame
|
||||
UtilPlayer.message(player, ArcadeFormat.Line);
|
||||
}
|
||||
}
|
||||
|
||||
public void AnnounceEndLose()
|
||||
{
|
||||
for (Player player : UtilServer.getPlayers())
|
||||
{
|
||||
player.playSound(player.getLocation(), Sound.LEVEL_UP, 2f, 1f);
|
||||
|
||||
UtilPlayer.message(player, "");
|
||||
UtilPlayer.message(player, ArcadeFormat.Line);
|
||||
|
||||
UtilPlayer.message(player, C.cYellow+ C.Bold + this.GetName());
|
||||
UtilPlayer.message(player, "");
|
||||
UtilPlayer.message(player, "");
|
||||
|
||||
UtilPlayer.message(player, ChatColor.WHITE + "§lEnder Dragon has won the game...");
|
||||
|
||||
UtilPlayer.message(player, "");
|
||||
UtilPlayer.message(player, "");
|
||||
UtilPlayer.message(player, C.cWhite + "Created and Hosted by " + C.cYellow + C.Bold + "Mineplex.com");
|
||||
|
||||
UtilPlayer.message(player, ArcadeFormat.Line);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean AdvertiseText(GameLobbyManager gameLobbyManager, int _advertiseStage)
|
||||
@ -1164,11 +1188,10 @@ public class UHC extends TeamGame
|
||||
for (GameTeam team : _rejoinTeam.values())
|
||||
teamsAlive.add(team);
|
||||
|
||||
if (teamsAlive.size() <= 1)
|
||||
if (teamsAlive.size() == 0)
|
||||
{
|
||||
//Announce
|
||||
if (teamsAlive.size() > 0)
|
||||
AnnounceEnd(teamsAlive.get(0));
|
||||
AnnounceEndLose();
|
||||
|
||||
//End
|
||||
_ended = true;
|
||||
@ -1282,4 +1305,39 @@ public class UHC extends TeamGame
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void EndUpdate(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.SEC)
|
||||
return;
|
||||
|
||||
if (!IsLive())
|
||||
return;
|
||||
|
||||
if (!_ended)
|
||||
return;
|
||||
|
||||
GameTeam endTeam = GetTeam("Post Game", false);
|
||||
|
||||
if (endTeam == null)
|
||||
{
|
||||
endTeam = new GameTeam("Post Game", ChatColor.GRAY, GetTeamList().get(0).GetSpawns());
|
||||
AddTeam(endTeam);
|
||||
}
|
||||
|
||||
for (Player player : UtilServer.getPlayers())
|
||||
{
|
||||
GameTeam team = GetTeam(player);
|
||||
|
||||
if (team != null && !endTeam.equals(team))
|
||||
{
|
||||
team.RemovePlayer(player);
|
||||
Manager.Clear(player);
|
||||
}
|
||||
|
||||
endTeam.AddPlayer(player);
|
||||
player.setGameMode(GameMode.CREATIVE);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user