Merge branch 'master' of ssh://184.154.0.242:7999/min/Mineplex

This commit is contained in:
Jonathan Williams 2014-10-17 23:39:21 -05:00
commit 8630a1ba4c
8 changed files with 119 additions and 12 deletions

View File

@ -516,49 +516,49 @@ public enum Achievement
AchievementCategory.MICRO_BATTLE), AchievementCategory.MICRO_BATTLE),
//MineStrike //MineStrike
MINE_STRIKE_WINS("Striker", 0, MINE_STRIKE_WINS("Striker", 800,
new String[]{"MineStrike.Wins"}, new String[]{"MineStrike.Wins"},
new String[]{"Win 50 games of MineStrike"}, new String[]{"Win 50 games of MineStrike"},
new int[]{50}, new int[]{50},
AchievementCategory.MINE_STRIKE), AchievementCategory.MINE_STRIKE),
MINE_STRIKE_BOOM_HEADSHOT("BOOM! HEADSHOT!", 0, MINE_STRIKE_BOOM_HEADSHOT("BOOM! HEADSHOT!", 1000,
new String[]{"MineStrike.BoomHeadshot"}, new String[]{"MineStrike.BoomHeadshot"},
new String[]{"Kill 500 people with headshots"}, new String[]{"Kill 500 people with headshots"},
new int[]{500}, new int[]{500},
AchievementCategory.MINE_STRIKE), AchievementCategory.MINE_STRIKE),
MINE_STRIKE_ACE("Ace", 0, MINE_STRIKE_ACE("Ace", 2000,
new String[]{"MineStrike.Ace"}, new String[]{"MineStrike.Ace"},
new String[]{"Get the kill on all enemies in a single round"}, new String[]{"Get the kill on all enemies in a single round"},
new int[]{1}, new int[]{1},
AchievementCategory.MINE_STRIKE), AchievementCategory.MINE_STRIKE),
MINE_STRIKE_KABOOM("Kaboom!", 0, MINE_STRIKE_KABOOM("Kaboom!", 1000,
new String[]{"MineStrike.Kaboom"}, new String[]{"MineStrike.Kaboom"},
new String[]{"Kill two people with a single", "High Explosive Grenade"}, new String[]{"Kill two people with a single", "High Explosive Grenade"},
new int[]{1}, new int[]{1},
AchievementCategory.MINE_STRIKE), AchievementCategory.MINE_STRIKE),
MINE_STRIKE_ASSASSINATION("Assassination", 0, MINE_STRIKE_ASSASSINATION("Assassination", 800,
new String[]{"MineStrike.Assassination"}, new String[]{"MineStrike.Assassination"},
new String[]{"Get 20 backstab kills with the knife"}, new String[]{"Get 20 backstab kills with the knife"},
new int[]{20}, new int[]{20},
AchievementCategory.MINE_STRIKE), AchievementCategory.MINE_STRIKE),
MINE_STRIKE_CLUTCH_OR_KICK("Clutch or Kick", 0, MINE_STRIKE_CLUTCH_OR_KICK("Clutch or Kick", 1200,
new String[]{"MineStrike.ClutchOrKick"}, new String[]{"MineStrike.ClutchOrKick"},
new String[]{"Be the last one alive, and kill", "3 or more enemies to achieve victory"}, new String[]{"Be the last one alive, and kill", "3 or more enemies to achieve victory"},
new int[]{1}, new int[]{1},
AchievementCategory.MINE_STRIKE), AchievementCategory.MINE_STRIKE),
MINE_STRIKE_KILLING_SPREE("Killing Spree", 0, MINE_STRIKE_KILLING_SPREE("Killing Spree", 1600,
new String[]{"MineStrike.KillingSpree"}, new String[]{"MineStrike.KillingSpree"},
new String[]{"Kill 4 enemies in a row with no more", "than 5 seconds between each kill"}, new String[]{"Kill 4 enemies in a row with no more", "than 5 seconds between each kill"},
new int[]{1}, new int[]{1},
AchievementCategory.MINE_STRIKE), AchievementCategory.MINE_STRIKE),
MINE_STRIKE_BLINDFOLDED("Blindfolded", 0, MINE_STRIKE_BLINDFOLDED("Blindfolded", 1000,
new String[]{"MineStrike.Blindfolded"}, new String[]{"MineStrike.Blindfolded"},
new String[]{"Kill 2 enemies while blinded from", "a single flashbang"}, new String[]{"Kill 2 enemies while blinded from", "a single flashbang"},
new int[]{1}, new int[]{1},

View File

@ -102,6 +102,7 @@ import mineplex.minecraft.game.core.damage.CustomDamageEvent;
public class HubManager extends MiniClientPlugin<HubClient> public class HubManager extends MiniClientPlugin<HubClient>
{ {
// Snowman!
public HubType Type = HubType.Halloween; public HubType Type = HubType.Halloween;
private BlockRestore _blockRestore; private BlockRestore _blockRestore;

View File

@ -18,6 +18,7 @@ import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
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.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBurnEvent; import org.bukkit.event.block.BlockBurnEvent;
import org.bukkit.event.block.BlockFadeEvent; import org.bukkit.event.block.BlockFadeEvent;
@ -30,6 +31,7 @@ import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.server.ServerListPingEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;

View File

@ -2,6 +2,7 @@ package nautilus.game.arcade.game.games.halloween;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
@ -19,15 +20,18 @@ import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityExplodeEvent;
import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.event.entity.EntityTargetEvent;
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.F;
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.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.common.util.UtilTime.TimeUnit; import mineplex.core.common.util.UtilTime.TimeUnit;
import mineplex.core.recharge.Recharge;
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 mineplex.minecraft.game.core.damage.CustomDamageEvent;
@ -53,6 +57,8 @@ public class Halloween extends SoloGame
private int _maxMobs = 80; private int _maxMobs = 80;
private ArrayList<CreatureBase> _mobs = new ArrayList<CreatureBase>(); private ArrayList<CreatureBase> _mobs = new ArrayList<CreatureBase>();
private HashMap<Player, Long> _damageTime = new HashMap<Player, Long>();
private HashSet<Player> _soundOff = new HashSet<Player>(); private HashSet<Player> _soundOff = new HashSet<Player>();
public long total = 0; public long total = 0;
@ -111,7 +117,7 @@ public class Halloween extends SoloGame
this.PrepareFreeze = false; this.PrepareFreeze = false;
this.HungerSet = 20; //this.HungerSet = 20;
this.WorldBoundaryKill = false; this.WorldBoundaryKill = false;
} }
@ -562,4 +568,85 @@ public class Halloween extends SoloGame
((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet);
} }
} }
private int hungerTick = 0;
@EventHandler
public void Hunger(UpdateEvent event)
{
if (event.getType() != UpdateType.FAST)
return;
if (!IsLive())
return;
if (_mobs.size() < 30)
{
for (Player player : GetPlayers(true))
UtilPlayer.hunger(player, 1);
return;
}
int rate = 4;
if (_mobs.size() > 60)
rate = 3;
if (_mobs.size() > 70)
rate = 2;
if (_mobs.size() >= 80)
rate = 1;
hungerTick = (hungerTick + 1)%rate;
for (Player player : GetPlayers(true))
{
if (_damageTime.containsKey(player))
{
if (!UtilTime.elapsed(_damageTime.get(player), 2000))
continue;
}
player.setSaturation(3f);
player.setExhaustion(0f);
if (player.getFoodLevel() <= 2)
{
if (Recharge.Instance.use(player, "Food Message", 4000, false, false))
UtilPlayer.message(player, F.main("Game", "Attack monsters players to restore hunger!"));
}
if (hungerTick == 0)
{
if (player.getFoodLevel() > 2)
{
UtilPlayer.hunger(player, -1);
}
}
}
}
@EventHandler(priority = EventPriority.MONITOR)
public void HungerRestore(CustomDamageEvent event)
{
if (event.IsCancelled())
return;
if (event.GetDamagerPlayer(true) == null)
return;
if (event.GetDamage() <= 1)
return;
Player damager = event.GetDamagerPlayer(true);
if (damager == null)
return;
if (!Recharge.Instance.use(damager, "Hunger Restore", 100, false, false))
return;
_damageTime.put(damager, System.currentTimeMillis());
if (event.GetCause() == DamageCause.PROJECTILE)
UtilPlayer.hunger(damager, 6);
else
UtilPlayer.hunger(damager, 4);
}
} }

View File

@ -21,8 +21,8 @@ public class MobGhast extends CreatureBase<Ghast>
@Override @Override
public void SpawnCustom(Ghast ent) public void SpawnCustom(Ghast ent)
{ {
ent.setMaxHealth(80); ent.setMaxHealth(55);
ent.setHealth(80); ent.setHealth(55);
ent.setCustomName("Ghast"); ent.setCustomName("Ghast");
} }

View File

@ -118,6 +118,9 @@ public class PumpkinKing extends CreatureBase<Skeleton>
if (event.GetDamagerPlayer(true) == null) if (event.GetDamagerPlayer(true) == null)
event.SetCancelled("Non-Player"); event.SetCancelled("Non-Player");
if (event.GetDamagerPlayer(true) != null)
event.GetDamagerPlayer(true).setFoodLevel(20);
event.SetKnockback(false); event.SetKnockback(false);
} }
@ -137,6 +140,11 @@ public class PumpkinKing extends CreatureBase<Skeleton>
event.SetCancelled("Projectile"); event.SetCancelled("Projectile");
UtilPlayer.message(event.GetDamagerPlayer(true), F.main("Boss", "Projectiles cannot harm " + F.elem("Pumpkin Minions") + "!")); UtilPlayer.message(event.GetDamagerPlayer(true), F.main("Boss", "Projectiles cannot harm " + F.elem("Pumpkin Minions") + "!"));
} }
else
{
if (event.GetDamagerPlayer(true) != null)
event.GetDamagerPlayer(true).setFoodLevel(20);
}
} }
//Attacked Shield //Attacked Shield
else if (_shields.contains(event.GetDamageeEntity())) else if (_shields.contains(event.GetDamageeEntity()))
@ -150,6 +158,9 @@ public class PumpkinKing extends CreatureBase<Skeleton>
if (event.GetDamagerPlayer(true) == null) if (event.GetDamagerPlayer(true) == null)
return; return;
if (event.GetDamagerPlayer(true) != null)
event.GetDamagerPlayer(true).setFoodLevel(20);
//Effect //Effect
Host.Manager.GetBlood().Effects(event.GetDamageeEntity().getLocation(), 10, 0.2, null, 0f, 0f, Material.BLAZE_POWDER, (byte)0, 10, false); Host.Manager.GetBlood().Effects(event.GetDamageeEntity().getLocation(), 10, 0.2, null, 0f, 0f, Material.BLAZE_POWDER, (byte)0, 10, false);

View File

@ -10,7 +10,7 @@ public class Wave5 extends WaveBase
{ {
public Wave5(Halloween host) public Wave5(Halloween host)
{ {
super(host, "Double the Giants! Double the fun!", 80000, host.GetSpawnSet(1), HalloweenAudio.WAVE_5); super(host, "Double the Giants! Double the fun!", 90000, host.GetSpawnSet(1), HalloweenAudio.WAVE_5);
} }
@Override @Override

View File

@ -66,6 +66,12 @@ public class PerkFlameSlam extends Perk
if (!Kit.HasKit(player)) if (!Kit.HasKit(player))
return; return;
if (!UtilEnt.isGrounded(player))
{
UtilPlayer.message(player, F.main("Skill", "You cannot use " + F.skill(GetName()) + " while airborne."));
return;
}
if (!Recharge.Instance.use(player, GetName(), 8000, true, true)) if (!Recharge.Instance.use(player, GetName(), 8000, true, true))
return; return;