34 lines
848 B
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();
|
|
}
|