package com.ftloverdrive.model.incident; import com.ftloverdrive.core.OverdriveContext; import com.ftloverdrive.model.incident.IncidentModel; /** * What the original game referred to as an event choice. * * TODO: Retrofit code to use reference ids and OVDEvents. * * TODO: A PlotBranchCriteria class to decide whether this branch is a * normal choice, a blue option, or unavailable (if the Overdrive context * doesn't meet arbitrary reqs). */ public interface PlotBranch { /** Returns the clickable text for this branch. */ public String getText(); /** * Returns spoiler text for what will happen. * Scans the nested Incident's Consequences and returns a concatenation * of all their spoilers... or null. */ public String getSpoilerText(); /** Toggles desired visibility of the spoiler text. public void setSpoilerVisible( boolean b ); /** Returns true if this branch *wants* its spoiler to be shown, false otherwise. */ public boolean isSpoilerVisible(); /** Returns an Incident to trigger if this branch is chosen, or null. */ public IncidentModel getIncident(); }