Created an "END" event for challenges
This commit is contained in:
parent
7838ad2bce
commit
59d1a949c4
@ -12,6 +12,7 @@ import mineplex.core.hologram.Hologram;
|
||||
import mineplex.core.hologram.Hologram.HologramTarget;
|
||||
import mineplex.core.projectile.ProjectileUser;
|
||||
import mineplex.minecraft.game.core.condition.Condition.ConditionType;
|
||||
import nautilus.game.arcade.game.games.mineware.events.challengeEndEvent;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
@ -98,6 +99,7 @@ public abstract class Challenge implements Listener
|
||||
setupPlayers();
|
||||
|
||||
Completed.clear();
|
||||
Lost.clear();
|
||||
StartTime = System.currentTimeMillis();
|
||||
Duration = getMaxTime();
|
||||
Places = (int) Math.ceil(getChallengers().size() / 2D);
|
||||
@ -240,6 +242,7 @@ public abstract class Challenge implements Listener
|
||||
_invisPlayers.add(player);
|
||||
Host.Manager.GetCondition().Factory().Cloak("Completed", player, player, 7777, true, false);
|
||||
}
|
||||
Lost.add(player);
|
||||
Host.LoseLife(player, false);
|
||||
UtilInv.Clear(player);
|
||||
}
|
||||
|
@ -54,6 +54,7 @@ import nautilus.game.arcade.game.SoloGame;
|
||||
import nautilus.game.arcade.game.GameTeam.PlayerState;
|
||||
import nautilus.game.arcade.game.games.holeinwall.KitNormal;
|
||||
import nautilus.game.arcade.game.games.mineware.challenges.*;
|
||||
import nautilus.game.arcade.game.games.mineware.events.challengeEndEvent;
|
||||
import nautilus.game.arcade.kit.Kit;
|
||||
|
||||
public class MineWare extends SoloGame implements IThrown
|
||||
@ -149,28 +150,27 @@ public class MineWare extends SoloGame implements IThrown
|
||||
|
||||
public void PopulateOrders()
|
||||
{
|
||||
_challenges.add(ChallengePickASide.class);
|
||||
_challenges.add(ChallengeKOTL.class);
|
||||
// _challenges.add(ChallengePickASide.class);
|
||||
// _challenges.add(ChallengeKOTL.class);
|
||||
_challenges.add(ChallengeWaveCrush.class);
|
||||
_challenges.add(ChallengePunchThePig.class);
|
||||
_challenges.add(ChallengeDogvsCat.class);
|
||||
_challenges.add(ChallengeShootChickens.class);
|
||||
_challenges.add(ChallengeReverseTag.class);
|
||||
// _challenges.add(ChallengePunchThePig.class);
|
||||
// _challenges.add(ChallengeDogvsCat.class); // TODO
|
||||
// _challenges.add(ChallengeShootChickens.class);
|
||||
// _challenges.add(ChallengeReverseTag.class);
|
||||
_challenges.add(ChallengeKangarooJump.class);
|
||||
_challenges.add(ChallengeMiniOITQ.class);
|
||||
_challenges.add(ChallengeMineADiamond.class);
|
||||
_challenges.add(ChallengeRushPush.class);
|
||||
// _challenges.add(ChallengeMineADiamond.class);
|
||||
// _challenges.add(ChallengeRushPush.class);
|
||||
_challenges.add(ChallengeBlockLobbers.class);
|
||||
_challenges.add(ChallengeStandOnColor.class);
|
||||
_challenges.add(ChallengeMilkACow.class);
|
||||
_challenges.add(ChallengeDragonEgg.class);
|
||||
_challenges.add(ChallengeChestLoot.class);
|
||||
_challenges.add(ChallengeLavaRun.class);
|
||||
// _challenges.add(ChallengeStandOnColor.class);
|
||||
// _challenges.add(ChallengeMilkACow.class);
|
||||
// _challenges.add(ChallengeDragonEgg.class);
|
||||
// _challenges.add(ChallengeChestLoot.class);
|
||||
// _challenges.add(ChallengeLavaRun.class);
|
||||
_challenges.add(ChallengeNavigateMaze.class);
|
||||
_challenges.add(ChallengeHitTargets.class);
|
||||
_challenges.add(ChallengeVolleyPig.class);
|
||||
_challenges.add(ChallengeSmashOff.class);
|
||||
_challenges.add(ChallengeTntLauncher.class);
|
||||
// _challenges.add(ChallengeVolleyPig.class);
|
||||
// _challenges.add(ChallengeSmashOff.class);
|
||||
// _challenges.add(ChallengeTntLauncher.class);
|
||||
|
||||
// _challenges.add(ChallengeHitTargets.class);
|
||||
//_challenges.add(ChallengeTameTheWolf.class);
|
||||
@ -317,6 +317,7 @@ public class MineWare extends SoloGame implements IThrown
|
||||
return;
|
||||
|
||||
// Deregister
|
||||
Bukkit.getServer().getPluginManager().callEvent(new challengeEndEvent(_challenge));
|
||||
HandlerList.unregisterAll(_challenge);
|
||||
|
||||
_challenge.EndOrder();
|
||||
@ -546,6 +547,7 @@ public class MineWare extends SoloGame implements IThrown
|
||||
}
|
||||
|
||||
// Deregister
|
||||
Bukkit.getServer().getPluginManager().callEvent(new challengeEndEvent(_challenge));
|
||||
HandlerList.unregisterAll(_challenge);
|
||||
|
||||
_challenge.EndOrder();
|
||||
|
@ -11,6 +11,7 @@ import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
import nautilus.game.arcade.game.games.mineware.Challenge;
|
||||
import nautilus.game.arcade.game.games.mineware.MineWare;
|
||||
import nautilus.game.arcade.game.games.mineware.events.challengeEndEvent;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
@ -28,14 +29,13 @@ import org.bukkit.util.Vector;
|
||||
public class ChallengeWaveCrush extends Challenge
|
||||
{
|
||||
private boolean _inProgress = false;
|
||||
private boolean _endHandling = true;
|
||||
private int _waveAmount = 0;
|
||||
private int _waveSpeed = 40; // in ticks
|
||||
private ArrayList<Integer> _colorList = new ArrayList<Integer>(Arrays.asList(14, 11, 9, 3, 1, 4, 13, 5));
|
||||
|
||||
public ChallengeWaveCrush(MineWare host)
|
||||
{
|
||||
super(host, ChallengeType.FirstComplete, "Wave Crush", "Avoid the crushing waves!");
|
||||
super(host, ChallengeType.LastStanding, "Wave Crush", "Avoid the crushing waves!");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -145,7 +145,7 @@ public class ChallengeWaveCrush extends Challenge
|
||||
}
|
||||
}
|
||||
}
|
||||
if(var % 5 == 0 && (colorPicker != _colorList.size() - 1))
|
||||
if(var % 4 == 0 && (colorPicker != _colorList.size() - 1))
|
||||
{
|
||||
colorPicker++;
|
||||
}
|
||||
@ -153,32 +153,6 @@ public class ChallengeWaveCrush extends Challenge
|
||||
}
|
||||
}
|
||||
|
||||
public void OnChallengeEnd()
|
||||
{
|
||||
for(Player player : Host.GetPlayers(true))
|
||||
{
|
||||
if(!isDone(player))
|
||||
{
|
||||
SetCompleted(player);
|
||||
}
|
||||
}
|
||||
|
||||
new BukkitRunnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
for(Entity fBlocks : Host.WorldData.World.getEntities())
|
||||
{
|
||||
if(fBlocks instanceof FallingBlock)
|
||||
{
|
||||
fBlocks.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}.runTaskLater(Host.Manager.getPlugin(), 20);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCollide(LivingEntity target, Block block, ProjectileUser data)
|
||||
{
|
||||
@ -203,25 +177,6 @@ public class ChallengeWaveCrush extends Challenge
|
||||
"Wave crush");
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onEndHandling(UpdateEvent event)
|
||||
{
|
||||
if(!Host.IsLive())
|
||||
{
|
||||
return;
|
||||
}
|
||||
if(event.getType() != UpdateType.TICK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if(!_inProgress && _endHandling)
|
||||
{
|
||||
Bukkit.broadcastMessage("End event heard!");
|
||||
OnChallengeEnd();
|
||||
_endHandling = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void waveStartingPoint(Block block, int radius)
|
||||
{
|
||||
Block pickedBlock = Host.WorldData.World.getBlockAt(block.getX(), block.getY(), block.getZ() - radius);
|
||||
@ -238,6 +193,34 @@ public class ChallengeWaveCrush extends Challenge
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void OnChallengeEnd(challengeEndEvent event)
|
||||
{
|
||||
Bukkit.broadcastMessage("End event Heard");
|
||||
for(Player player : Host.GetPlayers(true))
|
||||
{
|
||||
if(!isDone(player))
|
||||
{
|
||||
SetCompleted(player);
|
||||
}
|
||||
}
|
||||
|
||||
new BukkitRunnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
for(Entity fBlocks : Host.WorldData.World.getEntities())
|
||||
{
|
||||
if(fBlocks instanceof FallingBlock)
|
||||
{
|
||||
fBlocks.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}.runTaskLater(Host.Manager.getPlugin(), 30);
|
||||
}
|
||||
|
||||
public void waveCreation(final Block block)
|
||||
{
|
||||
new BukkitRunnable()
|
||||
|
@ -0,0 +1,35 @@
|
||||
package nautilus.game.arcade.game.games.mineware.events;
|
||||
|
||||
|
||||
import nautilus.game.arcade.game.games.mineware.Challenge;
|
||||
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
|
||||
public class challengeEndEvent extends Event
|
||||
{
|
||||
private Challenge _endedChallenge;
|
||||
private static final HandlerList _handlers = new HandlerList();
|
||||
|
||||
public challengeEndEvent(Challenge challenge)
|
||||
{
|
||||
this._endedChallenge = challenge;
|
||||
}
|
||||
|
||||
public Challenge getEndedChallenge()
|
||||
{
|
||||
return _endedChallenge;
|
||||
}
|
||||
|
||||
public static HandlerList getHandlerList()
|
||||
{
|
||||
return _handlers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers()
|
||||
{
|
||||
return getHandlerList();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user