package com.ftloverdrive.model.incident; import java.util.ArrayList; import java.util.List; import com.ftloverdrive.core.OverdriveContext; import com.ftloverdrive.model.AbstractOVDModel; import com.ftloverdrive.model.incident.Consequence; import com.ftloverdrive.model.incident.IncidentModel; import com.ftloverdrive.model.incident.PlotBranch; /** * What the original game referred to as an event. * * TODO: Retrofit code to use reference ids and OVDEvents. */ public abstract class AbstractIncidentModel extends AbstractOVDModel implements IncidentModel { protected List<Consequence> consequenceList = new ArrayList<Consequence>( 2 ); protected List<PlotBranch> branchList = new ArrayList<PlotBranch>( 3 ); public AbstractIncidentModel() { super(); } @Override public abstract String getIncidentId(); @Override public void execute( OverdriveContext context ) { for ( Consequence cseq : getConsequences() ) { cseq.execute( context ); } // TODO: Whatever it takes for the UI to notice and show a window. } @Override public String getText() { return null; } @Override public List<Consequence> getConsequences() { return consequenceList; } @Override public void addConsequence( Consequence cseq ) { consequenceList.add( cseq ); } @Override public void removeConsequence( Consequence cseq ) { consequenceList.remove( cseq ); } @Override public List<PlotBranch> getPlotBranches() { return branchList; } @Override public void addPlotBranch( PlotBranch branch ) { branchList.add( branch ); } @Override public void removePlotBranch( PlotBranch branch ) { branchList.remove( branch ); } }