Merge branch 'master' of ssh://dev1.mineplex.com:7999/min/master
This commit is contained in:
commit
ae00d3df18
@ -23,6 +23,7 @@ import org.bukkit.event.EventHandler;
|
|||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
import org.bukkit.event.player.AsyncPlayerChatEvent;
|
||||||
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
|
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
|
||||||
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result;
|
import org.bukkit.event.player.AsyncPlayerPreLoginEvent.Result;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
@ -192,6 +193,18 @@ public class Punish extends MiniPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
|
public void PunishChatEvent(PlayerCommandPreprocessEvent event)
|
||||||
|
{
|
||||||
|
PunishClient client = GetClient(event.getPlayer().getName());
|
||||||
|
|
||||||
|
if (client != null && client.IsMuted())
|
||||||
|
{
|
||||||
|
event.getPlayer().sendMessage(F.main(GetName(), "Shh, you're muted for " + C.cGreen + UtilTime.convertString(client.GetPunishment(PunishmentSentence.Mute).GetRemaining(), 1, TimeUnit.FIT) + "."));
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void Help(Player caller)
|
public void Help(Player caller)
|
||||||
{
|
{
|
||||||
UtilPlayer.message(caller, F.main(_moduleName, "Commands List:"));
|
UtilPlayer.message(caller, F.main(_moduleName, "Commands List:"));
|
||||||
|
@ -42,10 +42,13 @@ public class TextCreator extends MiniPlugin
|
|||||||
|
|
||||||
arcadeGames = new String[]
|
arcadeGames = new String[]
|
||||||
{
|
{
|
||||||
|
"A BARBARIANS LIFE",
|
||||||
"ONE IN THE QUIVER",
|
"ONE IN THE QUIVER",
|
||||||
"ZOMBIE SURVIVAL",
|
"DRAGON ESCAPE",
|
||||||
|
"MILK THE COW",
|
||||||
"SUPER SPLEEF",
|
"SUPER SPLEEF",
|
||||||
"TURF FORTS",
|
"TURF FORTS",
|
||||||
|
"DEATH TAG",
|
||||||
"DRAGONS",
|
"DRAGONS",
|
||||||
"RUNNER"
|
"RUNNER"
|
||||||
};
|
};
|
||||||
|
@ -20,8 +20,6 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
|
||||||
import org.bukkit.event.player.PlayerJoinEvent;
|
import org.bukkit.event.player.PlayerJoinEvent;
|
||||||
import org.bukkit.event.player.PlayerLoginEvent;
|
import org.bukkit.event.player.PlayerLoginEvent;
|
||||||
import org.bukkit.event.player.PlayerQuitEvent;
|
import org.bukkit.event.player.PlayerQuitEvent;
|
||||||
@ -435,22 +433,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOWEST)
|
|
||||||
public void HubClockInteract(PlayerInteractEvent event)
|
|
||||||
{
|
|
||||||
Player player = event.getPlayer();
|
|
||||||
|
|
||||||
if (player.getItemInHand() == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (player.getItemInHand().getType() != Material.WATCH)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (_game != null && _game.IsAlive(player))
|
|
||||||
return;
|
|
||||||
|
|
||||||
_portal.SendPlayerToServer(player, "Lobby");
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean IsAlive(Player player)
|
public boolean IsAlive(Player player)
|
||||||
{
|
{
|
||||||
|
@ -48,7 +48,7 @@ public class GameFactory
|
|||||||
else if (gameType == GameType.SnowFight) return new SnowFight(_manager);
|
else if (gameType == GameType.SnowFight) return new SnowFight(_manager);
|
||||||
else if (gameType == GameType.Smash) return new SuperSmash(_manager);
|
else if (gameType == GameType.Smash) return new SuperSmash(_manager);
|
||||||
else if (gameType == GameType.Spleef) return new Spleef(_manager);
|
else if (gameType == GameType.Spleef) return new Spleef(_manager);
|
||||||
else if (gameType == GameType.TurfForts) return new TurfForts(_manager);
|
else if (gameType == GameType.TurfWars) return new TurfForts(_manager);
|
||||||
else if (gameType == GameType.UHC) return new UHC(_manager);
|
else if (gameType == GameType.UHC) return new UHC(_manager);
|
||||||
else if (gameType == GameType.ZombieSurvival) return new ZombieSurvival(_manager);
|
else if (gameType == GameType.ZombieSurvival) return new ZombieSurvival(_manager);
|
||||||
else return null;
|
else return null;
|
||||||
|
@ -11,6 +11,7 @@ public enum GameType
|
|||||||
Dragons("Dragons"),
|
Dragons("Dragons"),
|
||||||
Evolution("Evolution"),
|
Evolution("Evolution"),
|
||||||
Horse("Horseback"),
|
Horse("Horseback"),
|
||||||
|
HungerGames("Survival Games"),
|
||||||
MineWare("MineWare"),
|
MineWare("MineWare"),
|
||||||
MilkCow("Milk the Cow"),
|
MilkCow("Milk the Cow"),
|
||||||
Quiver("One in the Quiver"),
|
Quiver("One in the Quiver"),
|
||||||
@ -18,7 +19,7 @@ public enum GameType
|
|||||||
Smash("Super Smash Mobs"),
|
Smash("Super Smash Mobs"),
|
||||||
SnowFight("Snow Fight"),
|
SnowFight("Snow Fight"),
|
||||||
Spleef("Super Spleef"),
|
Spleef("Super Spleef"),
|
||||||
TurfForts("Turf Forts"),
|
TurfWars("Turf Wars"),
|
||||||
UHC("Ultra Hardcore"),
|
UHC("Ultra Hardcore"),
|
||||||
ZombieSurvival("Zombie Survival");
|
ZombieSurvival("Zombie Survival");
|
||||||
|
|
||||||
|
@ -163,6 +163,8 @@ public abstract class Game implements Listener
|
|||||||
public boolean CompassEnabled = false;
|
public boolean CompassEnabled = false;
|
||||||
public boolean SoupEnabled = true;
|
public boolean SoupEnabled = true;
|
||||||
|
|
||||||
|
public double GemMultiplier = 1;
|
||||||
|
|
||||||
//Gameplay Data
|
//Gameplay Data
|
||||||
public HashMap<Location, Player> PrivateBlockMap = new HashMap<Location, Player>();
|
public HashMap<Location, Player> PrivateBlockMap = new HashMap<Location, Player>();
|
||||||
public HashMap<String, Integer> PrivateBlockCount = new HashMap<String, Integer>();
|
public HashMap<String, Integer> PrivateBlockCount = new HashMap<String, Integer>();
|
||||||
|
@ -1,19 +1,17 @@
|
|||||||
package nautilus.game.arcade.game.games.barbarians;
|
package nautilus.game.arcade.game.games.barbarians;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.block.BlockDamageEvent;
|
import org.bukkit.event.block.BlockDamageEvent;
|
||||||
import org.bukkit.event.entity.ItemSpawnEvent;
|
import org.bukkit.event.entity.ItemSpawnEvent;
|
||||||
import org.bukkit.event.entity.PlayerDeathEvent;
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||||
|
|
||||||
import mineplex.core.common.util.UtilServer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
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.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.barbarians.kits.*;
|
import nautilus.game.arcade.game.games.barbarians.kits.*;
|
||||||
@ -21,9 +19,6 @@ import nautilus.game.arcade.kit.Kit;
|
|||||||
|
|
||||||
public class Barbarians extends SoloGame
|
public class Barbarians extends SoloGame
|
||||||
{
|
{
|
||||||
private GameTeam _barbs;
|
|
||||||
private GameTeam _pigs;
|
|
||||||
|
|
||||||
public Barbarians(ArcadeManager manager)
|
public Barbarians(ArcadeManager manager)
|
||||||
{
|
{
|
||||||
super(manager, GameType.Barbarians,
|
super(manager, GameType.Barbarians,
|
||||||
@ -33,18 +28,16 @@ public class Barbarians extends SoloGame
|
|||||||
new KitBrute(manager),
|
new KitBrute(manager),
|
||||||
new KitArcher(manager),
|
new KitArcher(manager),
|
||||||
new KitBomber(manager),
|
new KitBomber(manager),
|
||||||
new KitPig(manager)
|
|
||||||
},
|
},
|
||||||
|
|
||||||
new String[]
|
new String[]
|
||||||
{
|
{
|
||||||
"Free for all fight to the death!",
|
"Free for all fight to the death!",
|
||||||
"Wooden blocks are breakable.",
|
"Wooden blocks are breakable.",
|
||||||
|
"Attack people to restore hunger!",
|
||||||
"Last player alive wins!"
|
"Last player alive wins!"
|
||||||
});
|
});
|
||||||
|
|
||||||
this.DeathOut = false;
|
|
||||||
this.HungerSet = 20;
|
|
||||||
this.DamageTeamSelf = true;
|
this.DamageTeamSelf = true;
|
||||||
this.CompassEnabled = true;
|
this.CompassEnabled = true;
|
||||||
|
|
||||||
@ -68,57 +61,6 @@ public class Barbarians extends SoloGame
|
|||||||
this.BlockBreakAllow.add(136);
|
this.BlockBreakAllow.add(136);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@EventHandler
|
|
||||||
public void CustomTeamGeneration(GameStateChangeEvent event)
|
|
||||||
{
|
|
||||||
if (event.GetState() != GameState.Recruit)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_barbs = this.GetTeamList().get(0);
|
|
||||||
_barbs.SetName("Barbarians");
|
|
||||||
|
|
||||||
//Undead Team
|
|
||||||
_pigs = new GameTeam("Dead", ChatColor.RED, _barbs.GetSpawns());
|
|
||||||
GetTeamList().add(_pigs);
|
|
||||||
_pigs.SetVisible(false);
|
|
||||||
|
|
||||||
RestrictKits();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public GameTeam ChooseTeam(Player player)
|
|
||||||
{
|
|
||||||
return _barbs;
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void PlayerDeath(PlayerDeathEvent event)
|
|
||||||
{
|
|
||||||
if (_barbs.HasPlayer(event.getEntity()))
|
|
||||||
SetChaser(event.getEntity());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetChaser(Player player)
|
|
||||||
{
|
|
||||||
if (!GetPlaces().contains(player))
|
|
||||||
GetPlaces().add(0, player);
|
|
||||||
|
|
||||||
SetPlayerTeam(player, _pigs);
|
|
||||||
|
|
||||||
//Kit
|
|
||||||
Kit newKit = GetKits()[3];
|
|
||||||
|
|
||||||
SetKit(player, newKit, false);
|
|
||||||
newKit.ApplyKit(player);
|
|
||||||
|
|
||||||
//Refresh
|
|
||||||
for (Player other : UtilServer.getPlayers())
|
|
||||||
{
|
|
||||||
other.hidePlayer(player);
|
|
||||||
other.showPlayer(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void EndCheck()
|
public void EndCheck()
|
||||||
@ -126,9 +68,9 @@ public class Barbarians extends SoloGame
|
|||||||
if (!IsLive())
|
if (!IsLive())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (_barbs.GetPlayers(true).size() <= 1)
|
if (GetPlayers(true).size() <= 1)
|
||||||
{
|
{
|
||||||
if (_barbs.GetPlayers(true).size() == 1)
|
if (GetPlayers(true).size() == 1)
|
||||||
GetPlaces().add(0, GetPlayers(true).get(0));
|
GetPlaces().add(0, GetPlayers(true).get(0));
|
||||||
|
|
||||||
if (GetPlaces().size() >= 1)
|
if (GetPlaces().size() >= 1)
|
||||||
@ -149,26 +91,6 @@ public class Barbarians extends SoloGame
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@EventHandler
|
|
||||||
public void ScoreboardUpdate(UpdateEvent event)
|
|
||||||
{
|
|
||||||
if (event.getType() != UpdateType.FAST)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (_barbs == null || _pigs == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(_barbs.GetColor() + _barbs.GetName())).setScore(_barbs.GetPlayers(true).size());
|
|
||||||
GetObjectiveSide().getScore(Bukkit.getOfflinePlayer(_pigs.GetColor() + _pigs.GetName())).setScore(_pigs.GetPlayers(true).size());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean CanJoinTeam(GameTeam team)
|
|
||||||
{
|
|
||||||
return (team.GetColor() != ChatColor.RED);
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void BlockDamage(BlockDamageEvent event)
|
public void BlockDamage(BlockDamageEvent event)
|
||||||
{
|
{
|
||||||
@ -181,14 +103,33 @@ public class Barbarians extends SoloGame
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@EventHandler
|
||||||
public double GetKillsGems(Player killer, Player killed, boolean assist)
|
public void Hunger(UpdateEvent event)
|
||||||
{
|
{
|
||||||
if (GetTeam(killed).equals(_barbs))
|
if (event.getType() != UpdateType.SLOW)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!IsLive())
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (Player player : GetPlayers(true))
|
||||||
{
|
{
|
||||||
return 4;
|
if (player.getFoodLevel() <= 0)
|
||||||
|
{
|
||||||
|
Manager.GetDamage().NewDamageEvent(player, null, null,
|
||||||
|
DamageCause.STARVATION, 1, false, true, false,
|
||||||
|
"Starvation", GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
UtilPlayer.hunger(player, -2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void HungerRestore(CustomDamageEvent event)
|
||||||
|
{
|
||||||
|
Player damager = event.GetDamagerPlayer(true);
|
||||||
|
if (damager != null)
|
||||||
|
UtilPlayer.hunger(damager, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ public class KitBomber extends Kit
|
|||||||
|
|
||||||
new Perk[]
|
new Perk[]
|
||||||
{
|
{
|
||||||
new PerkBomber(8, -1, 30),
|
new PerkBomber(8, 2, -1),
|
||||||
new PerkLeap("Leap", 1, 1, 8000)
|
new PerkLeap("Leap", 1, 1, 8000)
|
||||||
},
|
},
|
||||||
EntityType.ZOMBIE,
|
EntityType.ZOMBIE,
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
package nautilus.game.arcade.game.games.barbarians.kits;
|
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.EntityType;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
|
|
||||||
import mineplex.core.common.util.C;
|
|
||||||
import mineplex.core.disguise.disguises.DisguisePig;
|
|
||||||
import nautilus.game.arcade.ArcadeManager;
|
|
||||||
import nautilus.game.arcade.kit.KitAvailability;
|
|
||||||
import nautilus.game.arcade.kit.Perk;
|
|
||||||
import nautilus.game.arcade.kit.SmashKit;
|
|
||||||
import nautilus.game.arcade.kit.perks.PerkDamageSet;
|
|
||||||
|
|
||||||
public class KitPig extends SmashKit
|
|
||||||
{
|
|
||||||
public KitPig(ArcadeManager manager)
|
|
||||||
{
|
|
||||||
super(manager, "Pig", KitAvailability.Hide,
|
|
||||||
|
|
||||||
new String[]
|
|
||||||
{
|
|
||||||
},
|
|
||||||
|
|
||||||
new Perk[]
|
|
||||||
{
|
|
||||||
new PerkDamageSet(0),
|
|
||||||
},
|
|
||||||
EntityType.PIG,
|
|
||||||
new ItemStack(Material.PORK));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void GiveItems(Player player)
|
|
||||||
{
|
|
||||||
//Disguise
|
|
||||||
DisguisePig disguise = new DisguisePig(player);
|
|
||||||
disguise.SetName(C.cGray + player.getName());
|
|
||||||
disguise.SetCustomNameVisible(true);
|
|
||||||
Manager.GetDisguise().disguise(disguise);
|
|
||||||
}
|
|
||||||
}
|
|
@ -136,6 +136,8 @@ public class Bridge extends TeamGame implements OreObsfucation
|
|||||||
this.CompassEnabled = true;
|
this.CompassEnabled = true;
|
||||||
|
|
||||||
this.DeathDropItems = true;
|
this.DeathDropItems = true;
|
||||||
|
|
||||||
|
this.GemMultiplier = 2.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
@ -176,6 +176,13 @@ public class DragonEscape extends SoloGame
|
|||||||
int preNode = (int)(score.Score/10000);
|
int preNode = (int)(score.Score/10000);
|
||||||
int postNode = (int)(playerScore/10000);
|
int postNode = (int)(playerScore/10000);
|
||||||
|
|
||||||
|
//Shortcut
|
||||||
|
if (preNode - postNode >= 3)
|
||||||
|
{
|
||||||
|
//Super Backtrack!
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
//Shortcut
|
//Shortcut
|
||||||
if (postNode - preNode >= 2)
|
if (postNode - preNode >= 2)
|
||||||
{
|
{
|
||||||
|
@ -0,0 +1,56 @@
|
|||||||
|
package nautilus.game.arcade.game.games.hungergames;
|
||||||
|
|
||||||
|
import org.bukkit.Effect;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
|
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.GameType;
|
||||||
|
import nautilus.game.arcade.game.SoloGame;
|
||||||
|
import nautilus.game.arcade.game.games.hungergames.kit.*;
|
||||||
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
|
||||||
|
public class HungerGames extends SoloGame
|
||||||
|
{
|
||||||
|
public HungerGames(ArcadeManager manager)
|
||||||
|
{
|
||||||
|
super(manager, GameType.HungerGames,
|
||||||
|
|
||||||
|
new Kit[]
|
||||||
|
{
|
||||||
|
new KitBeserker(manager),
|
||||||
|
new KitBomber(manager),
|
||||||
|
},
|
||||||
|
|
||||||
|
new String[]
|
||||||
|
{
|
||||||
|
"Scavenge supplies to survive.",
|
||||||
|
"Playable area shrinks over time!",
|
||||||
|
"Last player alive wins!"
|
||||||
|
});
|
||||||
|
|
||||||
|
this.DamageSelf = true;
|
||||||
|
this.DamageTeamSelf = true;
|
||||||
|
|
||||||
|
this.BlockBreak = true;
|
||||||
|
|
||||||
|
this.CompassEnabled = true;
|
||||||
|
|
||||||
|
this.GemMultiplier = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double GetKillsGems(Player killer, Player killed, boolean assist)
|
||||||
|
{
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void BlockBreak(BlockBreakEvent event)
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
event.getBlock().setTypeId(0);
|
||||||
|
event.getBlock().getWorld().playEffect(event.getBlock().getLocation(), Effect.STEP_SOUND, event.getBlock().getTypeId());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
package nautilus.game.arcade.game.games.hungergames.kit;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
import nautilus.game.arcade.kit.perks.*;
|
||||||
|
|
||||||
|
public class KitArcher extends Kit
|
||||||
|
{
|
||||||
|
public KitArcher(ArcadeManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "Archer", KitAvailability.Blue,
|
||||||
|
|
||||||
|
new String[]
|
||||||
|
{
|
||||||
|
"Highly trained with a bow, probably an elf or something..."
|
||||||
|
},
|
||||||
|
|
||||||
|
new Perk[]
|
||||||
|
{
|
||||||
|
new PerkFletcher(20, 3, true),
|
||||||
|
new PerkBarrage(5, 250, true),
|
||||||
|
},
|
||||||
|
EntityType.ZOMBIE,
|
||||||
|
new ItemStack(Material.BOW));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void GiveItems(Player player)
|
||||||
|
{
|
||||||
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package nautilus.game.arcade.game.games.hungergames.kit;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
import nautilus.game.arcade.kit.perks.*;
|
||||||
|
|
||||||
|
public class KitAssassin extends Kit
|
||||||
|
{
|
||||||
|
public KitAssassin(ArcadeManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "Assassin", KitAvailability.Green,
|
||||||
|
|
||||||
|
new String[]
|
||||||
|
{
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
new Perk[]
|
||||||
|
{
|
||||||
|
new PerkNotFinished()
|
||||||
|
},
|
||||||
|
EntityType.ZOMBIE,
|
||||||
|
new ItemStack(Material.IRON_SWORD));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void GiveItems(Player player)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package nautilus.game.arcade.game.games.hungergames.kit;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
import nautilus.game.arcade.kit.perks.*;
|
||||||
|
|
||||||
|
public class KitBeserker extends Kit
|
||||||
|
{
|
||||||
|
public KitBeserker(ArcadeManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "Beserker", KitAvailability.Free,
|
||||||
|
|
||||||
|
new String[]
|
||||||
|
{
|
||||||
|
"Agile warrior trained in the ways axe combat."
|
||||||
|
},
|
||||||
|
|
||||||
|
new Perk[]
|
||||||
|
{
|
||||||
|
new PerkLeap("Beserker Leap", 1.2, 1.2, 8000),
|
||||||
|
new PerkAxeman(),
|
||||||
|
},
|
||||||
|
EntityType.ZOMBIE,
|
||||||
|
new ItemStack(Material.IRON_AXE));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void GiveItems(Player player)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package nautilus.game.arcade.game.games.hungergames.kit;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
import nautilus.game.arcade.kit.perks.*;
|
||||||
|
|
||||||
|
public class KitBomber extends Kit
|
||||||
|
{
|
||||||
|
public KitBomber(ArcadeManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "Bomber", KitAvailability.Blue,
|
||||||
|
|
||||||
|
new String[]
|
||||||
|
{
|
||||||
|
"Crazy bomb throwing guy."
|
||||||
|
},
|
||||||
|
|
||||||
|
new Perk[]
|
||||||
|
{
|
||||||
|
new PerkBomber(30, 2, -1)
|
||||||
|
},
|
||||||
|
EntityType.ZOMBIE,
|
||||||
|
new ItemStack(Material.TNT));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void GiveItems(Player player)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package nautilus.game.arcade.game.games.hungergames.kit;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
import nautilus.game.arcade.kit.perks.*;
|
||||||
|
|
||||||
|
public class KitKnight extends Kit
|
||||||
|
{
|
||||||
|
public KitKnight(ArcadeManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "Knight", KitAvailability.Green,
|
||||||
|
|
||||||
|
new String[]
|
||||||
|
{
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
new Perk[]
|
||||||
|
{
|
||||||
|
new PerkNotFinished()
|
||||||
|
},
|
||||||
|
EntityType.ZOMBIE,
|
||||||
|
new ItemStack(Material.IRON_SWORD));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void GiveItems(Player player)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package nautilus.game.arcade.game.games.hungergames.kit;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.kit.Kit;
|
||||||
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
import nautilus.game.arcade.kit.perks.*;
|
||||||
|
|
||||||
|
public class KitMammoth extends Kit
|
||||||
|
{
|
||||||
|
public KitMammoth(ArcadeManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "Brawler", KitAvailability.Green,
|
||||||
|
|
||||||
|
new String[]
|
||||||
|
{
|
||||||
|
"Giant and muscular, easily smacks others around."
|
||||||
|
},
|
||||||
|
|
||||||
|
new Perk[]
|
||||||
|
{
|
||||||
|
new PerkMammoth(),
|
||||||
|
new PerkIronSkin(1)
|
||||||
|
},
|
||||||
|
EntityType.ZOMBIE,
|
||||||
|
new ItemStack(Material.IRON_SWORD));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void GiveItems(Player player)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -17,6 +17,7 @@ import org.bukkit.entity.Pig;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Villager;
|
import org.bukkit.entity.Villager;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
import org.bukkit.event.player.PlayerBucketFillEvent;
|
import org.bukkit.event.player.PlayerBucketFillEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||||
import org.bukkit.event.player.PlayerItemConsumeEvent;
|
import org.bukkit.event.player.PlayerItemConsumeEvent;
|
||||||
@ -25,6 +26,7 @@ import org.bukkit.scoreboard.DisplaySlot;
|
|||||||
import org.bukkit.scoreboard.Objective;
|
import org.bukkit.scoreboard.Objective;
|
||||||
|
|
||||||
import mineplex.core.common.util.F;
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.common.util.UtilAlg;
|
||||||
import mineplex.core.common.util.UtilGear;
|
import mineplex.core.common.util.UtilGear;
|
||||||
import mineplex.core.common.util.UtilInv;
|
import mineplex.core.common.util.UtilInv;
|
||||||
import mineplex.core.common.util.UtilMath;
|
import mineplex.core.common.util.UtilMath;
|
||||||
@ -33,6 +35,7 @@ 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.combat.event.CombatDeathEvent;
|
||||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
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;
|
||||||
@ -74,14 +77,17 @@ public class MilkCow extends SoloGame
|
|||||||
|
|
||||||
new String[]
|
new String[]
|
||||||
{
|
{
|
||||||
"Each Farmer must gather milk.",
|
"Farmers get 1 point for drinking milk.",
|
||||||
"Drink 15 buckets of milk to win!",
|
"You lose 5 points for dying!",
|
||||||
"",
|
"",
|
||||||
"Cow must stop his herd from being milked.",
|
"Cows get 1 point for killing farmers.",
|
||||||
"Kill all the farmers to win!"
|
"Defend your herd to stop farmers!",
|
||||||
|
"",
|
||||||
|
"First player to 15 points wins!"
|
||||||
});
|
});
|
||||||
|
|
||||||
this.CompassEnabled = true;
|
this.CompassEnabled = true;
|
||||||
|
this.DeathOut = false;
|
||||||
|
|
||||||
_scoreObj = GetScoreboard().registerNewObjective("Milk", "dummy");
|
_scoreObj = GetScoreboard().registerNewObjective("Milk", "dummy");
|
||||||
_scoreObj.setDisplaySlot(DisplaySlot.BELOW_NAME);
|
_scoreObj.setDisplaySlot(DisplaySlot.BELOW_NAME);
|
||||||
@ -218,11 +224,20 @@ public class MilkCow extends SoloGame
|
|||||||
|
|
||||||
if (UtilMath.offset(cow, host) > 6)
|
if (UtilMath.offset(cow, host) > 6)
|
||||||
{
|
{
|
||||||
nav.a(host.getLocation().getX(), host.getLocation().getY(),host.getLocation().getZ(), 1.6f);
|
if (UtilMath.offset(cow, host) > 16)
|
||||||
|
{
|
||||||
|
Location target = cow.getLocation();
|
||||||
|
|
||||||
|
target.add(UtilAlg.getTrajectory(cow, host).multiply(16));
|
||||||
|
|
||||||
|
nav.a(target.getX(), target.getY(), target.getZ(), 1.8f);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
nav.a(host.getLocation().getX(), host.getLocation().getY(),host.getLocation().getZ(), 1.4f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
while (_herd.size() < 8)
|
while (_herd.size() < 5)
|
||||||
{
|
{
|
||||||
this.CreatureAllowOverride = true;
|
this.CreatureAllowOverride = true;
|
||||||
Cow cow = host.getWorld().spawn(host.getLocation(), Cow.class);
|
Cow cow = host.getWorld().spawn(host.getLocation(), Cow.class);
|
||||||
@ -328,6 +343,28 @@ public class MilkCow extends SoloGame
|
|||||||
this.AddGems(event.getPlayer(), 0.5, "Milk Drunk", true);
|
this.AddGems(event.getPlayer(), 0.5, "Milk Drunk", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void LoseMilk(PlayerDeathEvent event)
|
||||||
|
{
|
||||||
|
SetScore(event.getEntity(), Math.max(0, GetScore(event.getEntity()) - 5));
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void KillFarmer(CombatDeathEvent event)
|
||||||
|
{
|
||||||
|
if (event.GetLog().GetKiller() == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!event.GetLog().GetKiller().IsPlayer())
|
||||||
|
return;
|
||||||
|
|
||||||
|
Player player = UtilPlayer.searchExact(event.GetLog().GetKiller().GetName());
|
||||||
|
if (player == null) return;
|
||||||
|
|
||||||
|
//Score
|
||||||
|
SetScore(player, GetScore(player)+1);
|
||||||
|
}
|
||||||
|
|
||||||
public void SetScore(Player player, double level)
|
public void SetScore(Player player, double level)
|
||||||
{
|
{
|
||||||
_scoreObj.getScore(player).setScore((int)level);
|
_scoreObj.getScore(player).setScore((int)level);
|
||||||
@ -479,12 +516,12 @@ public class MilkCow extends SoloGame
|
|||||||
@Override
|
@Override
|
||||||
public boolean CanJoinTeam(GameTeam team)
|
public boolean CanJoinTeam(GameTeam team)
|
||||||
{
|
{
|
||||||
if (team.GetColor() == ChatColor.RED)
|
int cows = (int)(GetPlayers(true).size()/5);
|
||||||
{
|
|
||||||
return team.GetSize() == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
if (team.GetColor() == ChatColor.RED)
|
||||||
|
return team.GetSize() < cows;
|
||||||
|
|
||||||
|
return team.GetSize() < GetPlayers(true).size() - cows;
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
@ -28,11 +28,11 @@ public class KitCow extends SmashKit
|
|||||||
|
|
||||||
new Perk[]
|
new Perk[]
|
||||||
{
|
{
|
||||||
new PerkDamageSet(5),
|
new PerkDamageSet(4),
|
||||||
new PerkKnockbackMultiplier(4),
|
new PerkKnockbackMultiplier(4),
|
||||||
new PerkCharge(),
|
new PerkCharge(),
|
||||||
new PerkCowBomb(),
|
new PerkCowBomb(),
|
||||||
new PerkBodySlam(6, 5),
|
new PerkSeismicCow(),
|
||||||
},
|
},
|
||||||
EntityType.COW,
|
EntityType.COW,
|
||||||
null);
|
null);
|
||||||
@ -42,7 +42,7 @@ public class KitCow extends SmashKit
|
|||||||
@Override
|
@Override
|
||||||
public void GiveItems(Player player)
|
public void GiveItems(Player player)
|
||||||
{
|
{
|
||||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_SPADE, (byte)0, 1,
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_AXE, (byte)0, 1,
|
||||||
C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Cow Bomb",
|
C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Cow Bomb",
|
||||||
new String[]
|
new String[]
|
||||||
{
|
{
|
||||||
@ -52,7 +52,7 @@ public class KitCow extends SmashKit
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
||||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_AXE, (byte)0, 1,
|
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.IRON_SPADE, (byte)0, 1,
|
||||||
C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Body Slam",
|
C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Body Slam",
|
||||||
new String[]
|
new String[]
|
||||||
{
|
{
|
||||||
|
@ -8,6 +8,7 @@ import org.bukkit.Sound;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.block.BlockFadeEvent;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
import org.bukkit.event.entity.EntityDeathEvent;
|
import org.bukkit.event.entity.EntityDeathEvent;
|
||||||
import org.bukkit.event.entity.EntityRegainHealthEvent;
|
import org.bukkit.event.entity.EntityRegainHealthEvent;
|
||||||
@ -59,6 +60,7 @@ public class SuperSmash extends SoloGame
|
|||||||
new KitKnight(manager),
|
new KitKnight(manager),
|
||||||
new KitSkySquid(manager),
|
new KitSkySquid(manager),
|
||||||
new KitWitherSkeleton(manager),
|
new KitWitherSkeleton(manager),
|
||||||
|
//new KitWither(manager),
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -305,4 +307,10 @@ public class SuperSmash extends SoloGame
|
|||||||
{
|
{
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void BlockFade(BlockFadeEvent event)
|
||||||
|
{
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,117 @@
|
|||||||
|
package nautilus.game.arcade.game.games.smash.kits;
|
||||||
|
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Color;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.EntityType;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.LeatherArmorMeta;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.UtilEnt;
|
||||||
|
import mineplex.core.common.util.UtilServer;
|
||||||
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
import mineplex.core.updater.UpdateType;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
import nautilus.game.arcade.ArcadeManager;
|
||||||
|
import nautilus.game.arcade.kit.KitAvailability;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
import nautilus.game.arcade.kit.SmashKit;
|
||||||
|
import nautilus.game.arcade.kit.perks.PerkDoubleJump;
|
||||||
|
import nautilus.game.arcade.kit.perks.PerkSmashStats;
|
||||||
|
import nautilus.game.arcade.kit.perks.PerkSkullShot;
|
||||||
|
|
||||||
|
public class KitWither extends SmashKit
|
||||||
|
{
|
||||||
|
public KitWither(ArcadeManager manager)
|
||||||
|
{
|
||||||
|
super(manager, "Wither", KitAvailability.Blue,
|
||||||
|
|
||||||
|
new String[]
|
||||||
|
{
|
||||||
|
},
|
||||||
|
|
||||||
|
new Perk[]
|
||||||
|
{
|
||||||
|
new PerkSmashStats(6, 1.2, 0.3, 6),
|
||||||
|
new PerkDoubleJump("Double Jump", 0.9, 0.9, false),
|
||||||
|
new PerkSkullShot(),
|
||||||
|
},
|
||||||
|
EntityType.ZOMBIE,
|
||||||
|
new ItemStack(Material.BOW));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void GiveItems(Player player)
|
||||||
|
{
|
||||||
|
|
||||||
|
player.getInventory().addItem(new ItemStack(Material.ARROW));
|
||||||
|
|
||||||
|
ItemStack head = ItemStackFactory.Instance.CreateStack(Material.SKULL_ITEM, (byte)1, 1);
|
||||||
|
player.getInventory().setHelmet(head);
|
||||||
|
|
||||||
|
ItemStack armor = new ItemStack(Material.LEATHER_CHESTPLATE);
|
||||||
|
LeatherArmorMeta meta = (LeatherArmorMeta)armor.getItemMeta();
|
||||||
|
meta.setColor(Color.BLACK);
|
||||||
|
armor.setItemMeta(meta);
|
||||||
|
player.getInventory().setChestplate(armor);
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void InvisibilityUpdate(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.FAST)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (Player player : UtilServer.getPlayers())
|
||||||
|
{
|
||||||
|
if (!HasKit(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (player.getInventory().getChestplate() == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
Manager.GetCondition().Factory().Invisible("Wither Invis", player, player, 1.9, 0, false, false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Entity SpawnEntity(Location loc)
|
||||||
|
{
|
||||||
|
EntityType type = _entityType;
|
||||||
|
if (type == EntityType.PLAYER)
|
||||||
|
type = EntityType.ZOMBIE;
|
||||||
|
|
||||||
|
LivingEntity entity = (LivingEntity) Manager.GetCreature().SpawnEntity(loc, type);
|
||||||
|
|
||||||
|
entity.setRemoveWhenFarAway(false);
|
||||||
|
entity.setCustomName(GetAvailability().GetColor() + GetName() + " Kit" + (GetAvailability() == KitAvailability.Blue ? ChatColor.GRAY + " (" + ChatColor.WHITE + "Ultra" + ChatColor.GRAY + ")" : ""));
|
||||||
|
entity.setCustomNameVisible(true);
|
||||||
|
entity.getEquipment().setItemInHand(_itemInHand);
|
||||||
|
|
||||||
|
Manager.GetCondition().Factory().Invisible("Kit Invis", entity, entity, 7777, 0, false, false, false);
|
||||||
|
|
||||||
|
UtilEnt.Vegetate(entity);
|
||||||
|
|
||||||
|
SpawnCustom(entity);
|
||||||
|
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void SpawnCustom(LivingEntity ent)
|
||||||
|
{
|
||||||
|
ItemStack head = ItemStackFactory.Instance.CreateStack(Material.SKULL_ITEM, (byte)1, 1);
|
||||||
|
ent.getEquipment().setHelmet(head);
|
||||||
|
|
||||||
|
ItemStack armor = new ItemStack(Material.LEATHER_CHESTPLATE);
|
||||||
|
LeatherArmorMeta meta = (LeatherArmorMeta)armor.getItemMeta();
|
||||||
|
meta.setColor(Color.BLACK);
|
||||||
|
armor.setItemMeta(meta);
|
||||||
|
ent.getEquipment().setChestplate(armor);
|
||||||
|
}
|
||||||
|
}
|
@ -71,7 +71,7 @@ public class TurfForts extends TeamGame
|
|||||||
|
|
||||||
public TurfForts(ArcadeManager manager)
|
public TurfForts(ArcadeManager manager)
|
||||||
{
|
{
|
||||||
super(manager, GameType.TurfForts,
|
super(manager, GameType.TurfWars,
|
||||||
|
|
||||||
new Kit[]
|
new Kit[]
|
||||||
{
|
{
|
||||||
@ -173,6 +173,7 @@ public class TurfForts extends TeamGame
|
|||||||
MapUtil.QuickChangeBlockAt(loc, 159, (byte)14);
|
MapUtil.QuickChangeBlockAt(loc, 159, (byte)14);
|
||||||
|
|
||||||
for (int i=1 ; i<6 ; i++)
|
for (int i=1 ; i<6 ; i++)
|
||||||
|
if (loc.getBlock().getRelative(BlockFace.UP, i).getTypeId() == 35)
|
||||||
MapUtil.QuickChangeBlockAt(loc.clone().add(0, i, 0), 0, (byte)0);
|
MapUtil.QuickChangeBlockAt(loc.clone().add(0, i, 0), 0, (byte)0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,6 +185,7 @@ public class TurfForts extends TeamGame
|
|||||||
MapUtil.QuickChangeBlockAt(loc, 159, (byte)14);
|
MapUtil.QuickChangeBlockAt(loc, 159, (byte)14);
|
||||||
|
|
||||||
for (int i=1 ; i<6 ; i++)
|
for (int i=1 ; i<6 ; i++)
|
||||||
|
if (loc.getBlock().getRelative(BlockFace.UP, i).getTypeId() == 35)
|
||||||
MapUtil.QuickChangeBlockAt(loc.clone().add(0, i, 0), 0, (byte)0);
|
MapUtil.QuickChangeBlockAt(loc.clone().add(0, i, 0), 0, (byte)0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,6 +201,7 @@ public class TurfForts extends TeamGame
|
|||||||
MapUtil.QuickChangeBlockAt(loc, 159, (byte)3);
|
MapUtil.QuickChangeBlockAt(loc, 159, (byte)3);
|
||||||
|
|
||||||
for (int i=1 ; i<6 ; i++)
|
for (int i=1 ; i<6 ; i++)
|
||||||
|
if (loc.getBlock().getRelative(BlockFace.UP, i).getTypeId() == 35)
|
||||||
MapUtil.QuickChangeBlockAt(loc.clone().add(0, i, 0), 0, (byte)0);
|
MapUtil.QuickChangeBlockAt(loc.clone().add(0, i, 0), 0, (byte)0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,6 +212,7 @@ public class TurfForts extends TeamGame
|
|||||||
MapUtil.QuickChangeBlockAt(loc, 159, (byte)3);
|
MapUtil.QuickChangeBlockAt(loc, 159, (byte)3);
|
||||||
|
|
||||||
for (int i=1 ; i<6 ; i++)
|
for (int i=1 ; i<6 ; i++)
|
||||||
|
if (loc.getBlock().getRelative(BlockFace.UP, i).getTypeId() == 35)
|
||||||
MapUtil.QuickChangeBlockAt(loc.clone().add(0, i, 0), 0, (byte)0);
|
MapUtil.QuickChangeBlockAt(loc.clone().add(0, i, 0), 0, (byte)0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -225,8 +229,8 @@ public class TurfForts extends TeamGame
|
|||||||
{
|
{
|
||||||
if (!_fight)
|
if (!_fight)
|
||||||
{
|
{
|
||||||
event.setCancelled(true);
|
|
||||||
UtilPlayer.message(event.getEntity(), F.main("Game", "You cannot attack during Build Time!"));
|
UtilPlayer.message(event.getEntity(), F.main("Game", "You cannot attack during Build Time!"));
|
||||||
|
event.getProjectile().remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -243,13 +247,8 @@ public class TurfForts extends TeamGame
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event.getBlock().getLocation().getY() > _turf.get(0).getBlockY() + 5)
|
|
||||||
{
|
|
||||||
UtilPlayer.message(event.getPlayer(), F.main("Game", "You cannot build this high up."));
|
|
||||||
event.setCancelled(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
//On Own
|
||||||
Block block = event.getBlock().getRelative(BlockFace.DOWN);
|
Block block = event.getBlock().getRelative(BlockFace.DOWN);
|
||||||
while (block.getTypeId() == 0)
|
while (block.getTypeId() == 0)
|
||||||
block = block.getRelative(BlockFace.DOWN);
|
block = block.getRelative(BlockFace.DOWN);
|
||||||
@ -260,6 +259,24 @@ public class TurfForts extends TeamGame
|
|||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Height
|
||||||
|
boolean aboveTurf = false;
|
||||||
|
for (int i=1 ; i<=5 ; i++)
|
||||||
|
{
|
||||||
|
if (event.getBlock().getRelative(BlockFace.DOWN, i).getTypeId() != 159)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
aboveTurf = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!aboveTurf)
|
||||||
|
{
|
||||||
|
UtilPlayer.message(event.getPlayer(), F.main("Game", "You cannot build this high above Turf."));
|
||||||
|
event.setCancelled(true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -330,9 +347,16 @@ public class TurfForts extends TeamGame
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void Damage(CustomDamageEvent event)
|
public void Damage(CustomDamageEvent event)
|
||||||
{
|
{
|
||||||
if (!_fight)
|
if (event.GetCause() == DamageCause.FALL)
|
||||||
|
{
|
||||||
|
event.SetCancelled("No Fall");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_fight && (event.GetCause() == DamageCause.PROJECTILE || event.GetCause() == DamageCause.ENTITY_ATTACK))
|
||||||
{
|
{
|
||||||
event.SetCancelled("Build Time");
|
event.SetCancelled("Build Time");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player damager = event.GetDamagerPlayer(true);
|
Player damager = event.GetDamagerPlayer(true);
|
||||||
@ -509,7 +533,7 @@ public class TurfForts extends TeamGame
|
|||||||
for (Player player : team.GetPlayers(true))
|
for (Player player : team.GetPlayers(true))
|
||||||
{
|
{
|
||||||
Block block = player.getLocation().getBlock().getRelative(BlockFace.DOWN);
|
Block block = player.getLocation().getBlock().getRelative(BlockFace.DOWN);
|
||||||
while (block.getTypeId() == 0 && block.getY() > 0)
|
while (block.getTypeId() != 159 && block.getY() > 0)
|
||||||
block = block.getRelative(BlockFace.DOWN);
|
block = block.getRelative(BlockFace.DOWN);
|
||||||
|
|
||||||
if (block.getTypeId() == 0)
|
if (block.getTypeId() == 0)
|
||||||
@ -544,8 +568,6 @@ public class TurfForts extends TeamGame
|
|||||||
{
|
{
|
||||||
UtilAction.velocity(player, UtilAlg.getTrajectory2d(player.getLocation(), team.GetSpawn()), 2, false, 0, 0.8, 1, true);
|
UtilAction.velocity(player, UtilAlg.getTrajectory2d(player.getLocation(), team.GetSpawn()), 2, false, 0, 0.8, 1, true);
|
||||||
|
|
||||||
player.damage(10);
|
|
||||||
|
|
||||||
player.playSound(player.getLocation(), Sound.NOTE_BASS, 2f, 1f);
|
player.playSound(player.getLocation(), Sound.NOTE_BASS, 2f, 1f);
|
||||||
UtilPlayer.message(player, F.main("Game", "You cannot walk on the enemies turf!"));
|
UtilPlayer.message(player, F.main("Game", "You cannot walk on the enemies turf!"));
|
||||||
}
|
}
|
||||||
|
@ -241,6 +241,25 @@ public class UHC extends TeamGame
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void KillMobs(GameStateChangeEvent event)
|
||||||
|
{
|
||||||
|
if (event.GetState() != GameState.Live)
|
||||||
|
return;
|
||||||
|
|
||||||
|
//Kill Mobs
|
||||||
|
for (Entity ent : WorldData.World.getEntities())
|
||||||
|
{
|
||||||
|
if (!(ent instanceof LivingEntity))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (ent instanceof Player)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
ent.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void WorldBoundaryCheck(PlayerMoveEvent event)
|
public void WorldBoundaryCheck(PlayerMoveEvent event)
|
||||||
{
|
{
|
||||||
@ -554,7 +573,7 @@ public class UHC extends TeamGame
|
|||||||
|
|
||||||
if (!team.IsAlive(player))
|
if (!team.IsAlive(player))
|
||||||
{
|
{
|
||||||
team.SetPlayerState(player, PlayerState.OUT);
|
team.RemovePlayer(player);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ public class PerkArrowRebound extends Perk
|
|||||||
{
|
{
|
||||||
super("Chain Arrows", new String[]
|
super("Chain Arrows", new String[]
|
||||||
{
|
{
|
||||||
|
C.cGray + "On hit, arrows bounce to nearby enemies.",
|
||||||
C.cGray + "Arrows bounce up to " + max + " times.",
|
C.cGray + "Arrows bounce up to " + max + " times.",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ public class PerkCowBomb extends Perk implements IThrown
|
|||||||
{
|
{
|
||||||
super("Cow Bomb", new String[]
|
super("Cow Bomb", new String[]
|
||||||
{
|
{
|
||||||
C.cYellow + "Right-Click" + C.cGray + " with Shovel to use " + C.cGreen + "Cow Bomb"
|
C.cYellow + "Right-Click" + C.cGray + " with Axe to use " + C.cGreen + "Cow Bomb"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ public class PerkCowBomb extends Perk implements IThrown
|
|||||||
if (event.getPlayer().getItemInHand() == null)
|
if (event.getPlayer().getItemInHand() == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!event.getPlayer().getItemInHand().getType().toString().contains("_SPADE"))
|
if (!event.getPlayer().getItemInHand().getType().toString().contains("_AXE"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
|
@ -115,6 +115,7 @@ public class PerkLeap extends Perk
|
|||||||
ent = player.getVehicle();
|
ent = player.getVehicle();
|
||||||
|
|
||||||
UtilAction.velocity(ent, _power, 0.2, _heightMax, true);
|
UtilAction.velocity(ent, _power, 0.2, _heightMax, true);
|
||||||
|
|
||||||
player.setFallDistance(0);
|
player.setFallDistance(0);
|
||||||
|
|
||||||
UtilPlayer.message(player, F.main("Skill", "You used " + F.skill(_name) + "."));
|
UtilPlayer.message(player, F.main("Skill", "You used " + F.skill(_name) + "."));
|
||||||
|
@ -0,0 +1,140 @@
|
|||||||
|
package nautilus.game.arcade.kit.perks;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import org.bukkit.Effect;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.BlockFace;
|
||||||
|
import org.bukkit.entity.Cow;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.block.Action;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||||
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.common.util.UtilAction;
|
||||||
|
import mineplex.core.common.util.UtilAlg;
|
||||||
|
import mineplex.core.common.util.UtilBlock;
|
||||||
|
import mineplex.core.common.util.UtilEnt;
|
||||||
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
|
import mineplex.core.common.util.UtilTime;
|
||||||
|
import mineplex.core.recharge.Recharge;
|
||||||
|
import mineplex.core.updater.UpdateType;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
|
||||||
|
public class PerkSeismicCow extends Perk
|
||||||
|
{
|
||||||
|
private HashMap<LivingEntity, Long> _live = new HashMap<LivingEntity, Long>();
|
||||||
|
|
||||||
|
public PerkSeismicCow()
|
||||||
|
{
|
||||||
|
super("Seismic Slam", new String[]
|
||||||
|
{
|
||||||
|
C.cYellow + "Right-Click" + C.cGray + " with Shovel to " + C.cGreen + "Seismic Slam"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void Leap(PlayerInteractEvent event)
|
||||||
|
{
|
||||||
|
if (event.isCancelled())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (event.getAction() != Action.RIGHT_CLICK_AIR && event.getAction() != Action.RIGHT_CLICK_BLOCK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (UtilBlock.usable(event.getClickedBlock()))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (event.getPlayer().getItemInHand() == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!event.getPlayer().getItemInHand().getType().toString().contains("_SPADE"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (!Kit.HasKit(player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!Recharge.Instance.use(player, GetName(), 6000, true))
|
||||||
|
return;
|
||||||
|
|
||||||
|
//Action
|
||||||
|
Vector vec = player.getLocation().getDirection();
|
||||||
|
if (vec.getY() < 0)
|
||||||
|
vec.setY(vec.getY() * -1);
|
||||||
|
|
||||||
|
UtilAction.velocity(player, vec, 1, true, 1, 0, 1, true);
|
||||||
|
|
||||||
|
//Record
|
||||||
|
_live.put(player, System.currentTimeMillis());
|
||||||
|
|
||||||
|
//Inform
|
||||||
|
UtilPlayer.message(player, F.main("Game", "You used " + F.skill(GetName()) + "."));
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void Slam(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.TICK)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (Player player : Manager.GetGame().GetPlayers(true))
|
||||||
|
{
|
||||||
|
if (!UtilEnt.isGrounded(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!_live.containsKey(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (!UtilTime.elapsed(_live.get(player), 1000))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
_live.remove(player);
|
||||||
|
|
||||||
|
//Action
|
||||||
|
int damage = 4;
|
||||||
|
double range = 6;
|
||||||
|
|
||||||
|
HashMap<LivingEntity, Double> targets = UtilEnt.getInRadius(player.getLocation(), range);
|
||||||
|
for (LivingEntity cur : targets.keySet())
|
||||||
|
{
|
||||||
|
if (cur.equals(player))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (cur instanceof Cow)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
//Damage Event
|
||||||
|
Manager.GetDamage().NewDamageEvent(cur, player, null,
|
||||||
|
DamageCause.CUSTOM, damage * targets.get(cur) + 0.5, false, true, false,
|
||||||
|
player.getName(), GetName());
|
||||||
|
|
||||||
|
//Velocity
|
||||||
|
UtilAction.velocity(cur,
|
||||||
|
UtilAlg.getTrajectory2d(player.getLocation().toVector(), cur.getLocation().toVector()),
|
||||||
|
1.8 * targets.get(cur), true, 0, 0.4 + 1.0 * targets.get(cur), 1.6, true);
|
||||||
|
|
||||||
|
//Condition
|
||||||
|
Manager.GetCondition().Factory().Falling(GetName(), cur, player, 10, false, true);
|
||||||
|
|
||||||
|
//Inform
|
||||||
|
if (cur instanceof Player)
|
||||||
|
UtilPlayer.message((Player)cur, F.main("Game", F.name(player.getName()) +" hit you with " + F.skill(GetName()) + "."));
|
||||||
|
}
|
||||||
|
|
||||||
|
//Effect
|
||||||
|
player.getWorld().playSound(player.getLocation(), Sound.ZOMBIE_WOOD, 2f, 0.2f);
|
||||||
|
for (Block cur : UtilBlock.getInRadius(player.getLocation(), 4d).keySet())
|
||||||
|
if (UtilBlock.airFoliage(cur.getRelative(BlockFace.UP)) && !UtilBlock.airFoliage(cur))
|
||||||
|
cur.getWorld().playEffect(cur.getLocation(), Effect.STEP_SOUND, cur.getTypeId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -35,7 +35,7 @@ public class PerkSeismicSlam extends Perk
|
|||||||
{
|
{
|
||||||
super("Seismic Slam", new String[]
|
super("Seismic Slam", new String[]
|
||||||
{
|
{
|
||||||
C.cYellow + "Right-Click" + C.cGray + " with Shovel to " + C.cGreen + "Seismic Slam"
|
C.cYellow + "Right-Click" + C.cGray + " with Axe to " + C.cGreen + "Seismic Slam"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,123 @@
|
|||||||
|
package nautilus.game.arcade.kit.perks;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.WitherSkull;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.entity.EntityShootBowEvent;
|
||||||
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.util.Vector;
|
||||||
|
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
|
import mineplex.core.common.util.F;
|
||||||
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
|
import mineplex.core.common.util.UtilTime;
|
||||||
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
import mineplex.core.updater.UpdateType;
|
||||||
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
import nautilus.game.arcade.kit.Perk;
|
||||||
|
|
||||||
|
public class PerkSkullShot extends Perk
|
||||||
|
{
|
||||||
|
private HashMap<Player, Long> _shootTime = new HashMap<Player, Long>();
|
||||||
|
private HashMap<WitherSkull, Vector> _skullDir = new HashMap<WitherSkull, Vector>();
|
||||||
|
|
||||||
|
public PerkSkullShot()
|
||||||
|
{
|
||||||
|
super("Skull Shot", new String[]
|
||||||
|
{
|
||||||
|
C.cYellow + "Shoot Bow" + C.cGray + " to use " + C.cGreen + "Skull Shot"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void Fire(EntityShootBowEvent event)
|
||||||
|
{
|
||||||
|
if (!(event.getEntity() instanceof Player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Player player = (Player)event.getEntity();
|
||||||
|
|
||||||
|
if (!Kit.HasKit(player))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Vector vel = event.getProjectile().getVelocity();
|
||||||
|
event.getProjectile().remove();
|
||||||
|
|
||||||
|
WitherSkull skull = player.launchProjectile(WitherSkull.class);
|
||||||
|
skull.setDirection(vel);
|
||||||
|
skull.setVelocity(vel);
|
||||||
|
|
||||||
|
_skullDir.put(skull, vel.multiply(0.5));
|
||||||
|
|
||||||
|
_shootTime.put(player, System.currentTimeMillis());
|
||||||
|
|
||||||
|
//Helmet
|
||||||
|
player.getInventory().setHelmet(null);
|
||||||
|
player.getInventory().remove(Material.ARROW);
|
||||||
|
|
||||||
|
//Sound
|
||||||
|
player.getWorld().playSound(player.getLocation(), Sound.WITHER_SHOOT, 1f, 1f);
|
||||||
|
|
||||||
|
//Inform
|
||||||
|
UtilPlayer.message(player, F.main("Skill", "You used " + F.skill(GetName()) + "."));
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void SkullDir(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.FASTER)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Iterator<WitherSkull> skullIterator = _skullDir.keySet().iterator();
|
||||||
|
|
||||||
|
while (skullIterator.hasNext())
|
||||||
|
{
|
||||||
|
WitherSkull skull = skullIterator.next();
|
||||||
|
|
||||||
|
if (!skull.isValid())
|
||||||
|
{
|
||||||
|
skullIterator.remove();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
skull.setVelocity(_skullDir.get(skull));
|
||||||
|
skull.setDirection(_skullDir.get(skull));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void ArrowRespawn(UpdateEvent event)
|
||||||
|
{
|
||||||
|
if (event.getType() != UpdateType.FASTER)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Iterator<Player> playerIterator = _shootTime.keySet().iterator();
|
||||||
|
|
||||||
|
while (playerIterator.hasNext())
|
||||||
|
{
|
||||||
|
Player player = playerIterator.next();
|
||||||
|
|
||||||
|
if (!UtilTime.elapsed(_shootTime.get(player), 2000))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
playerIterator.remove();
|
||||||
|
|
||||||
|
//Helmet
|
||||||
|
ItemStack head = ItemStackFactory.Instance.CreateStack(Material.SKULL_ITEM, (byte)1, 1);
|
||||||
|
player.getInventory().setHelmet(head);
|
||||||
|
player.getInventory().addItem(new ItemStack(Material.ARROW));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void Death(PlayerDeathEvent event)
|
||||||
|
{
|
||||||
|
_shootTime.remove(event.getEntity());
|
||||||
|
}
|
||||||
|
}
|
@ -247,7 +247,7 @@ public class PerkSlimeRocket extends Perk implements IThrown
|
|||||||
|
|
||||||
//Damage Event
|
//Damage Event
|
||||||
Manager.GetDamage().NewDamageEvent(target, data.GetThrower(), null,
|
Manager.GetDamage().NewDamageEvent(target, data.GetThrower(), null,
|
||||||
DamageCause.PROJECTILE, slime.getSize() * 4, true, true, false,
|
DamageCause.PROJECTILE, slime.getSize() * 5, true, true, false,
|
||||||
UtilEnt.getName(data.GetThrower()), GetName());
|
UtilEnt.getName(data.GetThrower()), GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,7 +257,7 @@ public class PerkSlimeRocket extends Perk implements IThrown
|
|||||||
if (event.GetReason() == null || !event.GetReason().contains(GetName()))
|
if (event.GetReason() == null || !event.GetReason().contains(GetName()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
event.AddKnockback(GetName(), 2.5);
|
event.AddKnockback(GetName(), 3.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -120,10 +120,10 @@ public class GameGemManager implements Listener
|
|||||||
|
|
||||||
//Give Gems
|
//Give Gems
|
||||||
if (give)
|
if (give)
|
||||||
GiveGems(player, game.GetPlayerGems().remove(player));
|
GiveGems(player, game.GetPlayerGems().remove(player), game.GemMultiplier);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GiveGems(Player player, HashMap<String,GemData> gems)
|
public void GiveGems(Player player, HashMap<String,GemData> gems, double gameMult)
|
||||||
{
|
{
|
||||||
if (gems == null)
|
if (gems == null)
|
||||||
return;
|
return;
|
||||||
@ -139,6 +139,8 @@ public class GameGemManager implements Listener
|
|||||||
if (Manager.GetClients().Get(player).GetRank().Has(Rank.ULTRA) || Manager.GetDonation().Get(player.getName()).OwnsUnknownPackage(Manager.GetServerConfig().ServerType + " ULTRA"))
|
if (Manager.GetClients().Get(player).GetRank().Has(Rank.ULTRA) || Manager.GetDonation().Get(player.getName()).OwnsUnknownPackage(Manager.GetServerConfig().ServerType + " ULTRA"))
|
||||||
total = total * 2;
|
total = total * 2;
|
||||||
|
|
||||||
|
total = (int) (total * gameMult);
|
||||||
|
|
||||||
Manager.GetDonation().RewardGems(null, player.getName(), total);
|
Manager.GetDonation().RewardGems(null, player.getName(), total);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,6 +167,8 @@ public class GameGemManager implements Listener
|
|||||||
|
|
||||||
earnedGems += gemCount;
|
earnedGems += gemCount;
|
||||||
|
|
||||||
|
earnedGems = (int) (earnedGems * game.GemMultiplier);
|
||||||
|
|
||||||
int amount = gems.get(type).Amount;
|
int amount = gems.get(type).Amount;
|
||||||
String amountStr = "";
|
String amountStr = "";
|
||||||
if (amount > 0)
|
if (amount > 0)
|
||||||
@ -194,9 +198,4 @@ public class GameGemManager implements Listener
|
|||||||
|
|
||||||
UtilPlayer.message(player, ArcadeFormat.Line);
|
UtilPlayer.message(player, ArcadeFormat.Line);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double GetScale(Game game)
|
|
||||||
{
|
|
||||||
return 0.25 + (0.75 * ((double)game.GetPlayerCountAtStart() / (double)Manager.GetPlayerFull()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -458,7 +458,7 @@ public class GameLobbyManager implements IPacketRunnable, Listener
|
|||||||
kits.add(kit);
|
kits.add(kit);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Radial for smash
|
//Smash
|
||||||
if (game.GetType() == GameType.Smash)
|
if (game.GetType() == GameType.Smash)
|
||||||
{
|
{
|
||||||
WriteKitLine("Free", 0, 159, (byte)15);
|
WriteKitLine("Free", 0, 159, (byte)15);
|
||||||
@ -469,7 +469,7 @@ public class GameLobbyManager implements IPacketRunnable, Listener
|
|||||||
|
|
||||||
for (int i=0 ; i<kits.size() ; i++)
|
for (int i=0 ; i<kits.size() ; i++)
|
||||||
{
|
{
|
||||||
if (i < kits.size()/2) kitsA.add(kits.get(i));
|
if (kits.get(i).GetAvailability() != KitAvailability.Blue) kitsA.add(kits.get(i));
|
||||||
else kitsB.add(kits.get(i));
|
else kitsB.add(kits.get(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.block.Action;
|
import org.bukkit.event.block.Action;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
|
|
||||||
public class MiscManager implements Listener
|
public class MiscManager implements Listener
|
||||||
@ -68,17 +69,20 @@ public class MiscManager implements Listener
|
|||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void EnsureHubClock(UpdateEvent event)
|
public void HubClockUpdate(UpdateEvent event)
|
||||||
{
|
{
|
||||||
if (event.getType() != UpdateType.SLOW)
|
if (event.getType() != UpdateType.SLOW)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (Manager.GetGame() != null && Manager.GetGame().GetType() == GameType.UHC)
|
if (Manager.GetGame() == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (Manager.GetGame().GetType() == GameType.UHC)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (Player player : UtilServer.getPlayers())
|
for (Player player : UtilServer.getPlayers())
|
||||||
{
|
{
|
||||||
if (Manager.GetGame() == null || !Manager.GetGame().IsAlive(player))
|
if (!Manager.GetGame().IsAlive(player))
|
||||||
{
|
{
|
||||||
if (!player.getInventory().contains(Material.WATCH))
|
if (!player.getInventory().contains(Material.WATCH))
|
||||||
{
|
{
|
||||||
@ -87,4 +91,28 @@ public class MiscManager implements Listener
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.LOWEST)
|
||||||
|
public void HubClockInteract(PlayerInteractEvent event)
|
||||||
|
{
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (player.getItemInHand() == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (player.getItemInHand().getType() != Material.WATCH)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Manager.GetPortal().SendPlayerToServer(player, "Lobby");
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void HubCommand(PlayerCommandPreprocessEvent event)
|
||||||
|
{
|
||||||
|
if (event.getMessage().startsWith("/hub") || event.getMessage().startsWith("/leave"))
|
||||||
|
{
|
||||||
|
Manager.GetPortal().SendPlayerToServer(event.getPlayer(), "Lobby");
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user