smash balance
This commit is contained in:
parent
1417d31b73
commit
d9142ac33f
@ -434,10 +434,23 @@ public class UtilEnt
|
||||
|
||||
LivingEntity ent = (LivingEntity)cur;
|
||||
|
||||
//Feet
|
||||
double offset = UtilMath.offset(loc, ent.getLocation());
|
||||
|
||||
if (offset < dR)
|
||||
{
|
||||
ents.put(ent, 1 - (offset/dR));
|
||||
continue;
|
||||
}
|
||||
|
||||
//Eyes
|
||||
offset = UtilMath.offset(loc, ent.getEyeLocation());
|
||||
|
||||
if (offset < dR)
|
||||
{
|
||||
ents.put(ent, 1 - (offset/dR));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
return ents;
|
||||
|
@ -36,7 +36,7 @@ public class StaticLazer extends SkillChargeSword
|
||||
{
|
||||
super(skills, name, classType, skillType, cost, maxLevel,
|
||||
0.012f, 0.004f,
|
||||
12000, -1000, true, true,
|
||||
16000, -1000, true, true,
|
||||
false, true);
|
||||
|
||||
SetDesc(new String[]
|
||||
@ -48,24 +48,25 @@ public class StaticLazer extends SkillChargeSword
|
||||
"Taking damage cancels charge.",
|
||||
"",
|
||||
"Deals #6#1 damage and travels up to",
|
||||
"#20#10 blocks.",
|
||||
"#20#10 blocks, but loses 1 damage",
|
||||
"per 20 blocks travelled.",
|
||||
});
|
||||
|
||||
_fireOnFull = false;
|
||||
_energyPerCharge = 1.2f;
|
||||
_energyPerCharge = 2.4f;
|
||||
setAchievementSkill(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetRechargeString()
|
||||
{
|
||||
return "Recharge: " + "#12#-1 Seconds";
|
||||
return "Recharge: " + "#16#-1 Seconds";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String GetEnergyString()
|
||||
{
|
||||
return "Energy: " + "24 per Second";
|
||||
return "Energy: " + "48 per Second";
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -82,7 +83,7 @@ public class StaticLazer extends SkillChargeSword
|
||||
Location newTarget = player.getEyeLocation().add(player.getLocation().getDirection().multiply(curRange));
|
||||
|
||||
//Hit Player
|
||||
HashMap<LivingEntity, Double> hits = UtilEnt.getInRadius(newTarget, 2);
|
||||
HashMap<LivingEntity, Double> hits = UtilEnt.getInRadius(newTarget, 1.25);
|
||||
hits.remove(player);
|
||||
if (!hits.isEmpty())
|
||||
break;
|
||||
@ -116,7 +117,7 @@ public class StaticLazer extends SkillChargeSword
|
||||
|
||||
//Damage Event
|
||||
Factory.Damage().NewDamageEvent(other, player, null,
|
||||
DamageCause.CUSTOM, 6 + level * charge, true, true, false,
|
||||
DamageCause.CUSTOM, 2 + ((4 + level) * charge) - (curRange * 0.05), true, true, false,
|
||||
player.getName(), GetName());
|
||||
|
||||
}
|
||||
|
@ -42,9 +42,9 @@ public class Fire extends MiniPlugin
|
||||
_damageManager = damageManager;
|
||||
}
|
||||
|
||||
public void Add(Item item, LivingEntity owner, double expireTime, double delayTime, double burnTime, double d, String skillName)
|
||||
public void Add(Item item, LivingEntity owner, double expireTime, double delayTime, double burnTime, double damage, String skillName)
|
||||
{
|
||||
_fire.put(item, new FireData(owner, expireTime, delayTime, burnTime, d, skillName));
|
||||
_fire.put(item, new FireData(owner, expireTime, delayTime, burnTime, damage, skillName));
|
||||
item.setPickupDelay(0);
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ public class KitChicken extends SmashKit
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkSmashStats(4, 2.0, 0.1, 1.5),
|
||||
new PerkSmashStats(4, 2.0, 0.15, 2),
|
||||
new PerkFlap(0.8, 0.8, false),
|
||||
new PerkEggGun(),
|
||||
new PerkChickenRocket()
|
||||
@ -89,7 +89,7 @@ public class KitChicken extends SmashKit
|
||||
ChatColor.RESET + "while also gaining permanant flight.",
|
||||
}));
|
||||
|
||||
player.getInventory().setChestplate(ItemStackFactory.Instance.CreateStack(Material.LEATHER_CHESTPLATE));
|
||||
player.getInventory().setChestplate(ItemStackFactory.Instance.CreateStack(Material.CHAINMAIL_CHESTPLATE));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -21,6 +21,7 @@ import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
import nautilus.game.arcade.ArcadeManager;
|
||||
import nautilus.game.arcade.game.Game.GameState;
|
||||
import nautilus.game.arcade.game.games.smash.perks.PerkEndermanTeleport;
|
||||
import nautilus.game.arcade.kit.KitAvailability;
|
||||
import nautilus.game.arcade.kit.Perk;
|
||||
import nautilus.game.arcade.kit.SmashKit;
|
||||
@ -50,6 +51,7 @@ public class KitEnderman extends SmashKit
|
||||
new PerkDoubleJump("Double Jump", 0.9, 0.9, false),
|
||||
new PerkBlink("Blink", 16, 6000),
|
||||
new PerkBlockToss(),
|
||||
new PerkEndermanTeleport(),
|
||||
new PerkEndermanDragon()
|
||||
},
|
||||
EntityType.ENDERMAN,
|
||||
|
@ -30,7 +30,7 @@ public class KitGolem extends SmashKit
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkSmashStats(7, 1.0, 0.25, 8),
|
||||
new PerkSmashStats(7, 1.0, 0.2, 8),
|
||||
new PerkDoubleJump("Double Jump", 0.9, 0.9, false),
|
||||
new PerkSlow(0),
|
||||
new PerkFissure(),
|
||||
|
@ -30,7 +30,7 @@ public class KitMagmaCube extends SmashKit
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkSmashStats(5, 1.75, 0.4, 5),
|
||||
new PerkSmashStats(5, 1.75, 0.35, 5),
|
||||
new PerkDoubleJump("Double Jump", 1.2, 1, false),
|
||||
new PerkMagmaBoost(),
|
||||
new PerkMagmaBlast(),
|
||||
|
@ -37,7 +37,7 @@ public class KitPig extends SmashKit
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkSmashStats(5, 1.7, 0.25, 5),
|
||||
new PerkSmashStats(5, 1.5, 0.25, 5),
|
||||
new PerkDoubleJump("Double Jump", 0.9, 0.9, false),
|
||||
new PerkPigBaconBounce(),
|
||||
new PerkPigBaconBomb(),
|
||||
|
@ -36,7 +36,7 @@ public class KitSkeletalHorse extends SmashKit
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkSmashStats(6, 1.4, 0.35, 6),
|
||||
new PerkSmashStats(6, 1.4, 0.3, 6),
|
||||
new PerkDoubleJump("Double Jump", 1, 1, false),
|
||||
new PerkHorseKick(),
|
||||
new PerkBoneRush(),
|
||||
@ -45,7 +45,7 @@ public class KitSkeletalHorse extends SmashKit
|
||||
},
|
||||
EntityType.HORSE,
|
||||
new ItemStack(Material.BONE),
|
||||
"Bone Storm", 24000, Sound.HORSE_SKELETON_DEATH);
|
||||
"Bone Storm", 20000, Sound.HORSE_SKELETON_DEATH);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -37,10 +37,10 @@ public class KitSkeleton extends SmashKit
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkSmashStats(5, 1.25, 0.20, 6),
|
||||
new PerkSmashStats(5, 1.25, 0.15, 6),
|
||||
new PerkDoubleJump("Double Jump", 0.9, 0.9, false),
|
||||
new PerkFletcher(2, 4, false),
|
||||
new PerkKnockbackArrow(1.75),
|
||||
new PerkFletcher(3, 3, false),
|
||||
new PerkKnockbackArrow(1.5),
|
||||
new PerkBoneExplosion(),
|
||||
new PerkRopedArrow("Roped Arrow", 1, 5000),
|
||||
new PerkBarrage(5, 300, true, false, true),
|
||||
|
@ -46,7 +46,7 @@ public class KitSlime extends SmashKit
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkSmashStats(6, 1.75, 0.35, 3),
|
||||
new PerkSmashStats(6, 1.75, 0.5, 3),
|
||||
new PerkDoubleJump("Double Jump", 1.2, 1, false),
|
||||
new PerkSlimeSlam(),
|
||||
new PerkSlimeRocket(),
|
||||
@ -142,7 +142,7 @@ public class KitSlime extends SmashKit
|
||||
|
||||
player.setExp(0.99f);
|
||||
|
||||
Manager.GetCondition().Factory().Speed("Giga Slime", player, player, 20, 1, false, false, false);
|
||||
Manager.GetCondition().Factory().Speed("Giga Slime", player, player, 20, 2, false, false, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -92,8 +92,8 @@ public class KitSnowman extends SmashKit
|
||||
new String[]
|
||||
{
|
||||
ChatColor.RESET + "Creates a field of snow around you",
|
||||
ChatColor.RESET + "granting 150% damage to opponents",
|
||||
ChatColor.RESET + "who are standing on it.",
|
||||
ChatColor.RESET + "granting +1 damage and 60% knockback",
|
||||
ChatColor.RESET + "to opponents standing on it.",
|
||||
ChatColor.RESET + "",
|
||||
ChatColor.RESET + "Your aura shrinks on low energy.",
|
||||
}));
|
||||
|
@ -34,7 +34,7 @@ public class KitSpider extends SmashKit
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkSmashStats(7, 1.5, 0.3, 6),
|
||||
new PerkSmashStats(6, 1.5, 0.25, 6),
|
||||
new PerkSpiderLeap(),
|
||||
new PerkNeedler(),
|
||||
new PerkWebShot(),
|
||||
|
@ -34,7 +34,7 @@ public class KitWolf extends SmashKit
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkSmashStats(5, 1.6, 0.3, 4.5),
|
||||
new PerkSmashStats(5, 1.6, 0.25, 4.5),
|
||||
new PerkDoubleJump("Wolf Jump", 1.0, 1.0, true),
|
||||
new PerkWolf(),
|
||||
},
|
||||
|
@ -37,7 +37,7 @@ public class KitZombie extends SmashKit
|
||||
|
||||
new Perk[]
|
||||
{
|
||||
new PerkSmashStats(6, 1.25, 0.3, 4.5),
|
||||
new PerkSmashStats(6, 1.25, 0.25, 5),
|
||||
new PerkDoubleJump("Double Jump", 0.9, 0.9, false),
|
||||
new PerkFletcher(2, 2, false),
|
||||
new PerkKnockbackArrow(1.5),
|
||||
@ -66,7 +66,7 @@ public class KitZombie extends SmashKit
|
||||
}));
|
||||
|
||||
player.getInventory().addItem(ItemStackFactory.Instance.CreateStack(Material.BOW, (byte)0, 1,
|
||||
C.cYellow + C.Bold + "Right-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Deaths Grasp",
|
||||
C.cYellow + C.Bold + "Left-Click" + C.cWhite + C.Bold + " - " + C.cGreen + C.Bold + "Deaths Grasp",
|
||||
new String[]
|
||||
{
|
||||
ChatColor.RESET + "Leap forwards. If you collide with an ",
|
||||
@ -99,6 +99,7 @@ public class KitZombie extends SmashKit
|
||||
|
||||
player.getInventory().setChestplate(ItemStackFactory.Instance.CreateStack(Material.CHAINMAIL_CHESTPLATE));
|
||||
player.getInventory().setLeggings(ItemStackFactory.Instance.CreateStack(Material.CHAINMAIL_LEGGINGS));
|
||||
player.getInventory().setBoots(ItemStackFactory.Instance.CreateStack(Material.CHAINMAIL_BOOTS));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -0,0 +1,118 @@
|
||||
package nautilus.game.arcade.game.games.smash.perks;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilTextMiddle;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.recharge.Recharge;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
import nautilus.game.arcade.kit.SmashPerk;
|
||||
|
||||
public class PerkEndermanTeleport extends SmashPerk
|
||||
{
|
||||
private HashMap<Player, Block> _target = new HashMap<Player, Block>();
|
||||
private HashMap<Player, Float> _charge = new HashMap<Player, Float>();
|
||||
|
||||
public PerkEndermanTeleport()
|
||||
{
|
||||
super("Teleport", new String[]
|
||||
{
|
||||
C.cYellow + "Hold Sneak" + C.cGray + " to " + C.cGreen + "Teleport"
|
||||
});
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void update(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.TICK)
|
||||
return;
|
||||
|
||||
for (Player player : UtilServer.getPlayers())
|
||||
{
|
||||
if (!Kit.HasKit(player))
|
||||
continue;
|
||||
|
||||
if (!player.isSneaking() || !Recharge.Instance.usable(player, GetName()))
|
||||
{
|
||||
_target.remove(player);
|
||||
_charge.remove(player);
|
||||
continue;
|
||||
}
|
||||
|
||||
Block block = player.getTargetBlock(null, 200);
|
||||
|
||||
if (!_target.containsKey(player) || !_charge.containsKey(player))
|
||||
{
|
||||
if (block == null || block.getType() == Material.AIR)
|
||||
continue;
|
||||
|
||||
_target.put(player, block);
|
||||
_charge.put(player, 0f);
|
||||
}
|
||||
|
||||
//Invalid Block - End
|
||||
if (block == null || block.getType() == Material.AIR)
|
||||
{
|
||||
_target.remove(player);
|
||||
_charge.remove(player);
|
||||
}
|
||||
//Same Block - Increase Charge
|
||||
else if (block.equals(_target.get(player)))
|
||||
{
|
||||
_charge.put(player, _charge.get(player) + 0.015f);
|
||||
|
||||
UtilTextMiddle.display(null, UtilTextMiddle.progress(_charge.get(player)), 0, 10, 10, player);
|
||||
|
||||
if (_charge.get(player) >= 1f)
|
||||
{
|
||||
UtilTextMiddle.display(null, C.cGreen + "Teleported", 0, 10, 10, player);
|
||||
Recharge.Instance.useForce(player, GetName(), 5000);
|
||||
|
||||
while (block.getRelative(BlockFace.UP).getType() != Material.AIR)
|
||||
{
|
||||
block = block.getRelative(BlockFace.UP);
|
||||
}
|
||||
|
||||
player.playSound(player.getLocation(), Sound.ENDERMAN_TELEPORT, 1f, 0.5f);
|
||||
player.teleport(block.getLocation().add(0.5, 1, 0.5));
|
||||
player.playSound(player.getLocation(), Sound.ENDERMAN_TELEPORT, 1f, 0.5f);
|
||||
|
||||
UtilParticle.PlayParticle(ParticleType.WITCH_MAGIC, player.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0.1f, 100, ViewDist.LONG, UtilServer.getPlayers());
|
||||
}
|
||||
else
|
||||
{
|
||||
player.playSound(player.getLocation(), Sound.ENDERMAN_TELEPORT, 1f, 1f + _charge.get(player));
|
||||
UtilParticle.PlayParticle(ParticleType.WITCH_MAGIC, player.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0.05f, 10, ViewDist.LONG, UtilServer.getPlayers());
|
||||
}
|
||||
}
|
||||
//New Block - Reset
|
||||
else
|
||||
{
|
||||
_target.put(player, block);
|
||||
_charge.put(player, 0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void clean(PlayerQuitEvent event)
|
||||
{
|
||||
_target.remove(event.getPlayer());
|
||||
_charge.remove(event.getPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -47,17 +47,6 @@ public class PerkArcticAura extends Perk
|
||||
//Snow
|
||||
Manager.GetBlockRestore().Snow(block, (byte)1, (byte)1, (long)(duration * (1 + blocks.get(block))), 250, 0);
|
||||
}
|
||||
|
||||
for (Player other : Manager.GetGame().GetPlayers(true))
|
||||
{
|
||||
if (other.equals(player))
|
||||
continue;
|
||||
|
||||
if (UtilMath.offset(player, other) > range)
|
||||
continue;
|
||||
|
||||
Manager.GetCondition().Factory().Slow("Aura Slow", other, player, 0.9, 0, false, false, false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -166,7 +166,7 @@ public class PerkBatForm extends SmashPerk
|
||||
}
|
||||
|
||||
//Move
|
||||
data.Location.add(data.Direction.clone().multiply(0.75));
|
||||
data.Location.add(data.Direction.clone().multiply(1));
|
||||
|
||||
//Effect
|
||||
UtilParticle.PlayParticle(ParticleType.LARGE_EXPLODE, data.Location, 0, 0, 0, 0, 1,
|
||||
@ -186,6 +186,9 @@ public class PerkBatForm extends SmashPerk
|
||||
HashMap<LivingEntity, Double> targets = UtilEnt.getInRadius(data.Location, 10);
|
||||
for (LivingEntity cur : targets.keySet())
|
||||
{
|
||||
if (cur.equals(data.Shooter))
|
||||
continue;
|
||||
|
||||
Manager.GetDamage().NewDamageEvent(cur, data.Shooter, null,
|
||||
DamageCause.CUSTOM, 12 * targets.get(cur) + 0.5, true, false, false,
|
||||
data.Shooter.getName(), GetName());
|
||||
|
@ -3,6 +3,7 @@ package nautilus.game.arcade.kit.perks;
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.Effect;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.FireworkEffect.Type;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.BlockFace;
|
||||
@ -104,7 +105,9 @@ public class PerkBlink extends SmashPerk
|
||||
//Firework
|
||||
UtilFirework.playFirework(player.getEyeLocation(), Type.BALL, Color.BLACK, false, false);
|
||||
|
||||
player.playSound(player.getLocation(), Sound.ENDERMAN_TELEPORT, 1f, 1f);
|
||||
player.teleport(loc);
|
||||
player.playSound(player.getLocation(), Sound.ENDERMAN_TELEPORT, 1f, 1f);
|
||||
|
||||
//Firework
|
||||
UtilFirework.playFirework(player.getEyeLocation(), Type.BALL, Color.BLACK, false, false);
|
||||
|
@ -15,6 +15,7 @@ import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilEvent.ActionType;
|
||||
import mineplex.core.projectile.IThrown;
|
||||
import mineplex.core.projectile.ProjectileUser;
|
||||
import mineplex.core.recharge.Recharge;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
||||
@ -75,6 +76,9 @@ public class PerkBlockToss extends SmashPerk implements IThrown
|
||||
if (UtilBlock.usable(grab))
|
||||
return;
|
||||
|
||||
if (!Recharge.Instance.usable(player, GetName()))
|
||||
return;
|
||||
|
||||
if (!UtilBlock.airFoliage(grab.getRelative(BlockFace.UP)) || Manager.GetBlockRestore().Contains(grab.getRelative(BlockFace.UP)))
|
||||
{
|
||||
UtilPlayer.message(player, F.main("Game", "You can only pick up blocks with Air above them."));
|
||||
@ -126,6 +130,9 @@ public class PerkBlockToss extends SmashPerk implements IThrown
|
||||
|
||||
for (Player cur : throwSet)
|
||||
{
|
||||
Recharge.Instance.recharge(cur, GetName());
|
||||
Recharge.Instance.use(cur, GetName(), 2000, false, true);
|
||||
|
||||
BlockTossData data = _hold.remove(cur);
|
||||
|
||||
FallingBlock block = cur.getWorld().spawnFallingBlock(cur.getEyeLocation().add(cur.getLocation().getDirection()), data.Type, data.Data);
|
||||
|
@ -57,7 +57,7 @@ public class PerkBoneExplosion extends SmashPerk
|
||||
if (!Recharge.Instance.use(player, GetName(), 10000, true, true))
|
||||
return;
|
||||
|
||||
HashMap<Player, Double> nearby = UtilPlayer.getInRadius(player.getLocation(), 10);
|
||||
HashMap<Player, Double> nearby = UtilPlayer.getInRadius(player.getLocation(), 7);
|
||||
for (Player other : nearby.keySet())
|
||||
{
|
||||
if (player.equals(other))
|
||||
|
@ -55,6 +55,8 @@ public class PerkCreeperElectricity extends Perk
|
||||
|
||||
SetPowered(damagee, true);
|
||||
|
||||
Manager.GetCondition().Factory().Speed(GetName(), damagee, damagee, 4, 1, false, false, false);
|
||||
|
||||
//Sound
|
||||
damagee.getWorld().playSound(damagee.getLocation(), Sound.CREEPER_HISS, 3f, 1.25f);
|
||||
|
||||
|
@ -106,6 +106,6 @@ public class PerkDeadlyBones extends SmashPerk
|
||||
if (event.GetReason() == null || !event.GetReason().contains(GetName()))
|
||||
return;
|
||||
|
||||
event.AddKnockback(GetName(), 3);
|
||||
event.AddKnockback(GetName(), 2.5);
|
||||
}
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ public class PerkDeathsGrasp extends Perk
|
||||
{
|
||||
super("Deaths Grasp", new String[]
|
||||
{
|
||||
C.cYellow + "Right-Click" + C.cGray + " with Axe to use " + C.cGreen + "Deaths Grasp",
|
||||
C.cYellow + "Left-Click" + C.cGray + " with Bow to use " + C.cGreen + "Deaths Grasp",
|
||||
C.cGray + "+100% Arrow Damage to enemies thrown by Deaths Grasp"
|
||||
});
|
||||
}
|
||||
@ -143,7 +143,7 @@ public class PerkDeathsGrasp extends Perk
|
||||
DamageCause.CUSTOM, 6, false, true, false,
|
||||
damager.getName(), GetName());
|
||||
|
||||
UtilAction.velocity(damagee, UtilAlg.getTrajectory(damagee, damager), 1.8, false, 0, 1, 1.8, true);
|
||||
UtilAction.velocity(damagee, UtilAlg.getTrajectory2d(damagee, damager), 1.6, false, 0, 1.2, 1.8, true);
|
||||
|
||||
UtilAction.zeroVelocity(damager);
|
||||
|
||||
@ -156,6 +156,7 @@ public class PerkDeathsGrasp extends Perk
|
||||
UtilPlayer.message(damagee, F.main("Game", F.name(damager.getName()) + " hit you with " + F.skill(GetName()) + "."));
|
||||
|
||||
Recharge.Instance.recharge(damager, GetName());
|
||||
Recharge.Instance.use(damager, GetName(), 2000, true, true);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
|
@ -20,6 +20,10 @@ import mineplex.core.common.util.F;
|
||||
import mineplex.core.common.util.UtilAction;
|
||||
import mineplex.core.common.util.UtilBlock;
|
||||
import mineplex.core.common.util.UtilFirework;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilTime;
|
||||
import mineplex.core.recharge.Recharge;
|
||||
@ -89,7 +93,7 @@ public class PerkFirefly extends SmashPerk
|
||||
if (event.getType() != UpdateType.TICK)
|
||||
return;
|
||||
|
||||
_tick = (_tick + 1)%3;
|
||||
_tick = (_tick + 1)%1000;
|
||||
|
||||
Iterator<FireflyData> dataIterator = _data.iterator();
|
||||
|
||||
@ -106,26 +110,35 @@ public class PerkFirefly extends SmashPerk
|
||||
data.Player.getWorld().playSound(data.Player.getLocation(), Sound.EXPLODE, 0.2f, 0.6f);
|
||||
data.Location = data.Player.getLocation();
|
||||
|
||||
if (_tick == 0)
|
||||
{
|
||||
//Firework
|
||||
UtilFirework.playFirework(data.Player.getLocation().add(0, 0.6, 0), Type.BURST, Color.ORANGE, false, false);
|
||||
}
|
||||
//Sound and Effect
|
||||
UtilParticle.PlayParticle(ParticleType.FIREWORKS_SPARK, data.Player.getLocation().add(0, 1, 0), 0.6f, 0.6f, 0.6f, 0, 10, ViewDist.LONG, UtilServer.getPlayers());
|
||||
|
||||
float progress = (float)(System.currentTimeMillis()-data.Time)/1500f;
|
||||
|
||||
data.Player.getWorld().playSound(data.Player.getLocation(), Sound.BLAZE_BREATH, 0.5f, 1f + progress);
|
||||
}
|
||||
//Velocity
|
||||
else if (!UtilTime.elapsed(data.Time, 2500) || superActive)
|
||||
else if (!UtilTime.elapsed(data.Time, 2750) || superActive)
|
||||
{
|
||||
UtilAction.velocity(data.Player, data.Player.getLocation().getDirection().multiply(superActive ? 0.9 : 0.7).add(new Vector(0,0.15,0)));
|
||||
data.Player.getWorld().playSound(data.Player.getLocation(), Sound.EXPLODE, 0.6f, 1.2f);
|
||||
|
||||
if (_tick == 0)
|
||||
//Sound and Effect
|
||||
if (!isSuperActive(data.Player))
|
||||
{
|
||||
//Firework
|
||||
UtilFirework.playFirework(data.Player.getLocation().add(0, 0.6, 0), isSuperActive(data.Player) ? Type.BALL : Type.BURST, Color.RED, false, superActive);
|
||||
UtilParticle.PlayParticle(ParticleType.FLAME, data.Player.getLocation().add(0, 1, 0), 0.6f, 0.6f, 0.6f, 0, 40, ViewDist.LONG, UtilServer.getPlayers());
|
||||
|
||||
data.Player.getWorld().playSound(data.Player.getLocation(), Sound.EXPLODE, 0.5f, 1.25f);
|
||||
}
|
||||
else
|
||||
{
|
||||
UtilParticle.PlayParticle(ParticleType.FLAME, data.Player.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0, 60, ViewDist.LONG, UtilServer.getPlayers());
|
||||
UtilParticle.PlayParticle(ParticleType.LAVA, data.Player.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0, 40, ViewDist.LONG, UtilServer.getPlayers());
|
||||
|
||||
data.Player.getWorld().playSound(data.Player.getLocation(), Sound.EXPLODE, 0.75f, 0.75f);
|
||||
}
|
||||
|
||||
for (Player other : UtilPlayer.getNearby(data.Player.getLocation(), isSuperActive(data.Player) ? 6 : 4))
|
||||
for (Player other : UtilPlayer.getNearby(data.Player.getLocation(), isSuperActive(data.Player) ? 7 : 4))
|
||||
{
|
||||
if (other.equals(data.Player))
|
||||
continue;
|
||||
@ -136,10 +149,9 @@ public class PerkFirefly extends SmashPerk
|
||||
other.playEffect(EntityEffect.HURT);
|
||||
|
||||
if (_tick == 0)
|
||||
if (!data.Targets.contains(other))
|
||||
{
|
||||
data.Targets.add(other);
|
||||
|
||||
if (Recharge.Instance.use(other, GetName() + " hit by " + data.Player.getName(), 2000, false, false))
|
||||
{
|
||||
//Damage Event
|
||||
Manager.GetDamage().NewDamageEvent(other, data.Player, null,
|
||||
DamageCause.CUSTOM, 10, true, true, false,
|
||||
@ -149,6 +161,7 @@ public class PerkFirefly extends SmashPerk
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dataIterator.remove();
|
||||
|
@ -93,7 +93,7 @@ public class PerkFlap extends SmashPerk
|
||||
|
||||
if (UtilEnt.isGrounded(player) || UtilBlock.solid(player.getLocation().getBlock().getRelative(BlockFace.DOWN)))
|
||||
{
|
||||
player.setExp(0.999f);
|
||||
player.setExp(Math.min(0.9999f, player.getExp() + 0.03f));
|
||||
player.setAllowFlight(true);
|
||||
}
|
||||
else if (Recharge.Instance.usable(player, GetName()) && player.getExp() > 0)
|
||||
|
@ -60,8 +60,8 @@ public class PerkIcePath extends Perk
|
||||
if (!Recharge.Instance.use(player, GetName(), 12000, true, true))
|
||||
return;
|
||||
|
||||
UtilAction.zeroVelocity(player);
|
||||
player.teleport(player.getLocation().add(0, 0.75, 0));
|
||||
player.teleport(player.getLocation().add(0, 1, 0));
|
||||
UtilAction.velocity(player, new Vector(0,0.5,0));
|
||||
|
||||
_data.add(new IcePathData(player));
|
||||
|
||||
|
@ -46,7 +46,8 @@ public class PerkInferno extends SmashPerk
|
||||
if (!Kit.HasKit(player))
|
||||
continue;
|
||||
|
||||
player.setExp((float) Math.min(0.999, player.getExp()+0.015));
|
||||
if (!player.isBlocking())
|
||||
player.setExp((float) Math.min(0.999, player.getExp()+0.025));
|
||||
}
|
||||
}
|
||||
|
||||
@ -105,7 +106,7 @@ public class PerkInferno extends SmashPerk
|
||||
|
||||
//Fire
|
||||
Item fire = cur.getWorld().dropItem(cur.getEyeLocation(), ItemStackFactory.Instance.CreateStack(Material.BLAZE_POWDER));
|
||||
Manager.GetFire().Add(fire, cur, 0.7, 0, 0.5, 1, "Inferno");
|
||||
Manager.GetFire().Add(fire, cur, 0.7, 0, 0.5, 1.25, "Inferno");
|
||||
|
||||
fire.teleport(cur.getEyeLocation());
|
||||
double x = 0.07 - (UtilMath.r(14)/100d);
|
||||
|
@ -18,7 +18,11 @@ import mineplex.core.common.util.UtilAction;
|
||||
import mineplex.core.common.util.UtilBlock;
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
import mineplex.core.common.util.UtilInv;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.itemstack.ItemStackFactory;
|
||||
import mineplex.core.projectile.IThrown;
|
||||
import mineplex.core.projectile.ProjectileUser;
|
||||
@ -71,7 +75,7 @@ public class PerkInkBlast extends SmashPerk implements IThrown
|
||||
|
||||
UtilInv.Update(player);
|
||||
|
||||
for (int i=0 ; i<7 ; i++)
|
||||
for (int i=0 ; i<9 ; i++)
|
||||
{
|
||||
org.bukkit.entity.Item ent = player.getWorld().dropItem(player.getEyeLocation().add(player.getLocation().getDirection()), ItemStackFactory.Instance.CreateStack(Material.INK_SACK));
|
||||
|
||||
@ -111,7 +115,7 @@ public class PerkInkBlast extends SmashPerk implements IThrown
|
||||
DamageCause.PROJECTILE, 3, true, true, false,
|
||||
UtilEnt.getName(data.GetThrower()), GetName());
|
||||
|
||||
Manager.GetCondition().Factory().Blind(GetName(), target, data.GetThrower(), 1.5, 0, false, false, false);
|
||||
UtilParticle.PlayParticle(ParticleType.EXPLODE, target.getLocation().add(0, 1, 0), 1f, 1f, 1f, 0, 12, ViewDist.LONG, UtilServer.getPlayers());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -151,7 +151,7 @@ public class PerkLazer extends Perk
|
||||
if (other.equals(player))
|
||||
continue;
|
||||
|
||||
if (UtilMath.offset(newTarget, other.getLocation().add(0, 1, 0)) < 3)
|
||||
if (UtilMath.offset(newTarget, other.getLocation().add(0, 1, 0)) < 2.5)
|
||||
{
|
||||
hitPlayer = true;
|
||||
break;
|
||||
@ -189,7 +189,7 @@ public class PerkLazer extends Perk
|
||||
continue;
|
||||
|
||||
//Do from center
|
||||
if (UtilMath.offset(target, other.getLocation().add(0, 1, 0)) < 3.5)
|
||||
if (UtilMath.offset(target, other.getLocation().add(0, 1, 0)) < 3)
|
||||
{
|
||||
//Damage Event
|
||||
Manager.GetDamage().NewDamageEvent(other, player, null,
|
||||
|
@ -57,7 +57,7 @@ public class PerkNeedler extends SmashPerk
|
||||
if (!Kit.HasKit(player))
|
||||
return;
|
||||
|
||||
if (!Recharge.Instance.use(player, GetName(), isSuperActive(player) ? 600 : 1800, !isSuperActive(player), !isSuperActive(player)))
|
||||
if (!Recharge.Instance.use(player, GetName(), isSuperActive(player) ? 600 : 2000, !isSuperActive(player), !isSuperActive(player)))
|
||||
return;
|
||||
|
||||
_active.put(player, 8);
|
||||
|
@ -69,7 +69,7 @@ public class PerkPigBaconBomb extends SmashPerk
|
||||
if (!Kit.HasKit(player))
|
||||
return;
|
||||
|
||||
float energy = 0.40f;
|
||||
float energy = 0.30f;
|
||||
|
||||
DisguiseBase disguise = Manager.GetDisguise().getDisguise(player);
|
||||
if (disguise != null && disguise instanceof DisguisePigZombie)
|
||||
|
@ -89,7 +89,7 @@ public class PerkPigBaconBounce extends SmashPerk implements IThrown
|
||||
player.setExp(Math.max(0f, player.getExp() - energy));
|
||||
|
||||
//Launch
|
||||
Item ent = player.getWorld().dropItem(player.getEyeLocation(), ItemStackFactory.Instance.CreateStack(Material.PORK));
|
||||
Item ent = player.getWorld().dropItem(player.getEyeLocation(), ItemStackFactory.Instance.CreateStack(Material.PORK, (byte) 0, 1, "Bacon"+System.currentTimeMillis()));
|
||||
UtilAction.velocity(ent, player.getLocation().getDirection(), 1.2, false, 0, 0.2, 10, false);
|
||||
Manager.GetProjectile().AddThrow(ent, player, this, -1, true, true, true, false, 0.4f);
|
||||
ent.setPickupDelay(9999);
|
||||
|
@ -78,7 +78,7 @@ public class PerkSeismicSlam extends Perk
|
||||
if (!Kit.HasKit(player))
|
||||
return;
|
||||
|
||||
if (!Recharge.Instance.use(player, GetName(), 6000, true, true))
|
||||
if (!Recharge.Instance.use(player, GetName(), 7000, true, true))
|
||||
return;
|
||||
|
||||
//Action
|
||||
@ -115,7 +115,7 @@ public class PerkSeismicSlam extends Perk
|
||||
_live.remove(player);
|
||||
|
||||
//Action
|
||||
int damage = 11;
|
||||
int damage = 10;
|
||||
double range = 8;
|
||||
|
||||
HashMap<LivingEntity, Double> targets = UtilEnt.getInRadius(player.getLocation(), range);
|
||||
|
@ -93,7 +93,7 @@ public class PerkStormSquid extends SmashPerk
|
||||
|
||||
//Damage Event
|
||||
Manager.GetDamage().NewDamageEvent(cur, player, null,
|
||||
DamageCause.CUSTOM, 20 * targets.get(cur), false, true, false,
|
||||
DamageCause.CUSTOM, 16 * targets.get(cur), false, true, false,
|
||||
player.getName(), GetName());
|
||||
|
||||
//Velocity
|
||||
|
@ -36,7 +36,8 @@ public class PerkWitherImage extends SmashPerk
|
||||
{
|
||||
super("Wither Image", new String[]
|
||||
{
|
||||
C.cYellow + "Right-Click" + C.cGray + " with Axe to " + C.cGreen + "Wither Image"
|
||||
C.cYellow + "Right-Click" + C.cGray + " with Axe to " + C.cGreen + "Wither Image",
|
||||
C.cYellow + "Double Right-Click" + C.cGray + " with Axe to " + C.cGreen + "Wither Swap"
|
||||
});
|
||||
}
|
||||
|
||||
@ -105,7 +106,7 @@ public class PerkWitherImage extends SmashPerk
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!Recharge.Instance.use(player, "Wither Swap", 1000, true, false))
|
||||
if (!Recharge.Instance.use(player, "Wither Swap", 2000, true, false))
|
||||
return;
|
||||
|
||||
Skeleton skel = _images.get(player);
|
||||
|
@ -191,7 +191,7 @@ public class PerkWitherSkull extends SmashPerk
|
||||
double scale = 0.4 + 0.6 * Math.min(1, skull.getTicksLived()/20d);
|
||||
|
||||
//Players
|
||||
HashMap<Player, Double> players = UtilPlayer.getInRadius(skull.getLocation(), 7);
|
||||
HashMap<Player, Double> players = UtilPlayer.getInRadius(skull.getLocation(), 6);
|
||||
for (Player player : players.keySet())
|
||||
{
|
||||
if (!Manager.GetGame().IsAlive(player))
|
||||
@ -199,7 +199,7 @@ public class PerkWitherSkull extends SmashPerk
|
||||
|
||||
//Damage Event
|
||||
Manager.GetDamage().NewDamageEvent(player, (LivingEntity)skull.getShooter(), null,
|
||||
DamageCause.CUSTOM, 2 + 10 * players.get(player) * scale, true, true, false,
|
||||
DamageCause.CUSTOM, 12 * players.get(player) * scale, true, true, false,
|
||||
UtilEnt.getName((LivingEntity)skull.getShooter()), GetName());
|
||||
}
|
||||
}
|
||||
|
@ -82,7 +82,7 @@ public class PerkWolf extends SmashPerk
|
||||
if (!Kit.HasKit(player))
|
||||
return;
|
||||
|
||||
if (!Recharge.Instance.use(player, "Cub Tackle", isSuperActive(player) ? 800 : 8000, !isSuperActive(player), !isSuperActive(player)))
|
||||
if (!Recharge.Instance.use(player, "Cub Tackle", isSuperActive(player) ? 1600 : 8000, !isSuperActive(player), !isSuperActive(player)))
|
||||
return;
|
||||
|
||||
//Get Nearest Wolf
|
||||
@ -255,7 +255,7 @@ public class PerkWolf extends SmashPerk
|
||||
if (!Kit.HasKit(player))
|
||||
return;
|
||||
|
||||
if (!Recharge.Instance.use(player, "Wolf Strike", isSuperActive(player) ? 800 : 8000, !isSuperActive(player), !isSuperActive(player)))
|
||||
if (!Recharge.Instance.use(player, "Wolf Strike", isSuperActive(player) ? 1600 : 8000, !isSuperActive(player), !isSuperActive(player)))
|
||||
return;
|
||||
|
||||
//Velocity
|
||||
|
@ -9,7 +9,6 @@ public class FireflyData
|
||||
public org.bukkit.entity.Player Player;
|
||||
public org.bukkit.Location Location;
|
||||
public long Time;
|
||||
public HashSet<Entity> Targets = new HashSet<Entity>();
|
||||
|
||||
public FireflyData(org.bukkit.entity.Player player)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user