Coverage Summary for Class: StatefulEffect (it.polimi.ingsw.Model)

Class Class, % Method, % Line, %
StatefulEffect 100% (1/1) 100% (1/1) 100% (2/2)


1 package it.polimi.ingsw.Model; 2  3 import it.polimi.ingsw.Model.Enums.StateType; 4  5 import java.io.Serial; 6 import java.io.Serializable; 7 import java.util.List; 8  9 /** 10  * A {@link CharacterCard} that implements an effect linked to some internal state 11  */ 12 public abstract class StatefulEffect extends CharacterCard implements Serializable { 13  @Serial 14  private static final long serialVersionUID = 127L; // convention: 1 for model, (01 -> 99) for objects 15  protected final StateType stateType; 16  17  /** 18  * Construct a stateful card object 19  * 20  * @param id the ID of the card 21  * @param cost the cost of the card 22  * @param stateType the {@link StateType} of the card 23  * @param context a reference to the Model, to apply the effect. 24  */ 25  public StatefulEffect(int id, int cost, StateType stateType, Model context) { 26  super(id, cost, context); 27  this.stateType = stateType; 28  } 29  30  /** 31  * Get the internal state of the card. Use {@link #getStateType()} to know how to interpret it. 32  * 33  * @return a {@link List} of the state objects 34  */ 35  public abstract List<Object> getState(); 36  37  /** 38  * Get the type of state this card uses. 39  * 40  * @return a variant of {@link StateType} 41  */ 42  public abstract StateType getStateType(); 43 }