Testing session changes
This commit is contained in:
parent
16f9364772
commit
a800fee08c
@ -66,11 +66,11 @@ public class PumpkinBoss extends MobaBoss
|
|||||||
private static final int CONDITION_LENGTH = 60;
|
private static final int CONDITION_LENGTH = 60;
|
||||||
private static final double CONDITION_DAMAGE_FACTOR = 1.5;
|
private static final double CONDITION_DAMAGE_FACTOR = 1.5;
|
||||||
private static final int DAMAGE_RADIUS = 2;
|
private static final int DAMAGE_RADIUS = 2;
|
||||||
private static final int DAMAGE_RANGE = 3;
|
private static final int DAMAGE_RANGE = 2;
|
||||||
private static final int DAMAGE_DIRECT = 8;
|
private static final int DAMAGE_DIRECT = 6;
|
||||||
private static final int DAMAGE_DIRECT_RADIUS_SQUARED = 9;
|
private static final int DAMAGE_DIRECT_RADIUS_SQUARED = 9;
|
||||||
private static final int HEALTH = 200;
|
private static final int HEALTH = 100;
|
||||||
private static final int HEALTH_OUT_OF_COMBAT = 5;
|
private static final int HEALTH_OUT_OF_COMBAT = 2;
|
||||||
private static final Material[] BLOCKS = {
|
private static final Material[] BLOCKS = {
|
||||||
Material.OBSIDIAN,
|
Material.OBSIDIAN,
|
||||||
Material.NETHERRACK,
|
Material.NETHERRACK,
|
||||||
@ -128,7 +128,7 @@ public class PumpkinBoss extends MobaBoss
|
|||||||
player.playSound(player.getLocation(), Sound.WITHER_SPAWN, 1, 0.4F);
|
player.playSound(player.getLocation(), Sound.WITHER_SPAWN, 1, 0.4F);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Entry<Block, Double> entry : UtilBlock.getInRadius(skeleton.getLocation(), 20).entrySet())
|
for (Entry<Block, Double> entry : UtilBlock.getInRadius(skeleton.getLocation(), 12).entrySet())
|
||||||
{
|
{
|
||||||
Block block = entry.getKey();
|
Block block = entry.getKey();
|
||||||
double setChance = entry.getValue();
|
double setChance = entry.getValue();
|
||||||
|
@ -18,7 +18,8 @@ public class HeroBiff extends HeroKit
|
|||||||
private static final Perk[] PERKS = {
|
private static final Perk[] PERKS = {
|
||||||
new SkillSword(0),
|
new SkillSword(0),
|
||||||
new SkillLeash(1),
|
new SkillLeash(1),
|
||||||
new SkillBiffDash(2)
|
new SkillBiffDash(2),
|
||||||
|
new SkillWarHorse(3)
|
||||||
};
|
};
|
||||||
|
|
||||||
private static final ItemStack IN_HAND = new ItemStack(Material.IRON_SWORD);
|
private static final ItemStack IN_HAND = new ItemStack(Material.IRON_SWORD);
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package nautilus.game.arcade.game.games.moba.kit.biff;
|
package nautilus.game.arcade.game.games.moba.kit.biff;
|
||||||
|
|
||||||
import mineplex.core.common.util.UtilAction;
|
import mineplex.core.common.util.UtilAction;
|
||||||
|
import mineplex.core.common.util.UtilAlg;
|
||||||
import mineplex.core.common.util.UtilEnt;
|
import mineplex.core.common.util.UtilEnt;
|
||||||
import mineplex.core.common.util.UtilEvent.ActionType;
|
import mineplex.core.common.util.UtilEvent.ActionType;
|
||||||
import mineplex.core.common.util.UtilParticle;
|
import mineplex.core.common.util.UtilParticle;
|
||||||
@ -11,10 +12,9 @@ import mineplex.core.updater.UpdateType;
|
|||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
import nautilus.game.arcade.game.games.moba.kit.HeroSkill;
|
import nautilus.game.arcade.game.games.moba.kit.HeroSkill;
|
||||||
import org.bukkit.Effect;
|
import org.bukkit.Effect;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.block.Block;
|
|
||||||
import org.bukkit.block.BlockFace;
|
|
||||||
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;
|
||||||
@ -88,7 +88,7 @@ public class SkillBiffDash extends HeroSkill
|
|||||||
UtilAction.velocity(player, direction);
|
UtilAction.velocity(player, direction);
|
||||||
|
|
||||||
player.getWorld().playSound(player.getLocation(), Sound.IRONGOLEM_THROW, 1, 1F);
|
player.getWorld().playSound(player.getLocation(), Sound.IRONGOLEM_THROW, 1, 1F);
|
||||||
UtilParticle.PlayParticleToAll(ParticleType.CLOUD, player.getLocation().add(0, 0.4, 0), 0.25F, 0.25F, 0.25F, 0.1F, 10, ViewDist.LONG);
|
UtilParticle.PlayParticleToAll(ParticleType.CLOUD, player.getLocation().add(0, 0.6, 0), 0.5F, 0.5F, 0.5F, 0.1F, 15, ViewDist.LONG);
|
||||||
|
|
||||||
_active.put(player, System.currentTimeMillis());
|
_active.put(player, System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
@ -126,8 +126,11 @@ public class SkillBiffDash extends HeroSkill
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Block block = entity.getLocation().getBlock().getRelative(BlockFace.DOWN);
|
for (int i = 0; i < 5; i++)
|
||||||
entity.getWorld().playEffect(block.getLocation().add(0.5, 0.5, 0.5), Effect.STEP_SOUND, block.getType(), block.getData());
|
{
|
||||||
|
Location location = UtilAlg.getRandomLocation(entity.getEyeLocation(), 3);
|
||||||
|
entity.getWorld().playEffect(location, Effect.STEP_SOUND, Material.GRASS, 0);
|
||||||
|
}
|
||||||
|
|
||||||
Manager.GetDamage().NewDamageEvent(entity, player, null, DamageCause.CUSTOM, 4, false, true, false, UtilEnt.getName(player), GetName());
|
Manager.GetDamage().NewDamageEvent(entity, player, null, DamageCause.CUSTOM, 4, false, true, false, UtilEnt.getName(player), GetName());
|
||||||
UtilAction.velocity(entity, new Vector(0, 0.6 + Math.random() / 2, 0));
|
UtilAction.velocity(entity, new Vector(0, 0.6 + Math.random() / 2, 0));
|
||||||
|
@ -41,21 +41,37 @@ public class SkillLeash extends HeroSkill
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void interact(PlayerInteractEvent event)
|
public void interact(PlayerInteractEvent event)
|
||||||
{
|
{
|
||||||
if (!isSkillItem(event))
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
if (!isSkillItem(event) || _leashed.containsKey(player))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Player player = event.getPlayer();
|
List<Player> nearbyPlayers = UtilPlayer.getNearby(player.getLocation(), 5);
|
||||||
|
|
||||||
List<Player> nearbyPlayers = UtilPlayer.getNearby(player.getLocation(), 3);
|
|
||||||
|
|
||||||
nearbyPlayers.removeIf(other -> isTeamDamage(other, player));
|
nearbyPlayers.removeIf(other -> isTeamDamage(other, player));
|
||||||
|
|
||||||
if (!nearbyPlayers.isEmpty())
|
if (nearbyPlayers.isEmpty())
|
||||||
{
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
_leashed.put(player, nearbyPlayers);
|
_leashed.put(player, nearbyPlayers);
|
||||||
|
|
||||||
|
StringBuilder builder = new StringBuilder(F.main("Game", "You leashed "));
|
||||||
|
|
||||||
|
for (Player nearby : nearbyPlayers)
|
||||||
|
{
|
||||||
|
nearby.setLeashHolder(player);
|
||||||
|
nearby.setPullWhileLeashed(false);
|
||||||
|
nearby.setShouldBreakLeash(false);
|
||||||
|
nearby.sendMessage(F.main("Game", F.name(nearby.getName()) + " leashed you."));
|
||||||
|
builder.append(F.name(player.getName())).append(", ");
|
||||||
|
Manager.GetCondition().Factory().Slow(GetName(), nearby, player, 5, 0, false, true, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
player.sendMessage(builder.toString());
|
||||||
|
|
||||||
useActiveSkill(() ->
|
useActiveSkill(() ->
|
||||||
{
|
{
|
||||||
for (Player leashed : _leashed.remove(player))
|
for (Player leashed : _leashed.remove(player))
|
||||||
@ -66,16 +82,6 @@ public class SkillLeash extends HeroSkill
|
|||||||
}, player, 5000);
|
}, player, 5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Player nearby : nearbyPlayers)
|
|
||||||
{
|
|
||||||
nearby.setLeashHolder(player);
|
|
||||||
nearby.setPullWhileLeashed(false);
|
|
||||||
nearby.setShouldBreakLeash(false);
|
|
||||||
nearby.sendMessage(F.main("Game", F.name(player.getName()) + " leashed you."));
|
|
||||||
Manager.GetCondition().Factory().Slow(GetName(), nearby, player, 5, 0, false, true, true, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void updateLeashed(UpdateEvent event)
|
public void updateLeashed(UpdateEvent event)
|
||||||
{
|
{
|
||||||
|
@ -6,12 +6,15 @@ 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 nautilus.game.arcade.game.games.moba.kit.HeroSkill;
|
import nautilus.game.arcade.game.games.moba.kit.HeroSkill;
|
||||||
|
import nautilus.game.arcade.game.games.moba.util.MobaConstants;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Horse;
|
import org.bukkit.entity.Horse;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.player.PlayerInteractEvent;
|
import org.bukkit.event.player.PlayerInteractEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
@ -33,7 +36,9 @@ public class SkillWarHorse extends HeroSkill
|
|||||||
public SkillWarHorse(int slot)
|
public SkillWarHorse(int slot)
|
||||||
{
|
{
|
||||||
super("Cavalry Charge", DESCRIPTION, SKILL_ITEM, slot, ActionType.ANY);
|
super("Cavalry Charge", DESCRIPTION, SKILL_ITEM, slot, ActionType.ANY);
|
||||||
|
|
||||||
setCooldown(45000);
|
setCooldown(45000);
|
||||||
|
setDropItemActivate(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -60,9 +65,12 @@ public class SkillWarHorse extends HeroSkill
|
|||||||
|
|
||||||
UtilEnt.vegetate(horse);
|
UtilEnt.vegetate(horse);
|
||||||
horse.setJumpStrength(0);
|
horse.setJumpStrength(0);
|
||||||
|
horse.setMaxDomestication(1);
|
||||||
horse.setDomestication(horse.getMaxDomestication());
|
horse.setDomestication(horse.getMaxDomestication());
|
||||||
horse.getInventory().setArmor(HORSE_ARMOUR);
|
horse.getInventory().setArmor(HORSE_ARMOUR);
|
||||||
|
horse.setOwner(player);
|
||||||
horse.setPassenger(player);
|
horse.setPassenger(player);
|
||||||
|
horse.setMetadata(MobaConstants.TEAM_METADATA, new FixedMetadataValue(Manager.getPlugin(), Manager.GetGame().GetTeam(player).GetName()));
|
||||||
|
|
||||||
Manager.GetGame().CreatureAllowOverride = false;
|
Manager.GetGame().CreatureAllowOverride = false;
|
||||||
|
|
||||||
@ -88,7 +96,13 @@ public class SkillWarHorse extends HeroSkill
|
|||||||
data.Horse.remove();
|
data.Horse.remove();
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
}
|
}
|
||||||
//else if ()
|
else
|
||||||
|
{
|
||||||
|
Player player = data.Owner;
|
||||||
|
Location target = player.getLocation().getDirection().multiply(3).toLocation(player.getWorld());
|
||||||
|
|
||||||
|
UtilEnt.CreatureMoveFast(data.Horse, target, 3F);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ public class SkillNinjaBlade extends HeroSkill
|
|||||||
};
|
};
|
||||||
private static final ItemStack SKILL_ITEM = new ItemStack(Material.NETHER_STAR);
|
private static final ItemStack SKILL_ITEM = new ItemStack(Material.NETHER_STAR);
|
||||||
private static final ItemStack ACTIVE_ITEM = new ItemBuilder(Material.DIAMOND_SWORD)
|
private static final ItemStack ACTIVE_ITEM = new ItemBuilder(Material.DIAMOND_SWORD)
|
||||||
.setTitle(C.cGreenB + "NINJA BLADE")
|
.setTitle(C.cGreenB + "ENDER BLADE")
|
||||||
.setUnbreakable(true)
|
.setUnbreakable(true)
|
||||||
.build();
|
.build();
|
||||||
private static final int ACTIVE_SLOT = 0;
|
private static final int ACTIVE_SLOT = 0;
|
||||||
|
@ -17,6 +17,9 @@ import nautilus.game.arcade.game.games.moba.structure.tower.TowerDestroyEvent;
|
|||||||
import nautilus.game.arcade.game.games.moba.util.MobaConstants;
|
import nautilus.game.arcade.game.games.moba.util.MobaConstants;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
|
import org.bukkit.block.Sign;
|
||||||
import org.bukkit.entity.PigZombie;
|
import org.bukkit.entity.PigZombie;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Zombie;
|
import org.bukkit.entity.Zombie;
|
||||||
@ -162,21 +165,26 @@ public class MinionManager implements Listener
|
|||||||
ArrayList<Location> path = new ArrayList<>(_host.WorldData.GetDataLocs(MobaConstants.MINION_PATH));
|
ArrayList<Location> path = new ArrayList<>(_host.WorldData.GetDataLocs(MobaConstants.MINION_PATH));
|
||||||
ArrayList<Location> organisedPath = new ArrayList<>(path.size());
|
ArrayList<Location> organisedPath = new ArrayList<>(path.size());
|
||||||
|
|
||||||
while (organisedPath.size() != path.size())
|
while (!path.isEmpty())
|
||||||
{
|
{
|
||||||
Location closest = UtilAlg.findClosest(start, path);
|
Location dataPoint = UtilAlg.findClosest(start, path);
|
||||||
|
|
||||||
if (closest == null)
|
organisedPath.add(dataPoint);
|
||||||
{
|
path.remove(dataPoint);
|
||||||
// Rra rro Shaggy
|
start = dataPoint;
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
organisedPath.add(closest);
|
|
||||||
start = closest;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Step 3 - Put the ordered path inside the map
|
// Step 3 - Put the ordered path inside the map
|
||||||
_path = path;
|
_path = organisedPath;
|
||||||
|
|
||||||
|
// int i = 0;
|
||||||
|
// for (Location location : _path)
|
||||||
|
// {
|
||||||
|
// Block block = location.getBlock();
|
||||||
|
// block.setType(Material.SIGN_POST);
|
||||||
|
// Sign sign = (Sign) block.getState();
|
||||||
|
// sign.setLine(0, "P" + i++);
|
||||||
|
// sign.update();
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -235,20 +235,17 @@ public class MinionWave implements Listener
|
|||||||
{
|
{
|
||||||
for (MobaBoss boss : _host.getBossManager().getBosses())
|
for (MobaBoss boss : _host.getBossManager().getBosses())
|
||||||
{
|
{
|
||||||
if (boss.isDead())
|
if (boss.isDead() || !(boss instanceof WitherBoss))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (boss instanceof WitherBoss)
|
|
||||||
{
|
|
||||||
WitherBoss witherBoss = (WitherBoss) boss;
|
WitherBoss witherBoss = (WitherBoss) boss;
|
||||||
|
|
||||||
if (witherBoss.getTeam().equals(_owner))
|
if (witherBoss.getTeam().equals(_owner))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
Location location = boss.getEntity().getLocation();
|
Location location = boss.getEntity().getLocation();
|
||||||
double distSquared = UtilMath.offsetSquared(minion.getEntity(), boss.getEntity());
|
double distSquared = UtilMath.offsetSquared(minion.getEntity(), boss.getEntity());
|
||||||
|
Loading…
Reference in New Issue
Block a user