Delay glass removal when obsidian is far away
On Lava Run, when obsidian is generated far away from the last created obsidian block, a delay of 1 second will be added to the total delay until the platform is removed, because normally glass is removed very quick.
This commit is contained in:
parent
d393ffcc51
commit
dd55d96ccf
@ -28,13 +28,31 @@ import nautilus.game.arcade.game.games.mineware.challenge.ChallengeType;
|
|||||||
*/
|
*/
|
||||||
public class ChallengeLavaRun extends Challenge
|
public class ChallengeLavaRun extends Challenge
|
||||||
{
|
{
|
||||||
|
// The starting size of the arena, stored to be used later in the code.
|
||||||
private int _arenaStartSize;
|
private int _arenaStartSize;
|
||||||
|
|
||||||
|
// The current obsidian block in the platform.
|
||||||
private Block _obsidian;
|
private Block _obsidian;
|
||||||
|
|
||||||
|
// The last obsidian location to detect if the new one is too far.
|
||||||
|
private Location _lastObsidianLocation;
|
||||||
|
|
||||||
|
// Keeps track of whether the obsidian should be moved or not.
|
||||||
private boolean _shouldMoveObsidian;
|
private boolean _shouldMoveObsidian;
|
||||||
|
|
||||||
|
// The list of blocks - including osbidian - generated to make a platform.
|
||||||
private List<Block> _platform;
|
private List<Block> _platform;
|
||||||
|
|
||||||
|
// The map height of the challenge.
|
||||||
private int _mapY = 4;
|
private int _mapY = 4;
|
||||||
|
|
||||||
|
// The duration until the platform is regenerated/destroyed.
|
||||||
private long _delay;
|
private long _delay;
|
||||||
|
|
||||||
|
// The minimum delay until the platform is destroyed.
|
||||||
private long _delayMin;
|
private long _delayMin;
|
||||||
|
|
||||||
|
// The amount of blocks (or speed) disappearing.
|
||||||
private int _disappearingBlocks;
|
private int _disappearingBlocks;
|
||||||
|
|
||||||
public ChallengeLavaRun(BawkBawkBattles host)
|
public ChallengeLavaRun(BawkBawkBattles host)
|
||||||
@ -90,6 +108,7 @@ public class ChallengeLavaRun extends Challenge
|
|||||||
public void onEnd()
|
public void onEnd()
|
||||||
{
|
{
|
||||||
_obsidian = null;
|
_obsidian = null;
|
||||||
|
_lastObsidianLocation = null;
|
||||||
_shouldMoveObsidian = false;
|
_shouldMoveObsidian = false;
|
||||||
_platform.clear();
|
_platform.clear();
|
||||||
_delay = 0;
|
_delay = 0;
|
||||||
@ -119,6 +138,11 @@ public class ChallengeLavaRun extends Challenge
|
|||||||
|
|
||||||
_delay = System.currentTimeMillis();
|
_delay = System.currentTimeMillis();
|
||||||
|
|
||||||
|
if (UtilMath.offset(_obsidian.getLocation(), _lastObsidianLocation) > 4) // Add 1 second if the obsidian is too far.
|
||||||
|
{
|
||||||
|
_delay += 1000;
|
||||||
|
}
|
||||||
|
|
||||||
if (_delayMin > 0)
|
if (_delayMin > 0)
|
||||||
{
|
{
|
||||||
_delayMin -= 100;
|
_delayMin -= 100;
|
||||||
@ -133,6 +157,7 @@ public class ChallengeLavaRun extends Challenge
|
|||||||
if (isPlatformEmpty())
|
if (isPlatformEmpty())
|
||||||
{
|
{
|
||||||
_delay = System.currentTimeMillis() + 1500;
|
_delay = System.currentTimeMillis() + 1500;
|
||||||
|
_lastObsidianLocation = _obsidian.getLocation();
|
||||||
_shouldMoveObsidian = true;
|
_shouldMoveObsidian = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -262,7 +287,7 @@ public class ChallengeLavaRun extends Challenge
|
|||||||
{
|
{
|
||||||
Block block = _platform.get(0);
|
Block block = _platform.get(0);
|
||||||
|
|
||||||
if (!block.equals(_obsidian))
|
if (!block.equals(_obsidian)) // We do not want to remove the obsidian block.
|
||||||
{
|
{
|
||||||
_platform.remove(0);
|
_platform.remove(0);
|
||||||
resetBlock(block);
|
resetBlock(block);
|
||||||
|
Loading…
Reference in New Issue
Block a user