ProjectAres/PGM/src/main/java/tc/oc/pgm/goals/IncrementalGoal.java

34 lines
848 B
Java

package tc.oc.pgm.goals;
import javax.annotation.Nullable;
import tc.oc.api.docs.virtual.MatchDoc;
/**
* A {@link Goal} that is completed gradually, and can report completion as a percentage
*/
public interface IncrementalGoal<T extends GoalDefinition> extends Goal<T> {
/**
* Return the completion percentage of this goal in the range 0..1
*/
double getCompletion();
/**
* Render a string representation of goal completion
*/
String renderCompletion();
/**
* Render a precise representation of goal completion, or null if no precise format is supported
*/
@Nullable String renderPreciseCompletion();
/**
* True if partial completion should be visible to participating players
*/
boolean getShowProgress();
@Override
MatchDoc.IncrementalGoal getDocument();
}