Fix tag master and achievement progress
This commit is contained in:
parent
ccebeb75f1
commit
ba5d06db88
@ -174,8 +174,6 @@ public class BawkBawkBattles extends TeamGame implements IThrown
|
|||||||
* - Fix item rendering exception (kangaroo jump http://i.imgur.com/CPYIogC.jpg)
|
* - Fix item rendering exception (kangaroo jump http://i.imgur.com/CPYIogC.jpg)
|
||||||
* - Pinata Master
|
* - Pinata Master
|
||||||
* - http://prnt.sc/ax86n8 typos
|
* - http://prnt.sc/ax86n8 typos
|
||||||
* - Tag master only adds 1
|
|
||||||
* - Bouncing block don't make completed players jump high
|
|
||||||
*
|
*
|
||||||
* Medium Priority
|
* Medium Priority
|
||||||
* - Make spawn distance equal from a target
|
* - Make spawn distance equal from a target
|
||||||
@ -200,8 +198,8 @@ public class BawkBawkBattles extends TeamGame implements IThrown
|
|||||||
new String[] {
|
new String[] {
|
||||||
"Follow Bawk Bawk's instructions in chat.",
|
"Follow Bawk Bawk's instructions in chat.",
|
||||||
"Complete a task first or be the last one to stay alive.",
|
"Complete a task first or be the last one to stay alive.",
|
||||||
"If you fail a challenge, you loose one life.",
|
"If you fail a challenge, you lose one life.",
|
||||||
"If you ran out of lives, chickens will attack you.",
|
"If you run out of lives, chickens will attack you.",
|
||||||
"Last player with lives wins.",
|
"Last player with lives wins.",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@ import mineplex.core.common.util.C;
|
|||||||
import mineplex.core.common.util.MapUtil;
|
import mineplex.core.common.util.MapUtil;
|
||||||
import mineplex.core.common.util.UtilInv;
|
import mineplex.core.common.util.UtilInv;
|
||||||
import mineplex.core.common.util.UtilMath;
|
import mineplex.core.common.util.UtilMath;
|
||||||
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.common.util.UtilTextBottom;
|
import mineplex.core.common.util.UtilTextBottom;
|
||||||
import mineplex.core.common.util.UtilTime;
|
import mineplex.core.common.util.UtilTime;
|
||||||
import mineplex.core.hologram.Hologram;
|
import mineplex.core.hologram.Hologram;
|
||||||
@ -318,6 +319,7 @@ public abstract class Challenge implements Listener
|
|||||||
}
|
}
|
||||||
|
|
||||||
Data.addCompletedPlayer(player);
|
Data.addCompletedPlayer(player);
|
||||||
|
UtilPlayer.clearPotionEffects(player);
|
||||||
UtilInv.Clear(player);
|
UtilInv.Clear(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
package nautilus.game.arcade.game.games.mineware.challenge;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
public interface LogicTracker
|
||||||
|
{
|
||||||
|
public boolean hasData(Player player);
|
||||||
|
}
|
@ -2,7 +2,7 @@ package nautilus.game.arcade.game.games.mineware.challenge;
|
|||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public interface DataTracker
|
public interface NumberTracker
|
||||||
{
|
{
|
||||||
public Number getData(Player player);
|
public Number getData(Player player);
|
||||||
|
|
@ -29,14 +29,14 @@ import mineplex.core.updater.event.UpdateEvent;
|
|||||||
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
||||||
|
import nautilus.game.arcade.game.games.mineware.challenge.LogicTracker;
|
||||||
|
|
||||||
public class ChallengeBouncingBlock extends Challenge
|
public class ChallengeBouncingBlock extends Challenge implements LogicTracker
|
||||||
{
|
{
|
||||||
private ArrayList<Player> _stepTracker = new ArrayList<Player>();
|
private ArrayList<Player> _stepTracker = new ArrayList<Player>();
|
||||||
private ArrayList<Block> _blocks = new ArrayList<Block>();
|
private ArrayList<Block> _blocks = new ArrayList<Block>();
|
||||||
private HashMap<Player, Integer> _score = new HashMap<Player, Integer>();
|
private HashMap<Player, Integer> _score = new HashMap<Player, Integer>();
|
||||||
|
private static int _goal = 10;
|
||||||
// TODO: Separate functionality to different methods.
|
|
||||||
|
|
||||||
public ChallengeBouncingBlock(BawkBawkBattles host)
|
public ChallengeBouncingBlock(BawkBawkBattles host)
|
||||||
{
|
{
|
||||||
@ -46,7 +46,7 @@ public class ChallengeBouncingBlock extends Challenge
|
|||||||
"Bouncing Block",
|
"Bouncing Block",
|
||||||
"Jump and punch floating wool blocks.",
|
"Jump and punch floating wool blocks.",
|
||||||
"Avoid landing on red wool.",
|
"Avoid landing on red wool.",
|
||||||
"First to 10 wins!");
|
"First to " + _goal + " wins!");
|
||||||
|
|
||||||
Settings.setUseMapHeight();
|
Settings.setUseMapHeight();
|
||||||
}
|
}
|
||||||
@ -74,9 +74,8 @@ public class ChallengeBouncingBlock extends Challenge
|
|||||||
Block block = location.getBlock();
|
Block block = location.getBlock();
|
||||||
block.setType(Material.WOOL);
|
block.setType(Material.WOOL);
|
||||||
|
|
||||||
if (Math.random() * 100 < 20.0)
|
if (Math.random() < 0.2)
|
||||||
block.setData((byte) 14);
|
block.setData((byte) 14);
|
||||||
|
|
||||||
else
|
else
|
||||||
block.setData((byte) 0);
|
block.setData((byte) 0);
|
||||||
|
|
||||||
@ -89,27 +88,23 @@ public class ChallengeBouncingBlock extends Challenge
|
|||||||
@Override
|
@Override
|
||||||
public void onStart()
|
public void onStart()
|
||||||
{
|
{
|
||||||
|
Host.StrictAntiHack = false;
|
||||||
|
|
||||||
addEffect(PotionEffectType.JUMP, 6);
|
addEffect(PotionEffectType.JUMP, 6);
|
||||||
|
|
||||||
for (Player player : getPlayersAlive())
|
for (Player player : getPlayersAlive())
|
||||||
{
|
{
|
||||||
_score.put(player, 0);
|
_score.put(player, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
Host.StrictAntiHack = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnd()
|
public void onEnd()
|
||||||
{
|
{
|
||||||
|
Host.StrictAntiHack = true;
|
||||||
|
|
||||||
for (Block woolBlocks : _blocks)
|
for (Block woolBlocks : _blocks)
|
||||||
woolBlocks.setType(Material.AIR);
|
woolBlocks.setType(Material.AIR);
|
||||||
|
|
||||||
_blocks.clear();
|
|
||||||
_score.clear();
|
|
||||||
|
|
||||||
// _antiHackFix.clear();
|
|
||||||
Host.StrictAntiHack = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -131,17 +126,8 @@ public class ChallengeBouncingBlock extends Challenge
|
|||||||
if (!_blocks.contains(block))
|
if (!_blocks.contains(block))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
increment(player, 1);
|
hitBlock(player, block);
|
||||||
player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 0.2f, 0.2f);
|
checkCompleted(player);
|
||||||
|
|
||||||
block.setType(Material.AIR);
|
|
||||||
spawnRandomWool(getArenaSize(9), (UtilMath.r(6) + 5));
|
|
||||||
|
|
||||||
if (_score.get(player) >= 10)
|
|
||||||
{
|
|
||||||
setCompleted(player);
|
|
||||||
UtilTextBottom.display(C.cGreen + C.Bold + "Completed!", player);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
@ -153,11 +139,8 @@ public class ChallengeBouncingBlock extends Challenge
|
|||||||
if (event.getType() != UpdateType.TICK)
|
if (event.getType() != UpdateType.TICK)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (Player player : getPlayersAlive())
|
for (Player player : getPlayersIn(true))
|
||||||
{
|
{
|
||||||
if (Data.isDone(player))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
UtilTextBottom.display(C.Bold + "Score: " + C.Reset + C.cYellow + C.Bold + _score.get(player), player);
|
UtilTextBottom.display(C.Bold + "Score: " + C.Reset + C.cYellow + C.Bold + _score.get(player), player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -173,35 +156,21 @@ public class ChallengeBouncingBlock extends Challenge
|
|||||||
if (!isPlayerValid(player))
|
if (!isPlayerValid(player))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (event.getFrom().getX() == event.getTo().getX() && event.getFrom().getZ() == event.getTo().getZ())
|
if (isLooking(event.getFrom(), event.getTo()))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Location loc = player.getLocation();
|
Location loc = player.getLocation();
|
||||||
Block blockBelow = loc.getBlock().getRelative(BlockFace.DOWN);
|
Block blockBelow = loc.getBlock().getRelative(BlockFace.DOWN);
|
||||||
|
|
||||||
if (Recharge.Instance.use(player, "Movement", 300, false, false) && _score.get(player) > 0)
|
if (canLooseScore(player) && blockBelow.getType() == Material.WOOL)
|
||||||
{
|
{
|
||||||
if (blockBelow.getType() == Material.WOOL)
|
Wool woolBelow = (Wool) blockBelow.getState().getData();
|
||||||
|
|
||||||
|
if (woolBelow.getColor() == DyeColor.RED)
|
||||||
{
|
{
|
||||||
Wool woolBelow = (Wool) blockBelow.getState().getData();
|
int amount = subtractFromScore(player);
|
||||||
|
showSubtractMessage(player, amount);
|
||||||
if (woolBelow.getColor() == DyeColor.RED)
|
trackStep(player);
|
||||||
{
|
|
||||||
int subtract = 2;
|
|
||||||
|
|
||||||
if (_score.get(player) == 1)
|
|
||||||
subtract = 1;
|
|
||||||
|
|
||||||
subtract(player, subtract);
|
|
||||||
|
|
||||||
UtilTextMiddle.display(null, "Score decreased by " + C.cRed + subtract + C.Reset + "!", 5, 40, 5, player);
|
|
||||||
player.playSound(player.getLocation(), Sound.NOTE_BASS, 1.0F, 1.0F);
|
|
||||||
|
|
||||||
if (!_stepTracker.contains(player))
|
|
||||||
{
|
|
||||||
_stepTracker.add(player);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -212,13 +181,71 @@ public class ChallengeBouncingBlock extends Challenge
|
|||||||
if (!isChallengeValid())
|
if (!isChallengeValid())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_stepTracker.remove(event.getPlayer());
|
Player player = event.getPlayer();
|
||||||
|
|
||||||
|
_stepTracker.remove(player);
|
||||||
|
_score.remove(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void hitBlock(Player player, Block block)
|
||||||
|
{
|
||||||
|
increment(player, 1);
|
||||||
|
player.playSound(player.getLocation(), Sound.SUCCESSFUL_HIT, 0.2f, 0.2f);
|
||||||
|
|
||||||
|
block.setType(Material.AIR);
|
||||||
|
spawnRandomWool(getArenaSize(9), (UtilMath.r(6) + 5));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkCompleted(Player player)
|
||||||
|
{
|
||||||
|
if (_score.get(player) >= _goal)
|
||||||
|
{
|
||||||
|
setCompleted(player);
|
||||||
|
UtilTextBottom.display(C.cGreen + C.Bold + "Completed!", player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isLooking(Location from, Location to)
|
||||||
|
{
|
||||||
|
return from.getX() == to.getX() && from.getZ() == to.getZ();
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean canLooseScore(Player player)
|
||||||
|
{
|
||||||
|
return Recharge.Instance.use(player, "Movement", 300, false, false) && _score.get(player) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int subtractFromScore(Player player)
|
||||||
|
{
|
||||||
|
int amount = 2;
|
||||||
|
|
||||||
|
if (_score.get(player) == 1)
|
||||||
|
{
|
||||||
|
amount = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
subtract(player, amount);
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showSubtractMessage(Player player, int amount)
|
||||||
|
{
|
||||||
|
UtilTextMiddle.display(null, "Score decreased by " + C.cRed + amount + C.Reset + "!", 5, 40, 5, player);
|
||||||
|
player.playSound(player.getLocation(), Sound.NOTE_BASS, 1.0F, 1.0F);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void trackStep(Player player)
|
||||||
|
{
|
||||||
|
if (!_stepTracker.contains(player))
|
||||||
|
{
|
||||||
|
_stepTracker.add(player);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
private void spawnStartingWool()
|
private void spawnStartingWool()
|
||||||
{
|
{
|
||||||
whileLoop: while (_blocks.size() <= Math.ceil(getPlayersAlive().size() / 2) + 1)
|
whileLoop: while (_blocks.size() <= Math.ceil(Host.getPlayersWithRemainingLives() / 2) + 1)
|
||||||
{
|
{
|
||||||
for (int x = -getArenaSize(); x <= getArenaSize(); x++)
|
for (int x = -getArenaSize(); x <= getArenaSize(); x++)
|
||||||
{
|
{
|
||||||
@ -226,9 +253,9 @@ public class ChallengeBouncingBlock extends Challenge
|
|||||||
{
|
{
|
||||||
for (int y = 5; y <= 11; y++)
|
for (int y = 5; y <= 11; y++)
|
||||||
{
|
{
|
||||||
Block b = getCenter().getBlock().getRelative(x, y, z);
|
Block block = getCenter().getBlock().getRelative(x, y, z);
|
||||||
|
|
||||||
if (b.getType() == Material.AIR || b.getType() == null)
|
if (block.isEmpty() || block.getType() == null)
|
||||||
{
|
{
|
||||||
if (UtilMath.r(50) == 0)
|
if (UtilMath.r(50) == 0)
|
||||||
{
|
{
|
||||||
@ -239,11 +266,11 @@ public class ChallengeBouncingBlock extends Challenge
|
|||||||
color = (byte) UtilMath.r(16);
|
color = (byte) UtilMath.r(16);
|
||||||
}
|
}
|
||||||
|
|
||||||
b.setType(Material.WOOL);
|
block.setType(Material.WOOL);
|
||||||
b.setData((byte) UtilMath.r(16));
|
block.setData((byte) UtilMath.r(16));
|
||||||
_blocks.add(b);
|
_blocks.add(block);
|
||||||
|
|
||||||
if (_blocks.size() >= Math.ceil(Host.GetPlayers(true).size() / 2) + 1)
|
if (_blocks.size() >= Math.ceil(Host.getPlayersWithRemainingLives() / 2) + 1)
|
||||||
{
|
{
|
||||||
break whileLoop;
|
break whileLoop;
|
||||||
}
|
}
|
||||||
@ -266,7 +293,7 @@ public class ChallengeBouncingBlock extends Challenge
|
|||||||
Block b = getCenter().getBlock().getRelative(x, y, z);
|
Block b = getCenter().getBlock().getRelative(x, y, z);
|
||||||
Byte color = (byte) UtilMath.r(16);
|
Byte color = (byte) UtilMath.r(16);
|
||||||
|
|
||||||
while (color == 14) // prevent RED
|
while (color == 14)
|
||||||
{
|
{
|
||||||
color = (byte) UtilMath.r(16);
|
color = (byte) UtilMath.r(16);
|
||||||
}
|
}
|
||||||
@ -299,8 +326,9 @@ public class ChallengeBouncingBlock extends Challenge
|
|||||||
_score.put(player, 0);
|
_score.put(player, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasSteppedOnWool(Player player)
|
@Override
|
||||||
|
public boolean hasData(Player player)
|
||||||
{
|
{
|
||||||
return _stepTracker.contains(player);
|
return !_stepTracker.contains(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,9 +32,9 @@ import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
|||||||
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.DataTracker;
|
import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker;
|
||||||
|
|
||||||
public class ChallengeChickenShooting extends Challenge implements DataTracker
|
public class ChallengeChickenShooting extends Challenge implements NumberTracker
|
||||||
{
|
{
|
||||||
private ArrayList<Chicken> _chickens = new ArrayList<Chicken>();
|
private ArrayList<Chicken> _chickens = new ArrayList<Chicken>();
|
||||||
private HashMap<Player, Integer> _score = new HashMap<Player, Integer>();
|
private HashMap<Player, Integer> _score = new HashMap<Player, Integer>();
|
||||||
|
@ -22,9 +22,9 @@ import mineplex.core.itemstack.ItemBuilder;
|
|||||||
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.DataTracker;
|
import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker;
|
||||||
|
|
||||||
public class ChallengeEggSmash extends Challenge implements DataTracker
|
public class ChallengeEggSmash extends Challenge implements NumberTracker
|
||||||
{
|
{
|
||||||
private static int _smashedEggsGoal = 10;
|
private static int _smashedEggsGoal = 10;
|
||||||
private HashMap<Player, Integer> _score = new HashMap<Player, Integer>();
|
private HashMap<Player, Integer> _score = new HashMap<Player, Integer>();
|
||||||
|
@ -32,9 +32,9 @@ import mineplex.core.projectile.ProjectileUser;
|
|||||||
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.DataTracker;
|
import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker;
|
||||||
|
|
||||||
public class ChallengeFallingBlocks extends Challenge implements DataTracker
|
public class ChallengeFallingBlocks extends Challenge implements NumberTracker
|
||||||
{
|
{
|
||||||
// The spawn chances of a falling block.
|
// The spawn chances of a falling block.
|
||||||
private double _spawnChance = 20.0;
|
private double _spawnChance = 20.0;
|
||||||
|
@ -21,9 +21,9 @@ import mineplex.core.updater.event.UpdateEvent;
|
|||||||
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.DataTracker;
|
import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker;
|
||||||
|
|
||||||
public class ChallengeKangarooJump extends Challenge implements DataTracker
|
public class ChallengeKangarooJump extends Challenge implements NumberTracker
|
||||||
{
|
{
|
||||||
private HashMap<Player, Integer> _heightData = new HashMap<Player, Integer>();
|
private HashMap<Player, Integer> _heightData = new HashMap<Player, Integer>();
|
||||||
private long _gameTime = System.currentTimeMillis() + ((UtilMath.r(5) + 20) * 1000);
|
private long _gameTime = System.currentTimeMillis() + ((UtilMath.r(5) + 20) * 1000);
|
||||||
|
@ -24,8 +24,9 @@ import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
|||||||
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
||||||
|
import nautilus.game.arcade.game.games.mineware.challenge.LogicTracker;
|
||||||
|
|
||||||
public class ChallengeKingOfTheLadder extends Challenge
|
public class ChallengeKingOfTheLadder extends Challenge implements LogicTracker
|
||||||
{
|
{
|
||||||
private ArrayList<Player> _hitTracker = new ArrayList<Player>();
|
private ArrayList<Player> _hitTracker = new ArrayList<Player>();
|
||||||
private Location _winCornerA;
|
private Location _winCornerA;
|
||||||
@ -236,8 +237,9 @@ public class ChallengeKingOfTheLadder extends Challenge
|
|||||||
_hitTracker.remove(event.getPlayer());
|
_hitTracker.remove(event.getPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasBeenHit(Player player)
|
@Override
|
||||||
|
public boolean hasData(Player player)
|
||||||
{
|
{
|
||||||
return _hitTracker.contains(player);
|
return !_hitTracker.contains(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,9 +31,9 @@ import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
|||||||
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.DataTracker;
|
import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker;
|
||||||
|
|
||||||
public class ChallengeMilkACow extends Challenge implements DataTracker
|
public class ChallengeMilkACow extends Challenge implements NumberTracker
|
||||||
{
|
{
|
||||||
private Villager _villager;
|
private Villager _villager;
|
||||||
private HashMap<Entity, ArrayList<String>> _milked = new HashMap<Entity, ArrayList<String>>();
|
private HashMap<Entity, ArrayList<String>> _milked = new HashMap<Entity, ArrayList<String>>();
|
||||||
|
@ -28,9 +28,9 @@ import mineplex.core.updater.event.UpdateEvent;
|
|||||||
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.DataTracker;
|
import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker;
|
||||||
|
|
||||||
public class ChallengeMiniOneInTheQuiver extends Challenge implements DataTracker
|
public class ChallengeMiniOneInTheQuiver extends Challenge implements NumberTracker
|
||||||
{
|
{
|
||||||
private HashMap<Player, Integer> _killTracker = new HashMap<Player, Integer>();
|
private HashMap<Player, Integer> _killTracker = new HashMap<Player, Integer>();
|
||||||
|
|
||||||
|
@ -15,9 +15,9 @@ import org.bukkit.event.player.PlayerQuitEvent;
|
|||||||
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.DataTracker;
|
import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker;
|
||||||
|
|
||||||
public class ChallengeNavigationMaze extends Challenge implements DataTracker
|
public class ChallengeNavigationMaze extends Challenge implements NumberTracker
|
||||||
{
|
{
|
||||||
private HashMap<Player, Long> _completionTime = new HashMap<Player, Long>();
|
private HashMap<Player, Long> _completionTime = new HashMap<Player, Long>();
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package nautilus.game.arcade.game.games.mineware.challenge.type;
|
package nautilus.game.arcade.game.games.mineware.challenge.type;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
import org.bukkit.Color;
|
import org.bukkit.Color;
|
||||||
@ -25,12 +26,14 @@ import mineplex.core.updater.event.UpdateEvent;
|
|||||||
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
import mineplex.minecraft.game.core.damage.CustomDamageEvent;
|
||||||
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
||||||
|
import nautilus.game.arcade.game.games.mineware.challenge.LogicTracker;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.TeamChallenge;
|
import nautilus.game.arcade.game.games.mineware.challenge.TeamChallenge;
|
||||||
|
|
||||||
public class ChallengeReverseTag extends TeamChallenge
|
public class ChallengeReverseTag extends TeamChallenge implements LogicTracker
|
||||||
{
|
{
|
||||||
private int _cooldown = 2; // Seconds
|
private int _cooldown = 2; // Seconds
|
||||||
private HashSet<Player> _cooldowns = new HashSet<Player>();
|
private HashSet<Player> _cooldowns = new HashSet<Player>();
|
||||||
|
private HashMap<Player, Boolean> _tagTracker = new HashMap<Player, Boolean>();
|
||||||
|
|
||||||
public ChallengeReverseTag(BawkBawkBattles host)
|
public ChallengeReverseTag(BawkBawkBattles host)
|
||||||
{
|
{
|
||||||
@ -97,6 +100,7 @@ public class ChallengeReverseTag extends TeamChallenge
|
|||||||
for (Player tagged : getFirstTeam().getPlayers())
|
for (Player tagged : getFirstTeam().getPlayers())
|
||||||
{
|
{
|
||||||
tagEffect(tagged);
|
tagEffect(tagged);
|
||||||
|
_tagTracker.put(tagged, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,18 +195,32 @@ public class ChallengeReverseTag extends TeamChallenge
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
_cooldowns.remove(player);
|
_cooldowns.remove(player);
|
||||||
|
_tagTracker.remove(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void clear(Player player)
|
private void clear(Player player)
|
||||||
{
|
{
|
||||||
if (getFirstTeam().isMember(player))
|
if (getFirstTeam().isMember(player))
|
||||||
{
|
{
|
||||||
|
trackClear(player);
|
||||||
clearEffect(player);
|
clearEffect(player);
|
||||||
|
|
||||||
getFirstTeam().remove(player);
|
getFirstTeam().remove(player);
|
||||||
getSecondTeam().add(player);
|
getSecondTeam().add(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void trackClear(Player player)
|
||||||
|
{
|
||||||
|
if (_tagTracker.containsKey(player))
|
||||||
|
{
|
||||||
|
if (_tagTracker.get(player))
|
||||||
|
{
|
||||||
|
_tagTracker.put(player, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void clearEffect(Player player)
|
private void clearEffect(Player player)
|
||||||
{
|
{
|
||||||
UtilTextMiddle.display(null, C.cRed + "You are no longer tagged.", 5, 40, 5, player);
|
UtilTextMiddle.display(null, C.cRed + "You are no longer tagged.", 5, 40, 5, player);
|
||||||
@ -218,6 +236,7 @@ public class ChallengeReverseTag extends TeamChallenge
|
|||||||
{
|
{
|
||||||
if (getSecondTeam().isMember(player))
|
if (getSecondTeam().isMember(player))
|
||||||
{
|
{
|
||||||
|
trackTag(player);
|
||||||
tagEffect(player);
|
tagEffect(player);
|
||||||
|
|
||||||
getSecondTeam().remove(player);
|
getSecondTeam().remove(player);
|
||||||
@ -231,6 +250,21 @@ public class ChallengeReverseTag extends TeamChallenge
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void trackTag(Player player)
|
||||||
|
{
|
||||||
|
if (_tagTracker.containsKey(player))
|
||||||
|
{
|
||||||
|
if (_tagTracker.get(player))
|
||||||
|
{
|
||||||
|
_tagTracker.put(player, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_tagTracker.put(player, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void tagEffect(Player player)
|
private void tagEffect(Player player)
|
||||||
{
|
{
|
||||||
UtilTextMiddle.display(null, C.cGreen + "You are now tagged, keep it up.", 5, 40, 5, player);
|
UtilTextMiddle.display(null, C.cGreen + "You are now tagged, keep it up.", 5, 40, 5, player);
|
||||||
@ -253,4 +287,17 @@ public class ChallengeReverseTag extends TeamChallenge
|
|||||||
}
|
}
|
||||||
}.runTaskLater(Host.Manager.getPlugin(), 20 * _cooldown);
|
}.runTaskLater(Host.Manager.getPlugin(), 20 * _cooldown);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasData(Player player)
|
||||||
|
{
|
||||||
|
if (_tagTracker.containsKey(player))
|
||||||
|
{
|
||||||
|
return _tagTracker.get(player);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,9 +21,9 @@ import mineplex.core.projectile.ProjectileUser;
|
|||||||
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
import nautilus.game.arcade.game.games.mineware.BawkBawkBattles;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
import nautilus.game.arcade.game.games.mineware.challenge.Challenge;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
||||||
import nautilus.game.arcade.game.games.mineware.challenge.DataTracker;
|
import nautilus.game.arcade.game.games.mineware.challenge.NumberTracker;
|
||||||
|
|
||||||
public class ChallengeWaveCrush extends Challenge implements DataTracker
|
public class ChallengeWaveCrush extends Challenge implements NumberTracker
|
||||||
{
|
{
|
||||||
// The amount of waves that started.
|
// The amount of waves that started.
|
||||||
private int _waveAmount = 0;
|
private int _waveAmount = 0;
|
||||||
|
@ -22,10 +22,10 @@ public class BouncingShadowTracker extends ChallengeStatTracker
|
|||||||
|
|
||||||
for (Player player : getGame().GetPlayers(true))
|
for (Player player : getGame().GetPlayers(true))
|
||||||
{
|
{
|
||||||
if (!bouncingBlock.hasSteppedOnWool(player) && bouncingBlock.getData().isDone(player))
|
if (bouncingBlock.hasData(player) && bouncingBlock.getData().isDone(player))
|
||||||
{
|
{
|
||||||
System.out.println("Bouncing Shadow: " + player.getName());
|
System.out.println("Bouncing Shadow: " + player.getName());
|
||||||
addStat(player, "BouncingShadow", 1, true, false);
|
addStat(player, "BouncingShadow", 1, false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,10 +22,10 @@ public class QuickClimberTracker extends ChallengeStatTracker
|
|||||||
|
|
||||||
for (Player player : getGame().GetPlayers(true))
|
for (Player player : getGame().GetPlayers(true))
|
||||||
{
|
{
|
||||||
if (!kotl.hasBeenHit(player) && kotl.getData().isDone(player))
|
if (kotl.hasData(player) && kotl.getData().isDone(player))
|
||||||
{
|
{
|
||||||
System.out.println("Quick Climber: " + player.getName());
|
System.out.println("Quick Climber: " + player.getName());
|
||||||
addStat(player, "QuickClimber", 1, true, false);
|
addStat(player, "QuickClimber", 1, false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,10 +22,10 @@ public class TagMasterTracker extends ChallengeStatTracker
|
|||||||
|
|
||||||
for (Player player : reverseTag.getFirstTeam().getPlayers())
|
for (Player player : reverseTag.getFirstTeam().getPlayers())
|
||||||
{
|
{
|
||||||
if (reverseTag.getData().isCompleted(player))
|
if (reverseTag.hasData(player))
|
||||||
{
|
{
|
||||||
System.out.println("Tag Master: " + player.getName());
|
System.out.println("Tag Master: " + player.getName());
|
||||||
addStat(player, "TagMaster", 1, true, false);
|
addStat(player, "TagMaster", 1, false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user