Push so i can pull :O
just some xmas stuff
This commit is contained in:
parent
6b33306755
commit
ac723c14bd
@ -8,7 +8,7 @@ public enum GameType
|
|||||||
Bridge("The Bridges"),
|
Bridge("The Bridges"),
|
||||||
CastleSiege("Castle Siege"),
|
CastleSiege("Castle Siege"),
|
||||||
Champions("Champions"),
|
Champions("Champions"),
|
||||||
Christmas("Christmas Caper"),
|
Christmas("Christmas Chaos"),
|
||||||
DeathTag("Death Tag"),
|
DeathTag("Death Tag"),
|
||||||
DragonEscape("Dragon Escape"),
|
DragonEscape("Dragon Escape"),
|
||||||
DragonRiders("Dragon Riders"),
|
DragonRiders("Dragon Riders"),
|
||||||
|
@ -5,33 +5,39 @@ import java.io.FileWriter;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Villager;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.bukkit.event.entity.EntityCombustEvent;
|
import org.bukkit.event.entity.EntityCombustEvent;
|
||||||
import org.bukkit.event.entity.ItemSpawnEvent;
|
import org.bukkit.event.entity.ItemSpawnEvent;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.MapUtil;
|
import mineplex.core.common.util.MapUtil;
|
||||||
import mineplex.core.common.util.UtilBlock;
|
import mineplex.core.common.util.UtilBlock;
|
||||||
import mineplex.core.common.util.UtilMath;
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.common.util.UtilServer;
|
import mineplex.core.common.util.UtilServer;
|
||||||
import mineplex.core.common.util.UtilTime;
|
import mineplex.core.common.util.UtilTime;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
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.game.GameTeam;
|
import nautilus.game.arcade.game.GameTeam;
|
||||||
import nautilus.game.arcade.game.SoloGame;
|
import nautilus.game.arcade.game.SoloGame;
|
||||||
|
import nautilus.game.arcade.game.games.christmas.kits.KitPlayer;
|
||||||
import nautilus.game.arcade.game.games.christmas.parts.*;
|
import nautilus.game.arcade.game.games.christmas.parts.*;
|
||||||
import nautilus.game.arcade.game.games.stacker.kits.*;
|
|
||||||
import nautilus.game.arcade.kit.Kit;
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
|
||||||
public class Christmas extends SoloGame
|
public class Christmas extends SoloGame
|
||||||
@ -45,6 +51,8 @@ public class Christmas extends SoloGame
|
|||||||
|
|
||||||
private ArrayList<Location> _barrier = new ArrayList<Location>();
|
private ArrayList<Location> _barrier = new ArrayList<Location>();
|
||||||
|
|
||||||
|
private ArrayList<String> _lastScoreboard = new ArrayList<String>();
|
||||||
|
|
||||||
|
|
||||||
public Christmas(ArcadeManager manager)
|
public Christmas(ArcadeManager manager)
|
||||||
{
|
{
|
||||||
@ -52,16 +60,19 @@ public class Christmas extends SoloGame
|
|||||||
|
|
||||||
new Kit[]
|
new Kit[]
|
||||||
{
|
{
|
||||||
new KitDefault(manager)
|
new KitPlayer(manager)
|
||||||
},
|
},
|
||||||
|
|
||||||
new String[]
|
new String[]
|
||||||
{
|
{
|
||||||
|
"Follow Santa Claus",
|
||||||
|
"Find the 10 Stolen Presents",
|
||||||
|
"Defeat the Thief who stole the Presents!"
|
||||||
});
|
});
|
||||||
|
|
||||||
this.BlockBreakAllow.add(4);
|
this.BlockBreakAllow.add(4);
|
||||||
this.HungerSet = 20;
|
this.HungerSet = 20;
|
||||||
|
this.WorldTimeSet = 2000;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -118,10 +129,9 @@ public class Christmas extends SoloGame
|
|||||||
for (Location loc : WorldData.GetCustomLocs("129"))
|
for (Location loc : WorldData.GetCustomLocs("129"))
|
||||||
{
|
{
|
||||||
_barrier.add(loc.getBlock().getLocation());
|
_barrier.add(loc.getBlock().getLocation());
|
||||||
MapUtil.QuickChangeBlockAt(loc, 20, (byte)0);
|
MapUtil.QuickChangeBlockAt(loc, 65, (byte)3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Parts
|
//Parts
|
||||||
_parts.add(new Part1(this, _sleighWaypoints.remove(0), new Location[] {_presents.remove(0), _presents.remove(0)},
|
_parts.add(new Part1(this, _sleighWaypoints.remove(0), new Location[] {_presents.remove(0), _presents.remove(0)},
|
||||||
WorldData.GetDataLocs("BLACK"),
|
WorldData.GetDataLocs("BLACK"),
|
||||||
@ -136,16 +146,19 @@ public class Christmas extends SoloGame
|
|||||||
WorldData.GetCustomLocs("48")));
|
WorldData.GetCustomLocs("48")));
|
||||||
|
|
||||||
_parts.add(new Part3(this, _sleighWaypoints.remove(0), new Location[] {_presents.remove(0), _presents.remove(0)},
|
_parts.add(new Part3(this, _sleighWaypoints.remove(0), new Location[] {_presents.remove(0), _presents.remove(0)},
|
||||||
WorldData.GetDataLocs("SILVER"),
|
|
||||||
WorldData.GetDataLocs("GRAY"),
|
WorldData.GetDataLocs("GRAY"),
|
||||||
|
WorldData.GetDataLocs("SILVER"),
|
||||||
WorldData.GetDataLocs("WHITE"),
|
WorldData.GetDataLocs("WHITE"),
|
||||||
WorldData.GetCustomLocs("113")));
|
WorldData.GetCustomLocs("121")));
|
||||||
|
|
||||||
_parts.add(new Part4(this, _sleighWaypoints.remove(0), new Location[] {_presents.remove(0), _presents.remove(0)}));
|
_parts.add(new Part4(this, _sleighWaypoints.remove(0), new Location[] {_presents.remove(0), _presents.remove(0)},
|
||||||
|
WorldData.GetCustomLocs("56"),
|
||||||
|
WorldData.GetDataLocs("MAGENTA"),
|
||||||
|
WorldData.GetCustomLocs("22"),
|
||||||
|
WorldData.GetCustomLocs("45"),
|
||||||
|
_sleighWaypoints.get(0)));
|
||||||
|
|
||||||
_parts.add(new Part5(this, _sleighWaypoints.remove(0), new Location[] {_presents.remove(0), _presents.remove(0)}));
|
_parts.add(new Part5(this, _sleighWaypoints.remove(0), new Location[] {_presents.remove(0), _presents.remove(0)},
|
||||||
|
|
||||||
_parts.add(new Part6(this, _sleighWaypoints.remove(0), new Location[] {_presents.remove(0), _presents.remove(0)},
|
|
||||||
WorldData.GetCustomLocs("14"),
|
WorldData.GetCustomLocs("14"),
|
||||||
WorldData.GetCustomLocs("15"),
|
WorldData.GetCustomLocs("15"),
|
||||||
WorldData.GetCustomLocs("16"),
|
WorldData.GetCustomLocs("16"),
|
||||||
@ -199,10 +212,35 @@ public class Christmas extends SoloGame
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void SleighSpawn(GameStateChangeEvent event)
|
public void SleighSpawn(GameStateChangeEvent event)
|
||||||
{
|
{
|
||||||
if (event.GetState() != GameState.Live)
|
if (event.GetState() != GameState.Prepare)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
final Christmas christmas = this;
|
||||||
|
|
||||||
|
UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.GetPlugin(), new Runnable()
|
||||||
|
{
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
GetSleigh();
|
GetSleigh();
|
||||||
|
|
||||||
|
Location loc = christmas.GetSleigh().GetLocation();
|
||||||
|
|
||||||
|
christmas.CreatureAllowOverride = true;
|
||||||
|
for (int i=0 ; i<20 ; i++)
|
||||||
|
{
|
||||||
|
Location elfLoc = UtilBlock.getHighest(loc.getWorld(), (int)(loc.getX() + 20 - Math.random()*40), (int)(loc.getZ() + 20 - Math.random()*40)).getLocation().add(0.5, 0.5, 0.5);
|
||||||
|
|
||||||
|
Villager elf = elfLoc.getWorld().spawn(elfLoc, Villager.class);
|
||||||
|
|
||||||
|
elf.setBaby();
|
||||||
|
elf.setAgeLock(true);
|
||||||
|
|
||||||
|
elf.setCustomName("Elf");
|
||||||
|
|
||||||
|
}
|
||||||
|
christmas.CreatureAllowOverride = false;
|
||||||
|
}
|
||||||
|
}, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -257,6 +295,16 @@ public class Christmas extends SoloGame
|
|||||||
Announce(C.cRed + C.Bold + "Santa: " + ChatColor.RESET + string);
|
Announce(C.cRed + C.Bold + "Santa: " + ChatColor.RESET + string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void BossSay(String name, String string)
|
||||||
|
{
|
||||||
|
for (Player player : UtilServer.getPlayers())
|
||||||
|
{
|
||||||
|
player.playSound(player.getLocation(), Sound.ENDERDRAGON_GROWL, 1f, 1f);
|
||||||
|
|
||||||
|
UtilPlayer.message(player, C.cGreen + C.Bold + name + ": " + ChatColor.RESET + string);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void Combust(EntityCombustEvent event)
|
public void Combust(EntityCombustEvent event)
|
||||||
{
|
{
|
||||||
@ -279,7 +327,7 @@ public class Christmas extends SoloGame
|
|||||||
{
|
{
|
||||||
for (Player player : GetPlayers(false))
|
for (Player player : GetPlayers(false))
|
||||||
{
|
{
|
||||||
Manager.GetDonation().PurchaseUnknownSalesPackage(null, player.getName(), "Frosty Pumpkin Kings Head", 0, true);
|
Manager.GetDonation().PurchaseUnknownSalesPackage(null, player.getName(), "Snowmans Head", 0, true);
|
||||||
Manager.GetGame().AddGems(player, 30, "Slaying the Pumpkin King", false);
|
Manager.GetGame().AddGems(player, 30, "Slaying the Pumpkin King", false);
|
||||||
Manager.GetGame().AddGems(player, 10, "Participation", false);
|
Manager.GetGame().AddGems(player, 10, "Participation", false);
|
||||||
}
|
}
|
||||||
@ -331,7 +379,7 @@ public class Christmas extends SoloGame
|
|||||||
}
|
}
|
||||||
|
|
||||||
SetState(GameState.End);
|
SetState(GameState.End);
|
||||||
SetCustomWinLine("You earned Frosty Pumpkin Kings Head!");
|
SetCustomWinLine("You earned Snowmans Head!");
|
||||||
AnnounceEnd(this.GetTeamList().get(0));
|
AnnounceEnd(this.GetTeamList().get(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -343,9 +391,36 @@ public class Christmas extends SoloGame
|
|||||||
}
|
}
|
||||||
|
|
||||||
SetState(GameState.End);
|
SetState(GameState.End);
|
||||||
SetCustomWinLine("You lost...");
|
SetCustomWinLine("You all died...");
|
||||||
AnnounceEnd(this.GetTeamList().get(1));
|
AnnounceEnd(this.GetTeamList().get(1));
|
||||||
}
|
}
|
||||||
|
else if (UtilTime.elapsed(GetStateTime(), 1200000))
|
||||||
|
{
|
||||||
|
for (Player player : GetPlayers(false))
|
||||||
|
{
|
||||||
|
Manager.GetGame().AddGems(player, 10, "Participation", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SetState(GameState.End);
|
||||||
|
SetCustomWinLine("You did not save Christmas in time.");
|
||||||
|
AnnounceEnd(this.GetTeamList().get(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void End()
|
||||||
|
{
|
||||||
|
if (!IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (Player player : GetPlayers(false))
|
||||||
|
{
|
||||||
|
Manager.GetGame().AddGems(player, 10, "Participation", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
SetState(GameState.End);
|
||||||
|
SetCustomWinLine("Santa Claus was killed by the Giant!");
|
||||||
|
AnnounceEnd(this.GetTeamList().get(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -372,7 +447,7 @@ public class Christmas extends SoloGame
|
|||||||
|
|
||||||
//XXX REMOVE
|
//XXX REMOVE
|
||||||
for (Player player : UtilServer.getPlayers())
|
for (Player player : UtilServer.getPlayers())
|
||||||
player.teleport(_part.GetSleighWaypoint());
|
player.teleport(_part.GetSleighWaypoint().clone().add(0, 0, 10));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -385,4 +460,116 @@ public class Christmas extends SoloGame
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
|
public void DamageCancel(CustomDamageEvent event)
|
||||||
|
{
|
||||||
|
if (_sleigh != null)
|
||||||
|
GetSleigh().Damage(event);
|
||||||
|
|
||||||
|
if (event.GetCause() == DamageCause.FALL)
|
||||||
|
if (event.GetDamageeEntity().getLocation().getY() > 30)
|
||||||
|
{
|
||||||
|
event.SetCancelled("Fall Cancel");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
event.AddMod("Christmas", "Fall Damage", 20, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@EventHandler
|
||||||
|
public void ScoreboardUpdate(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.FAST)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
|
//Wipe Last
|
||||||
|
for (String string : _lastScoreboard)
|
||||||
|
GetScoreboard().resetScores(Bukkit.getOfflinePlayer(string));
|
||||||
|
_lastScoreboard.clear();
|
||||||
|
|
||||||
|
int index = 15;
|
||||||
|
|
||||||
|
//Rounds
|
||||||
|
String out = " ";
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
|
||||||
|
out = C.cWhite + "Challenge:";
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
|
||||||
|
out = C.cYellow + (5 - _parts.size()) + " of " + 5;
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
|
||||||
|
//Presents
|
||||||
|
out = " ";
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
|
||||||
|
out = C.cWhite + "Presents Found:";
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
|
||||||
|
out = C.cYellow + GetSleigh().GetPresents().size() + " of " + 10;
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
|
||||||
|
//Players
|
||||||
|
out = " ";
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
|
||||||
|
out = C.cWhite + "Players Alive:";
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
|
||||||
|
out = C.cYellow + GetPlayers(true).size();
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
|
||||||
|
//Time
|
||||||
|
out = " ";
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
|
||||||
|
out = C.cWhite + "Time Left:";
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
|
||||||
|
out = C.cYellow + UtilTime.MakeStr(1200000 - (System.currentTimeMillis() - GetStateTime()));
|
||||||
|
if (out.length() >= 16)
|
||||||
|
out = out.substring(0, 15);
|
||||||
|
_lastScoreboard.add(out);
|
||||||
|
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(out)).setScore(index--);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,19 +2,25 @@ package nautilus.game.arcade.game.games.christmas;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.UtilAction;
|
import mineplex.core.common.util.UtilAction;
|
||||||
import mineplex.core.common.util.UtilAlg;
|
import mineplex.core.common.util.UtilAlg;
|
||||||
import mineplex.core.common.util.UtilEnt;
|
import mineplex.core.common.util.UtilEnt;
|
||||||
import mineplex.core.common.util.UtilFirework;
|
import mineplex.core.common.util.UtilFirework;
|
||||||
import mineplex.core.common.util.UtilMath;
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.recharge.Recharge;
|
import mineplex.core.recharge.Recharge;
|
||||||
|
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
||||||
|
import nautilus.game.arcade.game.games.christmas.parts.Part;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.Effect;
|
import org.bukkit.Effect;
|
||||||
import org.bukkit.FireworkEffect;
|
import org.bukkit.FireworkEffect;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.FireworkEffect.Type;
|
import org.bukkit.FireworkEffect.Type;
|
||||||
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.entity.Chicken;
|
import org.bukkit.entity.Chicken;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.FallingBlock;
|
import org.bukkit.entity.FallingBlock;
|
||||||
@ -121,9 +127,9 @@ public class Sleigh
|
|||||||
SleighEnts.add(new SleighPart(4, 44, 7, loc.clone(), 2, 0));
|
SleighEnts.add(new SleighPart(4, 44, 7, loc.clone(), 2, 0));
|
||||||
|
|
||||||
//Santa
|
//Santa
|
||||||
SleighPart part = new SleighPart(3, 0, 0, loc.clone(), 0, 1);
|
SleighPart santa = new SleighPart(3, 0, 0, loc.clone(), 0, 1);
|
||||||
part.AddSanta();
|
santa.AddSanta();
|
||||||
SleighEnts.add(part);
|
SleighEnts.add(santa);
|
||||||
|
|
||||||
SleighHorses = new ArrayList<SleighHorse>();
|
SleighHorses = new ArrayList<SleighHorse>();
|
||||||
|
|
||||||
@ -132,6 +138,11 @@ public class Sleigh
|
|||||||
|
|
||||||
SleighHorses.add(new SleighHorse(CentralEntity, loc.clone(), -1.5, 11));
|
SleighHorses.add(new SleighHorse(CentralEntity, loc.clone(), -1.5, 11));
|
||||||
SleighHorses.add(new SleighHorse(CentralEntity, loc.clone(), 1.5, 11));
|
SleighHorses.add(new SleighHorse(CentralEntity, loc.clone(), 1.5, 11));
|
||||||
|
|
||||||
|
for (SleighHorse horse : SleighHorses)
|
||||||
|
{
|
||||||
|
UtilEnt.Lhorse.Ent.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddPresent(FallingBlock block)
|
public void AddPresent(FallingBlock block)
|
||||||
@ -204,6 +215,15 @@ public class Sleigh
|
|||||||
UtilAction.velocity(player, UtilAlg.getTrajectory2d(CentralEntity, player), 0.4, true, 0.2, 0, 0, true);
|
UtilAction.velocity(player, UtilAlg.getTrajectory2d(CentralEntity, player), 0.4, true, 0.2, 0, 0, true);
|
||||||
Recharge.Instance.useForce(player, "Sleigh Bump", 400);
|
Recharge.Instance.useForce(player, "Sleigh Bump", 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (player.getLocation().getZ() < CentralEntity.getLocation().getZ() - 24)
|
||||||
|
{
|
||||||
|
player.damage(1);
|
||||||
|
UtilPlayer.message(player, C.cRed + C.Bold + "Santa: " + ChatColor.RESET + "Careful " + player.getName() + "! Keep up with my Sleigh!");
|
||||||
|
|
||||||
|
UtilAction.velocity(player, UtilAlg.getTrajectory2d(player, CentralEntity), 0.6, true, 0.2, 0, 0, true);
|
||||||
|
Recharge.Instance.useForce(player, "Sleigh Bump", 400);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,11 +236,44 @@ public class Sleigh
|
|||||||
{
|
{
|
||||||
PresentsCollected.add(loc);
|
PresentsCollected.add(loc);
|
||||||
loc.getBlock().setType(Material.AIR);
|
loc.getBlock().setType(Material.AIR);
|
||||||
UtilFirework.launchFirework(loc.clone().add(0.5, 0.5, 0.5), FireworkEffect.builder().flicker(false).withColor(Color.YELLOW).with(Type.BALL).trail(true).build(), new Vector(0,1,0), 1);
|
loc.getBlock().getRelative(BlockFace.DOWN).setType(Material.GLASS);
|
||||||
|
UtilFirework.launchFirework(loc.clone().add(0.5, 0.5, 0.5), FireworkEffect.builder().flicker(false).withColor(Color.YELLOW).with(Type.BALL).trail(true).build(), new Vector(0,1,0), 0);
|
||||||
|
|
||||||
SleighPart part = PresentSlots.remove(0);
|
SleighPart part = PresentSlots.remove(0);
|
||||||
if (part == null) return;
|
if (part == null) return;
|
||||||
|
|
||||||
part.SetPresent();
|
part.SetPresent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArrayList<Location> GetPresents()
|
||||||
|
{
|
||||||
|
return PresentsCollected;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Damage(CustomDamageEvent event)
|
||||||
|
{
|
||||||
|
if (event.GetDamageeEntity().equals(CentralEntity))
|
||||||
|
{
|
||||||
|
event.SetCancelled("Sleigh Damage");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (SleighPart part : SleighEnts)
|
||||||
|
{
|
||||||
|
if (part.HasEntity(event.GetDamageeEntity()))
|
||||||
|
{
|
||||||
|
event.SetCancelled("Sleigh Damage");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (SleighHorse part : SleighHorses)
|
||||||
|
{
|
||||||
|
if (part.HasEntity(event.GetDamageeEntity()))
|
||||||
|
{
|
||||||
|
event.SetCancelled("Sleigh Damage");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import mineplex.core.common.util.UtilEnt;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Chicken;
|
import org.bukkit.entity.Chicken;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Horse;
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
|
||||||
public class SleighHorse
|
public class SleighHorse
|
||||||
{
|
{
|
||||||
@ -23,4 +23,12 @@ public class SleighHorse
|
|||||||
OffsetX = x;
|
OffsetX = x;
|
||||||
OffsetZ = z;
|
OffsetZ = z;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean HasEntity(LivingEntity ent)
|
||||||
|
{
|
||||||
|
if (Ent.equals(ent))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,14 +3,20 @@ package nautilus.game.arcade.game.games.christmas;
|
|||||||
import mineplex.core.common.util.C;
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.UtilEnt;
|
import mineplex.core.common.util.UtilEnt;
|
||||||
import mineplex.core.common.util.UtilMath;
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.common.util.UtilServer;
|
||||||
|
import net.minecraft.server.v1_6_R3.Packet40EntityMetadata;
|
||||||
|
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftEntity;
|
||||||
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftFallingSand;
|
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftFallingSand;
|
||||||
|
import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.Chicken;
|
import org.bukkit.entity.Chicken;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.FallingBlock;
|
import org.bukkit.entity.FallingBlock;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Skeleton;
|
import org.bukkit.entity.Skeleton;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||||
@ -45,6 +51,12 @@ public class SleighPart
|
|||||||
top = newTop;
|
top = newTop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Invis
|
||||||
|
((CraftEntity)Ent).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 32));
|
||||||
|
|
||||||
|
for (Player player : UtilServer.getPlayers())
|
||||||
|
((CraftPlayer)player).getHandle().playerConnection.sendPacket(new Packet40EntityMetadata(Ent.getEntityId(), ((CraftEntity)Ent).getHandle().getDataWatcher(), true));
|
||||||
|
|
||||||
//Block
|
//Block
|
||||||
if (id != 0)
|
if (id != 0)
|
||||||
{
|
{
|
||||||
@ -109,7 +121,7 @@ public class SleighPart
|
|||||||
|
|
||||||
ItemStack legs = new ItemStack(Material.LEATHER_LEGGINGS);
|
ItemStack legs = new ItemStack(Material.LEATHER_LEGGINGS);
|
||||||
meta = (LeatherArmorMeta)legs.getItemMeta();
|
meta = (LeatherArmorMeta)legs.getItemMeta();
|
||||||
meta.setColor(Color.WHITE);
|
meta.setColor(Color.RED);
|
||||||
legs.setItemMeta(meta);
|
legs.setItemMeta(meta);
|
||||||
skel.getEquipment().setLeggings(legs);
|
skel.getEquipment().setLeggings(legs);
|
||||||
|
|
||||||
@ -128,4 +140,22 @@ public class SleighPart
|
|||||||
|
|
||||||
top.setPassenger(skel);
|
top.setPassenger(skel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean HasEntity(LivingEntity ent)
|
||||||
|
{
|
||||||
|
if (Ent.equals(ent))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
Entity top = Ent;
|
||||||
|
|
||||||
|
while (top.getPassenger() != null)
|
||||||
|
{
|
||||||
|
top = top.getPassenger();
|
||||||
|
|
||||||
|
if (top.equals(ent))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user