snwo fight changes

This commit is contained in:
Cheese 2015-12-07 12:02:53 +11:00
parent 6f16eeead7
commit b2a595b01b
5 changed files with 135 additions and 220 deletions

View File

@ -201,27 +201,29 @@ public class SnowFight extends TeamGame
return; return;
// Item // Item
//
if (!_tiles.containsKey(player)) // if (!_tiles.containsKey(player))
{ // {
_tiles.put(player, 0); // _tiles.put(player, 0);
} // }
//
if (GetKit(player) instanceof KitSportsman) // if (GetKit(player) instanceof KitSportsman)
UtilInv.insert(player, new ItemStack(Material.SNOW_BALL)); // UtilInv.insert(player, new ItemStack(Material.SNOW_BALL));
//
//
int tiles = _tiles.get(player); // int tiles = _tiles.get(player);
_tiles.put(player, tiles + 1); // _tiles.put(player, tiles + 1);
//
if (!(GetKit(player) instanceof KitSportsman)) // if (!(GetKit(player) instanceof KitSportsman))
{ // {
if (_tiles.get(player) == 2) // if (_tiles.get(player) == 2)
{ // {
UtilInv.insert(player, new ItemStack(Material.SNOW_BALL)); // UtilInv.insert(player, new ItemStack(Material.SNOW_BALL));
_tiles.put(player, 0); // _tiles.put(player, 0);
} // }
} // }
UtilInv.insert(player, new ItemStack(Material.SNOW_BALL));
// Snow Height // Snow Height
SnowDecrease(event.getBlock(), 1); SnowDecrease(event.getBlock(), 1);
@ -606,16 +608,19 @@ public class SnowFight extends TeamGame
long time = 1000 * 195 - (System.currentTimeMillis() - this.GetStateTime()); long time = 1000 * 195 - (System.currentTimeMillis() - this.GetStateTime());
if (time > 0) if(IsLive())
{ {
Scoreboard.Write(C.cYellow + C.Bold + "Meteors"); if (time > 0)
if(IsLive()) {
Scoreboard.Write(C.cYellow + C.Bold + "Meteors in");
Scoreboard.Write(UtilTime.MakeStr(time, 0)); Scoreboard.Write(UtilTime.MakeStr(time, 0));
}
else
{
Scoreboard.Write(C.cGold + C.Bold + "Meteors!");
}
} }
else
{
Scoreboard.Write(C.cGold + C.Bold + "Meteors!");
}
Scoreboard.Draw(); Scoreboard.Draw();
} }

View File

@ -1,30 +1,17 @@
package nautilus.game.arcade.game.games.snowfight.kits; package nautilus.game.arcade.game.games.snowfight.kits;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilMath;
import mineplex.core.itemstack.ItemStackFactory; 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.ArcadeManager;
import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.Kit;
import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.KitAvailability;
import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.Perk;
import nautilus.game.arcade.kit.perks.PerkPotionGenerator;
import org.bukkit.Color;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Egg;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType; 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.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.PotionSplashEvent;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.LeatherArmorMeta;
import org.bukkit.potion.Potion;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import org.bukkit.potion.PotionType; import org.bukkit.potion.PotionType;
public class KitMedic extends Kit public class KitMedic extends Kit
@ -36,20 +23,12 @@ public class KitMedic extends Kit
new String[] new String[]
{ {
"To the rescue...!", "Throw warmth potions to heal allies!",
" ",
"Gets 1 Snowball every second tile.",
"Left-Click Snow to pick up Snowballs (Max. 16)",
"Right-Click Snowballs to throw them.",
" ",
"Gets 1 Healing Potion every 32 seconds [max. 1]",
"Slowness II when hit.",
" ",
"Supports all nearby allies with REGENERATION."
}, },
new Perk[] new Perk[]
{ {
new PerkPotionGenerator("Warmth Potions", 30, 1, PotionType.INSTANT_HEAL, true, "Warmth Potion", false)
}, },
EntityType.SKELETON, EntityType.SKELETON,
new ItemStack(Material.POTION)); new ItemStack(Material.POTION));
@ -62,6 +41,8 @@ public class KitMedic extends Kit
{ {
player.getInventory().setItem(2, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP)); player.getInventory().setItem(2, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
player.getInventory().setItem(3, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP)); player.getInventory().setItem(3, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
player.getInventory().setItem(4, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
player.getInventory().setItem(5, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
} }
@Override @Override
@ -72,69 +53,4 @@ public class KitMedic extends Kit
ent.getEquipment().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS)); ent.getEquipment().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS));
ent.getEquipment().setBoots(new ItemStack(Material.LEATHER_BOOTS)); ent.getEquipment().setBoots(new ItemStack(Material.LEATHER_BOOTS));
} }
@EventHandler
public void Aura(UpdateEvent event)
{
if (event.getType() != UpdateType.FAST)
return;
for (Player player : Manager.GetGame().GetPlayers(true))
{
if (!HasKit(player))
continue;
for (Player other : Manager.GetGame().GetPlayers(true))
{
if (other.equals(player))
continue;
if (UtilMath.offset(player, other) > 4)
continue;
if( Manager.GetGame().GetTeam(player).equals(Manager.GetGame().GetTeam(other)))
Manager.GetCondition().Factory().Regen("Aura", other, player, 1.9, 0, false, false, false);
}
}
}
@EventHandler
public void KitItems(UpdateEvent event)
{
if(!Manager.GetGame().IsLive())
return;
if (event.getType() == UpdateType.SLOWEST)
{
for (Player player : Manager.GetGame().GetPlayers(true))
{
if (!HasKit(player))
continue;
Potion potion = new Potion(PotionType.INSTANT_HEAL);
potion.setSplash(true);
player.getInventory().setItem(1, potion.toItemStack(1));
}
}
}
@EventHandler
public void Splash(PotionSplashEvent event)
{
if(event.getEntity().getShooter() instanceof Player)
{
if(!HasKit((Player) event.getEntity().getShooter()))
return;
for(Entity entity : event.getAffectedEntities())
{
if(entity instanceof Player)
{
Manager.GetCondition().Factory().Slow("Heal Potion", (Player)entity, (Player)event.getEntity().getShooter(), 5.0, 1, false, false, false, false);
}
}
}
}
} }

View File

@ -19,6 +19,7 @@ import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.Kit;
import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.KitAvailability;
import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.Perk;
import nautilus.game.arcade.kit.perks.PerkDoubleJump;
import nautilus.game.arcade.kit.perks.PerkFallDamage; import nautilus.game.arcade.kit.perks.PerkFallDamage;
public class KitSportsman extends Kit public class KitSportsman extends Kit
@ -31,17 +32,13 @@ public class KitSportsman extends Kit
new String[] new String[]
{ {
"Trained to be the fastest on snow and ice.", "Trained to be the fastest on snow and ice.",
"",
"Gets 1 Snowball every tile",
"Left-Click Snow to pick up Snowballs (Max. 16)",
"Right-Click Snowballs to throw them.",
"",
"Supports all nearby allies with SPEED."
}, },
new Perk[] new Perk[]
{ {
new PerkFallDamage(3) new PerkDoubleJump("Snow Jump", 1, 0.8, true, 8000, true),
new PerkFallDamage(2),
}, },
EntityType.SKELETON, EntityType.SKELETON,
new ItemStack(Material.SNOW_BALL)); new ItemStack(Material.SNOW_BALL));
@ -53,6 +50,8 @@ public class KitSportsman extends Kit
{ {
player.getInventory().setItem(2, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP)); player.getInventory().setItem(2, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
player.getInventory().setItem(3, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP)); player.getInventory().setItem(3, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
player.getInventory().setItem(4, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
player.getInventory().setItem(5, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
} }
@Override @Override
@ -63,30 +62,4 @@ public class KitSportsman extends Kit
ent.getEquipment().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS)); ent.getEquipment().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS));
ent.getEquipment().setBoots(new ItemStack(Material.LEATHER_BOOTS)); ent.getEquipment().setBoots(new ItemStack(Material.LEATHER_BOOTS));
} }
@EventHandler
public void Aura(UpdateEvent event)
{
if (event.getType() != UpdateType.FAST)
return;
for (Player player : Manager.GetGame().GetPlayers(true))
{
if (!HasKit(player))
continue;
for (Player other : Manager.GetGame().GetPlayers(true))
{
if (other.equals(player))
continue;
if (UtilMath.offset(player, other) > 4)
continue;
if( Manager.GetGame().GetTeam(player).equals(Manager.GetGame().GetTeam(other)))
Manager.GetCondition().Factory().Speed("Aura", other, player, 1.9, 0, false, false, false);
}
}
}
} }

View File

@ -1,27 +1,18 @@
package nautilus.game.arcade.game.games.snowfight.kits; package nautilus.game.arcade.game.games.snowfight.kits;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilMath;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.itemstack.ItemStackFactory; import mineplex.core.itemstack.ItemStackFactory;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import mineplex.minecraft.game.core.condition.Condition.ConditionType;
import nautilus.game.arcade.ArcadeManager; import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.kit.Kit; import nautilus.game.arcade.kit.Kit;
import nautilus.game.arcade.kit.KitAvailability; import nautilus.game.arcade.kit.KitAvailability;
import nautilus.game.arcade.kit.Perk; import nautilus.game.arcade.kit.Perk;
import nautilus.game.arcade.kit.perks.PerkFallDamage; import nautilus.game.arcade.kit.perks.PerkConstructor;
import nautilus.game.arcade.kit.perks.PerkIronSkin;
import org.bukkit.Color;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.EntityType; 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.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.LeatherArmorMeta;
import org.bukkit.potion.PotionType;
public class KitTactician extends Kit public class KitTactician extends Kit
{ {
@ -32,18 +23,11 @@ public class KitTactician extends Kit
new String[] new String[]
{ {
"No Snowfight is complete without a tactical game!", "No Snowfight is complete without a tactical game!",
" ",
"Gets 1 Snowball every second tile.",
"Left-Click Snow to pick up Snowballs (Max. 16)",
"Right-Click Snowballs to throw them.",
" ",
"Gets 1 Barrier every 32 seconds [max. 2]",
"Place Barriers to improve your defense.",
"You cant place Barriers above Ice, Packed Ice or Fences.",
" ",
"Supports all nearby allies with RESISTANCE."
}, new Perk[] }, new Perk[]
{ {
new PerkConstructor("Barrier", 30, 1, Material.FENCE, "Warmth Potion", false),
new PerkIronSkin(0.25)
}, },
EntityType.SKELETON, EntityType.SKELETON,
new ItemStack(Material.FENCE)); new ItemStack(Material.FENCE));
@ -55,6 +39,8 @@ public class KitTactician extends Kit
{ {
player.getInventory().setItem(2, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP)); player.getInventory().setItem(2, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
player.getInventory().setItem(3, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP)); player.getInventory().setItem(3, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
player.getInventory().setItem(4, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
player.getInventory().setItem(5, ItemStackFactory.Instance.CreateStack(Material.MUSHROOM_SOUP));
player.getInventory().setItem(7, ItemStackFactory.Instance.CreateStack(Material.COMPASS.getId(), (byte) 0, 1, "§a§lTracking Compass")); player.getInventory().setItem(7, ItemStackFactory.Instance.CreateStack(Material.COMPASS.getId(), (byte) 0, 1, "§a§lTracking Compass"));
} }
@ -66,53 +52,4 @@ public class KitTactician extends Kit
ent.getEquipment().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS)); ent.getEquipment().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS));
ent.getEquipment().setBoots(new ItemStack(Material.LEATHER_BOOTS)); ent.getEquipment().setBoots(new ItemStack(Material.LEATHER_BOOTS));
} }
@EventHandler
public void Aura(UpdateEvent event)
{
if (event.getType() != UpdateType.FAST)
return;
for (Player player : Manager.GetGame().GetPlayers(true))
{
if (!HasKit(player))
continue;
for (Player other : Manager.GetGame().GetPlayers(true))
{
if (other.equals(player))
continue;
if (UtilMath.offset(player, other) > 4)
continue;
if( Manager.GetGame().GetTeam(player).equals(Manager.GetGame().GetTeam(other)))
Manager.GetCondition().Factory().Protection("Aura", other, player, 1.9, 0, false, false, false);
}
}
}
@EventHandler
public void KitItems(UpdateEvent event)
{
if(!Manager.GetGame().IsLive())
return;
if (event.getType() == UpdateType.SLOWEST)
{
for (Player player : Manager.GetGame().GetPlayers(true))
{
if (!HasKit(player))
continue;
int amount = 0;
if (player.getInventory().getItem(1) != null && UtilInv.contains(player, Material.FENCE, (byte) 0, 1))
amount = 2;
else
amount = 1;
player.getInventory().setItem(1, ItemStackFactory.Instance.CreateStack(Material.FENCE, (byte) 0, amount, "Barrier"));
}
}
}
} }

View File

@ -0,0 +1,84 @@
package nautilus.game.arcade.kit.perks;
import mineplex.core.common.util.C;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilServer;
import mineplex.core.recharge.Recharge;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import nautilus.game.arcade.kit.Perk;
import nautilus.game.arcade.kit.perks.event.PerkConstructorEvent;
import org.bukkit.Bukkit;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.potion.Potion;
import org.bukkit.potion.PotionType;
public class PerkPotionGenerator extends Perk
{
private int _max = 0;
private double _time = 0;
private PotionType _type;
private boolean _splash;
private String _name;
public PerkPotionGenerator(String perkName, double time, int max, PotionType type, boolean splash, String name, boolean visible)
{
super(perkName, new String[]
{
C.cGray + "Receive 1 " + name + " every " + time + " seconds. Maximum of " + max + ".",
}, visible);
_time = time;
_splash = splash;
_name = name;
}
@EventHandler
public void Construct(UpdateEvent event)
{
if (event.getType() != UpdateType.FAST)
return;
for (Player cur : UtilServer.getPlayers())
{
if (!Kit.HasKit(cur))
continue;
if (!Manager.GetGame().IsAlive(cur))
continue;
if (Manager.isSpectator(cur))
continue;
if (!Recharge.Instance.use(cur, GetName(), (long) (_time * 1000), false, false))
continue;
Potion potion = new Potion(_type);
potion.setSplash(_splash);
ItemStack stack = potion.toItemStack(1);
ItemMeta meta = stack.getItemMeta();
meta.setDisplayName(_name);
if (UtilInv.contains(cur, stack.getType(), (byte)0, _max))
continue;
PerkConstructorEvent cE = new PerkConstructorEvent(cur);
Bukkit.getServer().getPluginManager().callEvent(cE);
if (cE.isCancelled())
continue;
//Add
cur.getInventory().addItem(stack);
cur.playSound(cur.getLocation(), Sound.ITEM_PICKUP, 2f, 1f);
}
}
}