Remove Shurikens

This commit is contained in:
Sam 2016-08-11 19:05:13 +01:00
parent 5fd5245978
commit 69fd78bbf2
4 changed files with 6 additions and 259 deletions

View File

@ -24,7 +24,6 @@ import org.bukkit.event.player.PlayerPickupItemEvent;
import org.bukkit.event.vehicle.VehicleDamageEvent;
import org.bukkit.event.vehicle.VehicleEnterEvent;
import org.bukkit.event.vehicle.VehicleEntityCollisionEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.material.MaterialData;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
@ -91,8 +90,6 @@ public class QuiverPayload extends TeamGame
private static final int END_EFFECT_TNT_AMOUNT = 8;
private static final int END_EFFECT_EXPLOSION_RADIUS = 5;
public static final int KIT_NINJA_SHURIKEN_AMOUNT = 15;
public static final String DATA_POINT_MARKER_START = "PINK";
public static final String DATA_POINT_RED = "RED";
public static final String DATA_POINT_BLUE = "BLUE";
@ -229,12 +226,7 @@ public class QuiverPayload extends TeamGame
for (Player player : GetPlayers(true))
{
if (GetKit(player) instanceof KitNewNinja)
{
continue;
}
{
// Give all players a Super Arrow item.
player.getInventory().addItem(Quiver.SUPER_ARROW);
}
@ -766,14 +758,7 @@ public class QuiverPayload extends TeamGame
return;
}
if (GetKit(player) instanceof KitNewNinja)
{
player.getInventory().addItem(getMaxShurikens(player));
}
else
{
player.getInventory().addItem(Quiver.SUPER_ARROW);
}
player.getInventory().addItem(Quiver.SUPER_ARROW);
incrementUltimate(player, ULTIMATE_PERCENTAGE_INCREASE_KILL);
@ -795,11 +780,6 @@ public class QuiverPayload extends TeamGame
}
}
if (GetKit(killed) instanceof KitNewNinja)
{
return;
}
new BukkitRunnable()
{
@ -931,37 +911,6 @@ public class QuiverPayload extends TeamGame
GetScoreboard().GetScoreboard().getTeam(added).addEntry(minecartID);
}
public ItemStack getMaxShurikens(Player player)
{
ItemStack itemStack = KitNewNinja.SHURIKEN.clone();
int toRemove = 0;
for (int i = 0; i < player.getInventory().getSize(); i++)
{
ItemStack itemStack2 = player.getInventory().getItem(i);
if (itemStack2 == null)
{
continue;
}
if (itemStack2.getType().equals(KitNewNinja.SHURIKEN.getType()))
{
toRemove = itemStack2.getAmount();
break;
}
}
itemStack.setAmount(QuiverPayload.KIT_NINJA_SHURIKEN_AMOUNT - toRemove);
if (itemStack.getAmount() == 0)
{
return null;
}
return itemStack;
}
public String getTopBar(int teamACount, int teamBCount)
{
String progress = C.cAqua;

View File

@ -18,7 +18,6 @@ import mineplex.core.common.util.UtilTime;
import nautilus.game.arcade.game.GameTeam;
import nautilus.game.arcade.game.games.quiver.Quiver;
import nautilus.game.arcade.game.games.quiver.QuiverPayload;
import nautilus.game.arcade.game.games.quiver.kits.KitNewNinja;
public class PowerupGenerator
{
@ -109,20 +108,8 @@ public class PowerupGenerator
ItemStack itemStack = Quiver.SUPER_ARROW.clone();
if (Host.GetKit(player) instanceof KitNewNinja)
{
itemStack = Host.getMaxShurikens(player);
}
else
{
itemStack.setAmount(ARROWS_TO_GIVE);
}
if (itemStack == null)
{
return;
}
itemStack.setAmount(ARROWS_TO_GIVE);
player.getInventory().addItem(itemStack);
}

View File

@ -6,24 +6,20 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilServer;
import mineplex.core.itemstack.ItemBuilder;
import nautilus.game.arcade.ArcadeManager;
import nautilus.game.arcade.game.Game.GameState;
import nautilus.game.arcade.game.games.quiver.QuiverPayload;
import nautilus.game.arcade.game.games.quiver.ultimates.UltimateNinja;
import nautilus.game.arcade.kit.KitAvailability;
import nautilus.game.arcade.kit.Perk;
import nautilus.game.arcade.kit.ProgressingKit;
import nautilus.game.arcade.kit.perks.PerkDash;
import nautilus.game.arcade.kit.perks.PerkDoubleJump;
import nautilus.game.arcade.kit.perks.PerkShurikens;
public class KitNewNinja extends ProgressingKit
{
public static final ItemStack SHURIKEN = new ItemBuilder(Material.NETHER_STAR).setTitle(F.item("Shuriken")).build();
private static final String[] DESCRIPTION = {
"Zip zap boing around the map!",
@ -41,37 +37,31 @@ public class KitNewNinja extends ProgressingKit
private static final Perk[][] PERKS = {
{
new PerkDoubleJump(DOUBLE_JUMP, 0.9, 0.9, true),
new PerkShurikens(1000, 4),
new PerkDash(5000, 10, 8),
new PerkDash(5000, 10, 8),
new UltimateNinja(6000)
},
{
new PerkDoubleJump(DOUBLE_JUMP, 0.9, 0.9, true),
new PerkShurikens(1000, 4),
new PerkDash(5000, 10, 8),
new UltimateNinja(6500)
},
{
new PerkDoubleJump(DOUBLE_JUMP, 0.9, 0.9, true),
new PerkShurikens(1000, 4),
new PerkDash(5000, 10, 8),
new UltimateNinja(7000)
},
{
new PerkDoubleJump(DOUBLE_JUMP, 0.9, 0.9, true),
new PerkShurikens(1000, 4),
new PerkDash(5000, 10, 8),
new UltimateNinja(7500)
},
{
new PerkDoubleJump(DOUBLE_JUMP, 0.9, 0.9, true),
new PerkShurikens(1000, 4),
new PerkDash(5000, 10, 8),
new UltimateNinja(8000)
},
{
new PerkDoubleJump(DOUBLE_JUMP, 0.9, 0.9, true),
new PerkShurikens(1000, 4),
new PerkDash(5000, 10, 8),
new UltimateNinja(8500)
}
@ -81,6 +71,7 @@ public class KitNewNinja extends ProgressingKit
private static final ItemStack[] PLAYER_ITEMS = {
new ItemBuilder(Material.GOLD_SWORD).setUnbreakable(true).build(),
new ItemBuilder(Material.BOW).setUnbreakable(true).build(),
};
public KitNewNinja(ArcadeManager manager)
@ -93,11 +84,6 @@ public class KitNewNinja extends ProgressingKit
{
player.getInventory().addItem(PLAYER_ITEMS);
ItemStack itemStack = SHURIKEN.clone();
itemStack.setAmount(QuiverPayload.KIT_NINJA_SHURIKEN_AMOUNT);
player.getInventory().addItem(itemStack);
if (Manager.GetGame().GetState() == GameState.Live)
{
UtilServer.getServer().getScheduler().scheduleSyncDelayedTask(Manager.getPlugin(), () -> UtilInv.Update(player), 10);

View File

@ -1,175 +0,0 @@
package nautilus.game.arcade.kit.perks;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.block.Block;
import org.bukkit.entity.Item;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.scheduler.BukkitRunnable;
import org.bukkit.util.Vector;
import mineplex.core.common.util.UtilInv;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.projectile.IThrown;
import mineplex.core.projectile.ProjectileUser;
import mineplex.core.recharge.Recharge;
import nautilus.game.arcade.game.TeamGame;
import nautilus.game.arcade.game.games.quiver.kits.KitNewNinja;
import nautilus.game.arcade.kit.Perk;
public class PerkShurikens extends Perk implements IThrown
{
private static final float HIT_BOX_GROWTH = 0.5F;
private static final long EXPIRE_TICKS = 80;
private long _cooldown;
private double _damage;
public PerkShurikens(long cooldown, double damage)
{
super("Shurikens", new String[] {});
_cooldown = cooldown;
_damage = damage;
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event)
{
if (event.isCancelled())
{
return;
}
Player player = event.getPlayer();
if (player.getItemInHand() == null)
{
return;
}
if (player.getItemInHand().getType() != KitNewNinja.SHURIKEN.getType())
{
return;
}
if (!Kit.HasKit(player))
{
return;
}
if (!Recharge.Instance.use(player, GetName(), _cooldown, false, true))
{
return;
}
PerkShurikens perkShurikens = this;
Set<Item> shurikens = new HashSet<>();
UtilInv.remove(player, Material.NETHER_STAR, (byte) 0, 3);
new BukkitRunnable()
{
Vector vector = player.getLocation().getDirection().multiply(2);
int thrown = 0;
@Override
public void run()
{
if (thrown < 3)
{
Item item = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), new ItemStack(Material.NETHER_STAR));
item.setVelocity(vector);
shurikens.add(item);
Manager.GetProjectile().AddThrow(item, player, perkShurikens, -1, true, true, true, true, false, HIT_BOX_GROWTH);
thrown++;
}
Iterator<Item> iterator = shurikens.iterator();
while (iterator.hasNext())
{
Item shuriken = iterator.next();
if (!shuriken.isValid() || shuriken.isDead() || shuriken.getTicksLived() > EXPIRE_TICKS)
{
shuriken.remove();
iterator.remove();
continue;
}
shuriken.setVelocity(vector);
}
if (shurikens.isEmpty())
{
cancel();
return;
}
}
}.runTaskTimer(Manager.getPlugin(), 0, 3);
}
@Override
public void Collide(LivingEntity target, Block block, ProjectileUser data)
{
if (target == null)
{
data.getThrown().remove();
return;
}
if (target instanceof Player)
{
if (UtilPlayer.isSpectator(target))
{
return;
}
}
Manager.GetDamage().NewDamageEvent(target, data.getThrower(), null, DamageCause.CUSTOM, _damage, false, false, false, data.getThrower().getName(), GetName());
if (data.getThrower() instanceof Player && target instanceof Player)
{
Player player = (Player) data.getThrower();
Player targetPlayer = (Player) target;
if (Manager.GetGame() instanceof TeamGame)
{
TeamGame game = (TeamGame) Manager.GetGame();
if (game.GetTeam(player).equals(game.GetTeam(targetPlayer)))
{
return;
}
}
player.playSound(player.getLocation(), Sound.CHICKEN_EGG_POP, 1F, 1.2F);
}
data.getThrown().remove();
}
@Override
public void Idle(ProjectileUser data)
{
}
@Override
public void Expire(ProjectileUser data)
{
}
}