package com.asteria.game.character.player.minigame;
import com.asteria.utility.MutableNumber;
/**
* The class that provides all of the functionality needed for minigames cannot
* usually be ran on their own meaning they are dependent on some sort of
* sequencer or task.
*
* @author lare96 <http://github.com/lare96>
*/
public abstract class SequencedMinigame extends Minigame {
/**
* The counter that conceals the tick amount.
*/
private final MutableNumber counter = new MutableNumber();
/**
* Creates a new {@link SequencedMinigame}.
*
* @param name
* the current name of this minigame.
*/
public SequencedMinigame(String name) {
super(name, MinigameType.SEQUENCED);
}
/**
* The method executed when this minigame is sequenced.
*/
public abstract void onSequence();
/**
* The delay interval for the sequencing of this minigame.
*
* @return the delay interval.
*/
public abstract int delay();
/**
* Gets the counter that conceals the tick amount.
*
* @return the tick amount.
*/
public final MutableNumber getCounter() {
return counter;
}
}