Update second Lava Run to patch obsidian bugs
This commit is contained in:
parent
ce7bb82d67
commit
bccce7593f
|
@ -28,8 +28,9 @@ import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
|||
*/
|
||||
public class ChallengeLavaRun extends Challenge
|
||||
{
|
||||
private int _arenaStartSize;
|
||||
private Block _obsidian;
|
||||
private Block _lastObsidian;
|
||||
private boolean _shouldMoveObsidian;
|
||||
private List<Block> _platform;
|
||||
private int _mapY = 4;
|
||||
private long _delay;
|
||||
|
@ -54,6 +55,7 @@ public class ChallengeLavaRun extends Challenge
|
|||
public ArrayList<Location> createSpawns()
|
||||
{
|
||||
ArrayList<Location> spawns = new ArrayList<Location>();
|
||||
_arenaStartSize = getArenaSize();
|
||||
int size = getArenaSize() - 3;
|
||||
|
||||
for (int x = -size; x <= size; x++)
|
||||
|
@ -77,22 +79,54 @@ public class ChallengeLavaRun extends Challenge
|
|||
public void onStart()
|
||||
{
|
||||
_delay = System.currentTimeMillis() + 2000;
|
||||
_obsidian = generateObsidianBlock();
|
||||
_obsidian = createObsidianBlock();
|
||||
|
||||
createLava();
|
||||
disguisePlayers();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnd()
|
||||
@EventHandler
|
||||
public void onUpdate(UpdateEvent event)
|
||||
{
|
||||
if (_lastObsidian != null)
|
||||
if (event.getType() != UpdateType.TICK)
|
||||
return;
|
||||
|
||||
if (!isChallengeValid())
|
||||
return;
|
||||
|
||||
if (_delay > System.currentTimeMillis())
|
||||
return;
|
||||
|
||||
if (_shouldMoveObsidian)
|
||||
{
|
||||
addBlock(_lastObsidian);
|
||||
resetBlock(_obsidian);
|
||||
generatePlatform();
|
||||
_obsidian = createObsidianBlock();
|
||||
blockBreakEffect(_obsidian, false);
|
||||
playSound();
|
||||
|
||||
_delay = System.currentTimeMillis();
|
||||
|
||||
if (_delayMin > 0)
|
||||
{
|
||||
_delayMin -= 100;
|
||||
_delay += _delayMin;
|
||||
}
|
||||
|
||||
_disappearingBlocks++;
|
||||
_shouldMoveObsidian = false;
|
||||
}
|
||||
else if (_obsidian != null)
|
||||
else
|
||||
{
|
||||
addBlock(_obsidian);
|
||||
if (isPlatformEmpty())
|
||||
{
|
||||
_delay = System.currentTimeMillis() + 1500;
|
||||
_shouldMoveObsidian = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
destroyPlatform();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -120,53 +154,6 @@ public class ChallengeLavaRun extends Challenge
|
|||
event.AddMod("Ensure Death", null, 9999, false);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onUpdate(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.TICK)
|
||||
return;
|
||||
|
||||
if (!isChallengeValid())
|
||||
return;
|
||||
|
||||
if (_delay > System.currentTimeMillis())
|
||||
return;
|
||||
|
||||
if (_obsidian == null)
|
||||
{
|
||||
resetBlock(_lastObsidian);
|
||||
_obsidian = generateObsidianBlock();
|
||||
|
||||
generatePlatform();
|
||||
setBlock(_obsidian, Material.OBSIDIAN);
|
||||
blockBreakEffect(_obsidian, false);
|
||||
playSound();
|
||||
|
||||
_delay = System.currentTimeMillis();
|
||||
|
||||
if (_delayMin > 0)
|
||||
{
|
||||
_delayMin -= 100;
|
||||
_delay += _delayMin;
|
||||
}
|
||||
|
||||
_disappearingBlocks++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isPlatformEmpty())
|
||||
{
|
||||
_delay = System.currentTimeMillis() + 1500;
|
||||
_lastObsidian = _obsidian;
|
||||
_obsidian = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
destroyPlatform();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void generatePlatform()
|
||||
{
|
||||
_platform = new ArrayList<>();
|
||||
|
@ -201,13 +188,9 @@ public class ChallengeLavaRun extends Challenge
|
|||
}
|
||||
}
|
||||
|
||||
private Block generateObsidianBlock()
|
||||
private Block createObsidianBlock()
|
||||
{
|
||||
Block block = getCenter().add(
|
||||
UtilMath.r(21) - 9.5,
|
||||
_mapY,
|
||||
UtilMath.r(21) - 9.5).getBlock();
|
||||
|
||||
Block block = getCenter().add(UtilMath.r(_arenaStartSize), _mapY, UtilMath.r(_arenaStartSize)).getBlock();
|
||||
setBlock(block, Material.OBSIDIAN);
|
||||
return block;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue